diff --git a/hackfest/netconf-oc/_commands.md b/hackfest/netconf-oc/_commands.md
new file mode 100644
index 0000000000000000000000000000000000000000..c8f1cff029b2ad992471aa350fc48aafbe88f9d6
--- /dev/null
+++ b/hackfest/netconf-oc/_commands.md
@@ -0,0 +1,82 @@
+# NETCONF TFS exercise
+
+## 1. Interrogate Topology
+
+```bash
+# Configure basic NetConf/OpenConfig server
+
+mkdir -p ~/yang-netconf/netconf-tfs/{git_openconfig,openconfig}
+git clone https://github.com/openconfig/public.git ~/yang-netconf/netconf-tfs/git_openconfig
+
+cd ~/yang-netconf/netconf-tfs
+
+export PYBINDPLUGIN=`/usr/bin/env python -c 'import pyangbind; import os; print ("{}/plugin".format(os.path.dirname(pyangbind.__file__)))'`
+pyang --plugindir $PYBINDPLUGIN -p git_openconfig/release/models/ -f pybind --split-class-dir openconfig \
+    git_openconfig/release/models/interfaces/openconfig-interfaces.yang \
+    git_openconfig/release/models/interfaces/openconfig-if-ethernet.yang \
+    git_openconfig/release/models/platform/openconfig-platform.yang \
+    git_openconfig/release/models/platform/openconfig-platform-port.yang
+
+python3 serverOpenConfig.py
+
+# Terminal 2 (client)
+cd ~/yang-netconf/netconf
+python3 clientTopology.py
+```
+
+### 2.2. Report a sample message following Topology YANG data model
+```bash
+mkdir -p sample-xml-skeleton
+pyang -f sample-xml-skeleton --sample-xml-skeleton-annotations topology.yang -o sample-xml-skeleton/topology.xml
+```
+
+### 2.3. Convert Topology YANG to UML
+```bash
+mkdir -p uml
+pyang -f uml topology.yang -o uml/topology.uml
+java -jar plantuml.jar uml/topology.uml
+```
+
+### 2.4. Convert Topology YANG to Python bindings
+```bash
+export PYBINDPLUGIN=`/usr/bin/env python -c 'import pyangbind; import os; print ("{}/plugin".format(os.path.dirname(pyangbind.__file__)))'`
+pyang -f pybind topology.yang --plugindir $PYBINDPLUGIN -o binding_topology.py
+```
+
+### 2.5. Test creation of JSON-/XML-encoded Topology messages
+```bash
+python topology.py
+```
+
+
+## 3. Connection YANG data model (exercise solution)
+
+### 3.1. Convert Connection YANG to Text-based tree
+```bash
+mkdir -p tree
+pyang -f tree connection.yang -o tree/connection.txt
+```
+
+### 3.2. Report a sample message following Connection YANG data model
+```bash
+mkdir -p sample-xml-skeleton
+pyang -f sample-xml-skeleton --sample-xml-skeleton-annotations connection.yang -o sample-xml-skeleton/connection.xml
+```
+
+### 3.3. Convert Connection YANG to UML
+```bash
+mkdir -p uml
+pyang -f uml connection.yang -o uml/connection.uml
+java -jar plantuml.jar uml/connection.uml
+```
+
+### 3.4. Convert Connection YANG to Python bindings
+```bash
+export PYBINDPLUGIN=`/usr/bin/env python -c 'import pyangbind; import os; print ("{}/plugin".format(os.path.dirname(pyangbind.__file__)))'`
+pyang -f pybind connection.yang --plugindir $PYBINDPLUGIN -o binding_connection.py
+```
+
+### 3.5. Test creation of JSON-/XML-encoded Connection messages
+```bash
+python topology.py
+```
diff --git a/hackfest/netconf-oc/device_definition.py b/hackfest/netconf-oc/device_definition.py
new file mode 100644
index 0000000000000000000000000000000000000000..15efdee42794ebba474ed4a1c5573e6ed5b688a1
--- /dev/null
+++ b/hackfest/netconf-oc/device_definition.py
@@ -0,0 +1,24 @@
+from lxml import etree
+from netconf import util
+from pyangbind.lib.serialise import pybindIETFXMLEncoder
+
+from openconfig.components import components
+from openconfig.interfaces import interfaces
+
+def get_device_definition():
+    occ = components()
+    port_1_1 = occ.component.add("1/1")
+    port_1_1.state._set_type("PORT") # state.type is read-only; use special method to set it
+
+    port_1_2 = occ.component.add("1/2")
+    port_1_2.state._set_type("PORT") # state.type is read-only; use special method to set it
+
+    port_1_3 = occ.component.add("1/3")
+    port_1_3.state._set_type("PORT") # state.type is read-only; use special method to set it
+
+    ocif = interfaces()
+
+    data = util.elm("nc:data")
+    data.append(etree.XML(pybindIETFXMLEncoder.serialise(occ)))
+    data.append(etree.XML(pybindIETFXMLEncoder.serialise(ocif)))
+    return data
diff --git a/hackfest/netconf-oc/interfaces.xml b/hackfest/netconf-oc/interfaces.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8358a0595573953b61c28f0deeca2e99d554f4ce
--- /dev/null
+++ b/hackfest/netconf-oc/interfaces.xml
@@ -0,0 +1,220 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+  <interfaces xmlns="http://openconfig.net/yang/interfaces">
+    <interface>
+      <!-- # keys: name-->
+      <!-- # entries: 0.. -->
+      <name>
+        <!-- type: leafref -->
+      </name>
+      <config>
+        <name>
+          <!-- type: string -->
+        </name>
+        <type>
+          <!-- type: identityref -->
+        </type>
+        <mtu>
+          <!-- type: uint16 -->
+        </mtu>
+        <description>
+          <!-- type: string -->
+        </description>
+      </config>
+      <state>
+        <name>
+          <!-- type: string -->
+        </name>
+        <type>
+          <!-- type: identityref -->
+        </type>
+        <mtu>
+          <!-- type: uint16 -->
+        </mtu>
+        <description>
+          <!-- type: string -->
+        </description>
+        <ifindex>
+          <!-- type: uint32 -->
+        </ifindex>
+        <admin-status>
+          <!-- type: enumeration -->
+        </admin-status>
+        <oper-status>
+          <!-- type: enumeration -->
+        </oper-status>
+        <last-change>
+          <!-- type: oc-types:timeticks64 -->
+        </last-change>
+        <logical>
+          <!-- type: boolean -->
+        </logical>
+        <management>
+          <!-- type: boolean -->
+        </management>
+        <cpu>
+          <!-- type: boolean -->
+        </cpu>
+        <counters>
+          <in-octets>
+            <!-- type: oc-yang:counter64 -->
+          </in-octets>
+          <in-pkts>
+            <!-- type: oc-yang:counter64 -->
+          </in-pkts>
+          <in-unicast-pkts>
+            <!-- type: oc-yang:counter64 -->
+          </in-unicast-pkts>
+          <in-broadcast-pkts>
+            <!-- type: oc-yang:counter64 -->
+          </in-broadcast-pkts>
+          <in-multicast-pkts>
+            <!-- type: oc-yang:counter64 -->
+          </in-multicast-pkts>
+          <in-discards>
+            <!-- type: oc-yang:counter64 -->
+          </in-discards>
+          <in-errors>
+            <!-- type: oc-yang:counter64 -->
+          </in-errors>
+          <in-unknown-protos>
+            <!-- type: oc-yang:counter64 -->
+          </in-unknown-protos>
+          <in-fcs-errors>
+            <!-- type: oc-yang:counter64 -->
+          </in-fcs-errors>
+          <out-octets>
+            <!-- type: oc-yang:counter64 -->
+          </out-octets>
+          <out-pkts>
+            <!-- type: oc-yang:counter64 -->
+          </out-pkts>
+          <out-unicast-pkts>
+            <!-- type: oc-yang:counter64 -->
+          </out-unicast-pkts>
+          <out-broadcast-pkts>
+            <!-- type: oc-yang:counter64 -->
+          </out-broadcast-pkts>
+          <out-multicast-pkts>
+            <!-- type: oc-yang:counter64 -->
+          </out-multicast-pkts>
+          <out-discards>
+            <!-- type: oc-yang:counter64 -->
+          </out-discards>
+          <out-errors>
+            <!-- type: oc-yang:counter64 -->
+          </out-errors>
+          <carrier-transitions>
+            <!-- type: oc-yang:counter64 -->
+          </carrier-transitions>
+          <last-clear>
+            <!-- type: oc-types:timeticks64 -->
+          </last-clear>
+        </counters>
+      </state>
+      <hold-time>
+        <config/>
+        <state/>
+      </hold-time>
+      <subinterfaces>
+        <subinterface>
+          <!-- # keys: index-->
+          <!-- # entries: 0.. -->
+          <index>
+            <!-- type: leafref -->
+          </index>
+          <config>
+            <description>
+              <!-- type: string -->
+            </description>
+          </config>
+          <state>
+            <description>
+              <!-- type: string -->
+            </description>
+            <name>
+              <!-- type: string -->
+            </name>
+            <ifindex>
+              <!-- type: uint32 -->
+            </ifindex>
+            <admin-status>
+              <!-- type: enumeration -->
+            </admin-status>
+            <oper-status>
+              <!-- type: enumeration -->
+            </oper-status>
+            <last-change>
+              <!-- type: oc-types:timeticks64 -->
+            </last-change>
+            <logical>
+              <!-- type: boolean -->
+            </logical>
+            <management>
+              <!-- type: boolean -->
+            </management>
+            <cpu>
+              <!-- type: boolean -->
+            </cpu>
+            <counters>
+              <in-octets>
+                <!-- type: oc-yang:counter64 -->
+              </in-octets>
+              <in-pkts>
+                <!-- type: oc-yang:counter64 -->
+              </in-pkts>
+              <in-unicast-pkts>
+                <!-- type: oc-yang:counter64 -->
+              </in-unicast-pkts>
+              <in-broadcast-pkts>
+                <!-- type: oc-yang:counter64 -->
+              </in-broadcast-pkts>
+              <in-multicast-pkts>
+                <!-- type: oc-yang:counter64 -->
+              </in-multicast-pkts>
+              <in-discards>
+                <!-- type: oc-yang:counter64 -->
+              </in-discards>
+              <in-errors>
+                <!-- type: oc-yang:counter64 -->
+              </in-errors>
+              <in-unknown-protos>
+                <!-- type: oc-yang:counter64 -->
+              </in-unknown-protos>
+              <in-fcs-errors>
+                <!-- type: oc-yang:counter64 -->
+              </in-fcs-errors>
+              <out-octets>
+                <!-- type: oc-yang:counter64 -->
+              </out-octets>
+              <out-pkts>
+                <!-- type: oc-yang:counter64 -->
+              </out-pkts>
+              <out-unicast-pkts>
+                <!-- type: oc-yang:counter64 -->
+              </out-unicast-pkts>
+              <out-broadcast-pkts>
+                <!-- type: oc-yang:counter64 -->
+              </out-broadcast-pkts>
+              <out-multicast-pkts>
+                <!-- type: oc-yang:counter64 -->
+              </out-multicast-pkts>
+              <out-discards>
+                <!-- type: oc-yang:counter64 -->
+              </out-discards>
+              <out-errors>
+                <!-- type: oc-yang:counter64 -->
+              </out-errors>
+              <carrier-transitions>
+                <!-- type: oc-yang:counter64 -->
+              </carrier-transitions>
+              <last-clear>
+                <!-- type: oc-types:timeticks64 -->
+              </last-clear>
+            </counters>
+          </state>
+        </subinterface>
+      </subinterfaces>
+    </interface>
+  </interfaces>
+</data>
diff --git a/hackfest/netconf-oc/openconfig/__init__.py b/hackfest/netconf-oc/openconfig/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..ccaf6ed7248d84e4f7b154ceb40c906debe512b8
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/__init__.py
@@ -0,0 +1,399 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import interfaces
+class openconfig_interfaces(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-interfaces - based on the path /openconfig-interfaces. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Model for managing network interfaces and subinterfaces.  This
+module also defines convenience types / groupings for other
+models to create references to interfaces:
+
+ base-interface-ref (type) -  reference to a base interface
+ interface-ref (grouping) -  container for reference to a
+   interface + subinterface
+ interface-ref-state (grouping) - container for read-only
+   (opstate) reference to interface + subinterface
+
+This model reuses data items defined in the IETF YANG model for
+interfaces described by RFC 7223 with an alternate structure
+(particularly for operational state data) and with
+additional configuration items.
+
+Portions of this code were derived from IETF RFC 7223.
+Please reproduce this note if possible.
+
+IETF code is subject to the following copyright and license:
+Copyright (c) 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).
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__interfaces',)
+
+  _yang_name = 'openconfig-interfaces'
+  _yang_namespace = 'http://openconfig.net/yang/interfaces'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__interfaces = YANGDynClass(base=interfaces.interfaces, is_container='container', yang_name="interfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return []
+
+  def _get_interfaces(self):
+    """
+    Getter method for interfaces, mapped from YANG variable /interfaces (container)
+
+    YANG Description: Top level container for interfaces, including configuration
+and state data.
+    """
+    return self.__interfaces
+      
+  def _set_interfaces(self, v, load=False):
+    """
+    Setter method for interfaces, mapped from YANG variable /interfaces (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_interfaces is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_interfaces() directly.
+
+    YANG Description: Top level container for interfaces, including configuration
+and state data.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=interfaces.interfaces, is_container='container', yang_name="interfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """interfaces must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=interfaces.interfaces, is_container='container', yang_name="interfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)""",
+        })
+
+    self.__interfaces = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_interfaces(self):
+    self.__interfaces = YANGDynClass(base=interfaces.interfaces, is_container='container', yang_name="interfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+
+  interfaces = __builtin__.property(_get_interfaces, _set_interfaces)
+
+
+  _pyangbind_elements = OrderedDict([('interfaces', interfaces), ])
+
+
+class openconfig_if_ethernet(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-if-ethernet - based on the path /openconfig-if-ethernet. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Model for managing Ethernet interfaces -- augments the OpenConfig
+model for interface configuration and state.
+  """
+  _pyangbind_elements = {}
+
+  
+
+from . import components
+class openconfig_platform(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /openconfig-platform. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: This module defines a data model for representing a system
+component inventory, which can include hardware or software
+elements arranged in an arbitrary structure. The primary
+relationship supported by the model is containment, e.g.,
+components containing subcomponents.
+
+It is expected that this model reflects every field replacable
+unit on the device at a minimum (i.e., additional information
+may be supplied about non-replacable components).
+
+Every element in the inventory is termed a 'component' with each
+component expected to have a unique name and type, and optionally
+a unique system-assigned identifier and FRU number.  The
+uniqueness is guaranteed by the system within the device.
+
+Components may have properties defined by the system that are
+modeled as a list of key-value pairs. These may or may not be
+user-configurable.  The model provides a flag for the system
+to optionally indicate which properties are user configurable.
+
+Each component also has a list of 'subcomponents' which are
+references to other components. Appearance in a list of
+subcomponents indicates a containment relationship as described
+above.  For example, a linecard component may have a list of
+references to port components that reside on the linecard.
+
+This schema is generic to allow devices to express their own
+platform-specific structure.  It may be augmented by additional
+component type-specific schemas that provide a common structure
+for well-known component types.  In these cases, the system is
+expected to populate the common component schema, and may
+optionally also represent the component and its properties in the
+generic structure.
+
+The properties for each component may include dynamic values,
+e.g., in the 'state' part of the schema.  For example, a CPU
+component may report its utilization, temperature, or other
+physical properties.  The intent is to capture all platform-
+specific physical data in one location, including inventory
+(presence or absence of a component) and state (physical
+attributes or status).
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__components',)
+
+  _yang_name = 'openconfig-platform'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__components = YANGDynClass(base=components.components, is_container='container', yang_name="components", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return []
+
+  def _get_components(self):
+    """
+    Getter method for components, mapped from YANG variable /components (container)
+
+    YANG Description: Enclosing container for the components in the system.
+    """
+    return self.__components
+      
+  def _set_components(self, v, load=False):
+    """
+    Setter method for components, mapped from YANG variable /components (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_components is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_components() directly.
+
+    YANG Description: Enclosing container for the components in the system.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=components.components, is_container='container', yang_name="components", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """components must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=components.components, is_container='container', yang_name="components", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__components = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_components(self):
+    self.__components = YANGDynClass(base=components.components, is_container='container', yang_name="components", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+  components = __builtin__.property(_get_components, _set_components)
+
+
+  _pyangbind_elements = OrderedDict([('components', components), ])
+
+
+from . import components
+class openconfig_platform_common(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /openconfig-platform-common. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: This modules contains common groupings that are used in multiple
+components within the platform module.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__components',)
+
+  _yang_name = 'openconfig-platform-common'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__components = YANGDynClass(base=components.components, is_container='container', yang_name="components", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return []
+
+  def _get_components(self):
+    """
+    Getter method for components, mapped from YANG variable /components (container)
+
+    YANG Description: Enclosing container for the components in the system.
+    """
+    return self.__components
+      
+  def _set_components(self, v, load=False):
+    """
+    Setter method for components, mapped from YANG variable /components (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_components is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_components() directly.
+
+    YANG Description: Enclosing container for the components in the system.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=components.components, is_container='container', yang_name="components", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """components must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=components.components, is_container='container', yang_name="components", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__components = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_components(self):
+    self.__components = YANGDynClass(base=components.components, is_container='container', yang_name="components", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+  components = __builtin__.property(_get_components, _set_components)
+
+
+  _pyangbind_elements = OrderedDict([('components', components), ])
+
+
+class openconfig_platform_port(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-port - based on the path /openconfig-platform-port. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: This module defines data related to PORT components in the
+openconfig-platform model
+  """
+  _pyangbind_elements = {}
+
+  
+
diff --git a/hackfest/netconf-oc/openconfig/components/__init__.py b/hackfest/netconf-oc/openconfig/components/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..1470af40e5acad9715a3acf1473e1e8955426a03
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/__init__.py
@@ -0,0 +1,208 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import component
+class components(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Enclosing container for the components in the system.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__component',)
+
+  _yang_name = 'components'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__component = YANGDynClass(base=YANGListType("name",component.component, yang_name="component", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="component", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components']
+
+  def _get_component(self):
+    """
+    Getter method for component, mapped from YANG variable /components/component (list)
+
+    YANG Description: List of components, keyed by component name.
+    """
+    return self.__component
+      
+  def _set_component(self, v, load=False):
+    """
+    Setter method for component, mapped from YANG variable /components/component (list)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_component is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_component() directly.
+
+    YANG Description: List of components, keyed by component name.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGListType("name",component.component, yang_name="component", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="component", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """component must be of a type compatible with list""",
+          'defined-type': "list",
+          'generated-type': """YANGDynClass(base=YANGListType("name",component.component, yang_name="component", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="component", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)""",
+        })
+
+    self.__component = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_component(self):
+    self.__component = YANGDynClass(base=YANGListType("name",component.component, yang_name="component", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="component", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+
+  component = __builtin__.property(_get_component, _set_component)
+
+
+  _pyangbind_elements = OrderedDict([('component', component), ])
+
+
+from . import component
+class components(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Enclosing container for the components in the system.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__component',)
+
+  _yang_name = 'components'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__component = YANGDynClass(base=YANGListType("name",component.component, yang_name="component", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="component", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components']
+
+  def _get_component(self):
+    """
+    Getter method for component, mapped from YANG variable /components/component (list)
+
+    YANG Description: List of components, keyed by component name.
+    """
+    return self.__component
+      
+  def _set_component(self, v, load=False):
+    """
+    Setter method for component, mapped from YANG variable /components/component (list)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_component is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_component() directly.
+
+    YANG Description: List of components, keyed by component name.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGListType("name",component.component, yang_name="component", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="component", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """component must be of a type compatible with list""",
+          'defined-type': "list",
+          'generated-type': """YANGDynClass(base=YANGListType("name",component.component, yang_name="component", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="component", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)""",
+        })
+
+    self.__component = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_component(self):
+    self.__component = YANGDynClass(base=YANGListType("name",component.component, yang_name="component", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="component", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+
+  component = __builtin__.property(_get_component, _set_component)
+
+
+  _pyangbind_elements = OrderedDict([('component', component), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/__init__.py b/hackfest/netconf-oc/openconfig/components/component/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..b80cb6139d5290b7ec4e62a14f2faeba46886d31
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/__init__.py
@@ -0,0 +1,1424 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import config
+from . import state
+from . import properties
+from . import subcomponents
+from . import chassis
+from . import port
+from . import power_supply
+from . import fan
+from . import fabric
+from . import storage
+from . import cpu
+from . import integrated_circuit
+from . import backplane
+from . import software_module
+from . import controller_card
+class component(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: List of components, keyed by component name.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state','__properties','__subcomponents','__chassis','__port','__power_supply','__fan','__fabric','__storage','__cpu','__integrated_circuit','__backplane','__software_module','__controller_card',)
+
+  _yang_name = 'component'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__properties = YANGDynClass(base=properties.properties, is_container='container', yang_name="properties", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__subcomponents = YANGDynClass(base=subcomponents.subcomponents, is_container='container', yang_name="subcomponents", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__chassis = YANGDynClass(base=chassis.chassis, is_container='container', yang_name="chassis", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__port = YANGDynClass(base=port.port, is_container='container', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__power_supply = YANGDynClass(base=power_supply.power_supply, is_container='container', yang_name="power-supply", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__fan = YANGDynClass(base=fan.fan, is_container='container', yang_name="fan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__fabric = YANGDynClass(base=fabric.fabric, is_container='container', yang_name="fabric", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__storage = YANGDynClass(base=storage.storage, is_container='container', yang_name="storage", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__cpu = YANGDynClass(base=cpu.cpu, is_container='container', yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__integrated_circuit = YANGDynClass(base=integrated_circuit.integrated_circuit, is_container='container', yang_name="integrated-circuit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__backplane = YANGDynClass(base=backplane.backplane, is_container='container', yang_name="backplane", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__software_module = YANGDynClass(base=software_module.software_module, is_container='container', yang_name="software-module", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__controller_card = YANGDynClass(base=controller_card.controller_card, is_container='container', yang_name="controller-card", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/name (leafref)
+
+    YANG Description: References the component name
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/name (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: References the component name
+    """
+    parent = getattr(self, "_parent", None)
+    if parent is not None and load is False:
+      raise AttributeError("Cannot set keys directly when" +
+                             " within an instantiated list")
+
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+
+
+  def _get_config(self):
+    """
+    Getter method for config, mapped from YANG variable /components/component/config (container)
+
+    YANG Description: Configuration data for each component
+    """
+    return self.__config
+      
+  def _set_config(self, v, load=False):
+    """
+    Setter method for config, mapped from YANG variable /components/component/config (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_config is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_config() directly.
+
+    YANG Description: Configuration data for each component
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """config must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__config = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_config(self):
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_state(self):
+    """
+    Getter method for state, mapped from YANG variable /components/component/state (container)
+
+    YANG Description: Operational state data for each component
+    """
+    return self.__state
+      
+  def _set_state(self, v, load=False):
+    """
+    Setter method for state, mapped from YANG variable /components/component/state (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_state is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_state() directly.
+
+    YANG Description: Operational state data for each component
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """state must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__state = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_state(self):
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_properties(self):
+    """
+    Getter method for properties, mapped from YANG variable /components/component/properties (container)
+
+    YANG Description: Enclosing container 
+    """
+    return self.__properties
+      
+  def _set_properties(self, v, load=False):
+    """
+    Setter method for properties, mapped from YANG variable /components/component/properties (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_properties is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_properties() directly.
+
+    YANG Description: Enclosing container 
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=properties.properties, is_container='container', yang_name="properties", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """properties must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=properties.properties, is_container='container', yang_name="properties", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__properties = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_properties(self):
+    self.__properties = YANGDynClass(base=properties.properties, is_container='container', yang_name="properties", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_subcomponents(self):
+    """
+    Getter method for subcomponents, mapped from YANG variable /components/component/subcomponents (container)
+
+    YANG Description: Enclosing container for subcomponent references
+    """
+    return self.__subcomponents
+      
+  def _set_subcomponents(self, v, load=False):
+    """
+    Setter method for subcomponents, mapped from YANG variable /components/component/subcomponents (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_subcomponents is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_subcomponents() directly.
+
+    YANG Description: Enclosing container for subcomponent references
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=subcomponents.subcomponents, is_container='container', yang_name="subcomponents", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """subcomponents must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=subcomponents.subcomponents, is_container='container', yang_name="subcomponents", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__subcomponents = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_subcomponents(self):
+    self.__subcomponents = YANGDynClass(base=subcomponents.subcomponents, is_container='container', yang_name="subcomponents", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_chassis(self):
+    """
+    Getter method for chassis, mapped from YANG variable /components/component/chassis (container)
+
+    YANG Description: Data for chassis components
+    """
+    return self.__chassis
+      
+  def _set_chassis(self, v, load=False):
+    """
+    Setter method for chassis, mapped from YANG variable /components/component/chassis (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_chassis is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_chassis() directly.
+
+    YANG Description: Data for chassis components
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=chassis.chassis, is_container='container', yang_name="chassis", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """chassis must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=chassis.chassis, is_container='container', yang_name="chassis", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__chassis = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_chassis(self):
+    self.__chassis = YANGDynClass(base=chassis.chassis, is_container='container', yang_name="chassis", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_port(self):
+    """
+    Getter method for port, mapped from YANG variable /components/component/port (container)
+
+    YANG Description: Data for physical port components
+    """
+    return self.__port
+      
+  def _set_port(self, v, load=False):
+    """
+    Setter method for port, mapped from YANG variable /components/component/port (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_port is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_port() directly.
+
+    YANG Description: Data for physical port components
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=port.port, is_container='container', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """port must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=port.port, is_container='container', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__port = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_port(self):
+    self.__port = YANGDynClass(base=port.port, is_container='container', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_power_supply(self):
+    """
+    Getter method for power_supply, mapped from YANG variable /components/component/power_supply (container)
+
+    YANG Description: Data for power supply components
+    """
+    return self.__power_supply
+      
+  def _set_power_supply(self, v, load=False):
+    """
+    Setter method for power_supply, mapped from YANG variable /components/component/power_supply (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_power_supply is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_power_supply() directly.
+
+    YANG Description: Data for power supply components
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=power_supply.power_supply, is_container='container', yang_name="power-supply", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """power_supply must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=power_supply.power_supply, is_container='container', yang_name="power-supply", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__power_supply = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_power_supply(self):
+    self.__power_supply = YANGDynClass(base=power_supply.power_supply, is_container='container', yang_name="power-supply", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_fan(self):
+    """
+    Getter method for fan, mapped from YANG variable /components/component/fan (container)
+
+    YANG Description: Data for fan components
+    """
+    return self.__fan
+      
+  def _set_fan(self, v, load=False):
+    """
+    Setter method for fan, mapped from YANG variable /components/component/fan (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_fan is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_fan() directly.
+
+    YANG Description: Data for fan components
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=fan.fan, is_container='container', yang_name="fan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """fan must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=fan.fan, is_container='container', yang_name="fan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__fan = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_fan(self):
+    self.__fan = YANGDynClass(base=fan.fan, is_container='container', yang_name="fan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_fabric(self):
+    """
+    Getter method for fabric, mapped from YANG variable /components/component/fabric (container)
+
+    YANG Description: Data for fabric components
+    """
+    return self.__fabric
+      
+  def _set_fabric(self, v, load=False):
+    """
+    Setter method for fabric, mapped from YANG variable /components/component/fabric (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_fabric is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_fabric() directly.
+
+    YANG Description: Data for fabric components
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=fabric.fabric, is_container='container', yang_name="fabric", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """fabric must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=fabric.fabric, is_container='container', yang_name="fabric", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__fabric = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_fabric(self):
+    self.__fabric = YANGDynClass(base=fabric.fabric, is_container='container', yang_name="fabric", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_storage(self):
+    """
+    Getter method for storage, mapped from YANG variable /components/component/storage (container)
+
+    YANG Description: Data for storage components
+    """
+    return self.__storage
+      
+  def _set_storage(self, v, load=False):
+    """
+    Setter method for storage, mapped from YANG variable /components/component/storage (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_storage is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_storage() directly.
+
+    YANG Description: Data for storage components
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=storage.storage, is_container='container', yang_name="storage", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """storage must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=storage.storage, is_container='container', yang_name="storage", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__storage = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_storage(self):
+    self.__storage = YANGDynClass(base=storage.storage, is_container='container', yang_name="storage", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_cpu(self):
+    """
+    Getter method for cpu, mapped from YANG variable /components/component/cpu (container)
+
+    YANG Description: Data for cpu components
+    """
+    return self.__cpu
+      
+  def _set_cpu(self, v, load=False):
+    """
+    Setter method for cpu, mapped from YANG variable /components/component/cpu (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_cpu is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_cpu() directly.
+
+    YANG Description: Data for cpu components
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=cpu.cpu, is_container='container', yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """cpu must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=cpu.cpu, is_container='container', yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__cpu = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_cpu(self):
+    self.__cpu = YANGDynClass(base=cpu.cpu, is_container='container', yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_integrated_circuit(self):
+    """
+    Getter method for integrated_circuit, mapped from YANG variable /components/component/integrated_circuit (container)
+
+    YANG Description: Data for chip components, such as ASIC, NPUs, etc.
+    """
+    return self.__integrated_circuit
+      
+  def _set_integrated_circuit(self, v, load=False):
+    """
+    Setter method for integrated_circuit, mapped from YANG variable /components/component/integrated_circuit (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_integrated_circuit is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_integrated_circuit() directly.
+
+    YANG Description: Data for chip components, such as ASIC, NPUs, etc.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=integrated_circuit.integrated_circuit, is_container='container', yang_name="integrated-circuit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """integrated_circuit must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=integrated_circuit.integrated_circuit, is_container='container', yang_name="integrated-circuit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__integrated_circuit = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_integrated_circuit(self):
+    self.__integrated_circuit = YANGDynClass(base=integrated_circuit.integrated_circuit, is_container='container', yang_name="integrated-circuit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_backplane(self):
+    """
+    Getter method for backplane, mapped from YANG variable /components/component/backplane (container)
+
+    YANG Description: Data for backplane components
+    """
+    return self.__backplane
+      
+  def _set_backplane(self, v, load=False):
+    """
+    Setter method for backplane, mapped from YANG variable /components/component/backplane (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_backplane is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_backplane() directly.
+
+    YANG Description: Data for backplane components
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=backplane.backplane, is_container='container', yang_name="backplane", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """backplane must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=backplane.backplane, is_container='container', yang_name="backplane", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__backplane = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_backplane(self):
+    self.__backplane = YANGDynClass(base=backplane.backplane, is_container='container', yang_name="backplane", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_software_module(self):
+    """
+    Getter method for software_module, mapped from YANG variable /components/component/software_module (container)
+
+    YANG Description: Data for software module components, i.e., for components
+with type=SOFTWARE_MODULE
+    """
+    return self.__software_module
+      
+  def _set_software_module(self, v, load=False):
+    """
+    Setter method for software_module, mapped from YANG variable /components/component/software_module (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_software_module is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_software_module() directly.
+
+    YANG Description: Data for software module components, i.e., for components
+with type=SOFTWARE_MODULE
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=software_module.software_module, is_container='container', yang_name="software-module", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """software_module must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=software_module.software_module, is_container='container', yang_name="software-module", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__software_module = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_software_module(self):
+    self.__software_module = YANGDynClass(base=software_module.software_module, is_container='container', yang_name="software-module", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_controller_card(self):
+    """
+    Getter method for controller_card, mapped from YANG variable /components/component/controller_card (container)
+
+    YANG Description: Data for controller card components, i.e., for components
+with type=CONTROLLER_CARD
+    """
+    return self.__controller_card
+      
+  def _set_controller_card(self, v, load=False):
+    """
+    Setter method for controller_card, mapped from YANG variable /components/component/controller_card (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_controller_card is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_controller_card() directly.
+
+    YANG Description: Data for controller card components, i.e., for components
+with type=CONTROLLER_CARD
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=controller_card.controller_card, is_container='container', yang_name="controller-card", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """controller_card must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=controller_card.controller_card, is_container='container', yang_name="controller-card", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__controller_card = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_controller_card(self):
+    self.__controller_card = YANGDynClass(base=controller_card.controller_card, is_container='container', yang_name="controller-card", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+  config = __builtin__.property(_get_config, _set_config)
+  state = __builtin__.property(_get_state, _set_state)
+  properties = __builtin__.property(_get_properties, _set_properties)
+  subcomponents = __builtin__.property(_get_subcomponents, _set_subcomponents)
+  chassis = __builtin__.property(_get_chassis, _set_chassis)
+  port = __builtin__.property(_get_port, _set_port)
+  power_supply = __builtin__.property(_get_power_supply, _set_power_supply)
+  fan = __builtin__.property(_get_fan, _set_fan)
+  fabric = __builtin__.property(_get_fabric, _set_fabric)
+  storage = __builtin__.property(_get_storage, _set_storage)
+  cpu = __builtin__.property(_get_cpu, _set_cpu)
+  integrated_circuit = __builtin__.property(_get_integrated_circuit, _set_integrated_circuit)
+  backplane = __builtin__.property(_get_backplane, _set_backplane)
+  software_module = __builtin__.property(_get_software_module, _set_software_module)
+  controller_card = __builtin__.property(_get_controller_card, _set_controller_card)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ('properties', properties), ('subcomponents', subcomponents), ('chassis', chassis), ('port', port), ('power_supply', power_supply), ('fan', fan), ('fabric', fabric), ('storage', storage), ('cpu', cpu), ('integrated_circuit', integrated_circuit), ('backplane', backplane), ('software_module', software_module), ('controller_card', controller_card), ])
+
+
+from . import config
+from . import state
+from . import properties
+from . import subcomponents
+from . import chassis
+from . import port
+from . import power_supply
+from . import fan
+from . import fabric
+from . import storage
+from . import cpu
+from . import integrated_circuit
+from . import backplane
+from . import software_module
+from . import controller_card
+class component(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: List of components, keyed by component name.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state','__properties','__subcomponents','__chassis','__port','__power_supply','__fan','__fabric','__storage','__cpu','__integrated_circuit','__backplane','__software_module','__controller_card',)
+
+  _yang_name = 'component'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__properties = YANGDynClass(base=properties.properties, is_container='container', yang_name="properties", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__subcomponents = YANGDynClass(base=subcomponents.subcomponents, is_container='container', yang_name="subcomponents", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__chassis = YANGDynClass(base=chassis.chassis, is_container='container', yang_name="chassis", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__port = YANGDynClass(base=port.port, is_container='container', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__power_supply = YANGDynClass(base=power_supply.power_supply, is_container='container', yang_name="power-supply", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__fan = YANGDynClass(base=fan.fan, is_container='container', yang_name="fan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__fabric = YANGDynClass(base=fabric.fabric, is_container='container', yang_name="fabric", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__storage = YANGDynClass(base=storage.storage, is_container='container', yang_name="storage", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__cpu = YANGDynClass(base=cpu.cpu, is_container='container', yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__integrated_circuit = YANGDynClass(base=integrated_circuit.integrated_circuit, is_container='container', yang_name="integrated-circuit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__backplane = YANGDynClass(base=backplane.backplane, is_container='container', yang_name="backplane", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__software_module = YANGDynClass(base=software_module.software_module, is_container='container', yang_name="software-module", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__controller_card = YANGDynClass(base=controller_card.controller_card, is_container='container', yang_name="controller-card", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/name (leafref)
+
+    YANG Description: References the component name
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/name (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: References the component name
+    """
+    parent = getattr(self, "_parent", None)
+    if parent is not None and load is False:
+      raise AttributeError("Cannot set keys directly when" +
+                             " within an instantiated list")
+
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+
+
+  def _get_config(self):
+    """
+    Getter method for config, mapped from YANG variable /components/component/config (container)
+
+    YANG Description: Configuration data for each component
+    """
+    return self.__config
+      
+  def _set_config(self, v, load=False):
+    """
+    Setter method for config, mapped from YANG variable /components/component/config (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_config is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_config() directly.
+
+    YANG Description: Configuration data for each component
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """config must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__config = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_config(self):
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_state(self):
+    """
+    Getter method for state, mapped from YANG variable /components/component/state (container)
+
+    YANG Description: Operational state data for each component
+    """
+    return self.__state
+      
+  def _set_state(self, v, load=False):
+    """
+    Setter method for state, mapped from YANG variable /components/component/state (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_state is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_state() directly.
+
+    YANG Description: Operational state data for each component
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """state must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__state = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_state(self):
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_properties(self):
+    """
+    Getter method for properties, mapped from YANG variable /components/component/properties (container)
+
+    YANG Description: Enclosing container 
+    """
+    return self.__properties
+      
+  def _set_properties(self, v, load=False):
+    """
+    Setter method for properties, mapped from YANG variable /components/component/properties (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_properties is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_properties() directly.
+
+    YANG Description: Enclosing container 
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=properties.properties, is_container='container', yang_name="properties", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """properties must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=properties.properties, is_container='container', yang_name="properties", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__properties = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_properties(self):
+    self.__properties = YANGDynClass(base=properties.properties, is_container='container', yang_name="properties", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_subcomponents(self):
+    """
+    Getter method for subcomponents, mapped from YANG variable /components/component/subcomponents (container)
+
+    YANG Description: Enclosing container for subcomponent references
+    """
+    return self.__subcomponents
+      
+  def _set_subcomponents(self, v, load=False):
+    """
+    Setter method for subcomponents, mapped from YANG variable /components/component/subcomponents (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_subcomponents is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_subcomponents() directly.
+
+    YANG Description: Enclosing container for subcomponent references
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=subcomponents.subcomponents, is_container='container', yang_name="subcomponents", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """subcomponents must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=subcomponents.subcomponents, is_container='container', yang_name="subcomponents", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__subcomponents = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_subcomponents(self):
+    self.__subcomponents = YANGDynClass(base=subcomponents.subcomponents, is_container='container', yang_name="subcomponents", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_chassis(self):
+    """
+    Getter method for chassis, mapped from YANG variable /components/component/chassis (container)
+
+    YANG Description: Data for chassis components
+    """
+    return self.__chassis
+      
+  def _set_chassis(self, v, load=False):
+    """
+    Setter method for chassis, mapped from YANG variable /components/component/chassis (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_chassis is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_chassis() directly.
+
+    YANG Description: Data for chassis components
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=chassis.chassis, is_container='container', yang_name="chassis", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """chassis must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=chassis.chassis, is_container='container', yang_name="chassis", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__chassis = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_chassis(self):
+    self.__chassis = YANGDynClass(base=chassis.chassis, is_container='container', yang_name="chassis", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_port(self):
+    """
+    Getter method for port, mapped from YANG variable /components/component/port (container)
+
+    YANG Description: Data for physical port components
+    """
+    return self.__port
+      
+  def _set_port(self, v, load=False):
+    """
+    Setter method for port, mapped from YANG variable /components/component/port (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_port is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_port() directly.
+
+    YANG Description: Data for physical port components
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=port.port, is_container='container', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """port must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=port.port, is_container='container', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__port = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_port(self):
+    self.__port = YANGDynClass(base=port.port, is_container='container', yang_name="port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_power_supply(self):
+    """
+    Getter method for power_supply, mapped from YANG variable /components/component/power_supply (container)
+
+    YANG Description: Data for power supply components
+    """
+    return self.__power_supply
+      
+  def _set_power_supply(self, v, load=False):
+    """
+    Setter method for power_supply, mapped from YANG variable /components/component/power_supply (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_power_supply is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_power_supply() directly.
+
+    YANG Description: Data for power supply components
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=power_supply.power_supply, is_container='container', yang_name="power-supply", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """power_supply must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=power_supply.power_supply, is_container='container', yang_name="power-supply", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__power_supply = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_power_supply(self):
+    self.__power_supply = YANGDynClass(base=power_supply.power_supply, is_container='container', yang_name="power-supply", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_fan(self):
+    """
+    Getter method for fan, mapped from YANG variable /components/component/fan (container)
+
+    YANG Description: Data for fan components
+    """
+    return self.__fan
+      
+  def _set_fan(self, v, load=False):
+    """
+    Setter method for fan, mapped from YANG variable /components/component/fan (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_fan is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_fan() directly.
+
+    YANG Description: Data for fan components
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=fan.fan, is_container='container', yang_name="fan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """fan must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=fan.fan, is_container='container', yang_name="fan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__fan = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_fan(self):
+    self.__fan = YANGDynClass(base=fan.fan, is_container='container', yang_name="fan", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_fabric(self):
+    """
+    Getter method for fabric, mapped from YANG variable /components/component/fabric (container)
+
+    YANG Description: Data for fabric components
+    """
+    return self.__fabric
+      
+  def _set_fabric(self, v, load=False):
+    """
+    Setter method for fabric, mapped from YANG variable /components/component/fabric (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_fabric is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_fabric() directly.
+
+    YANG Description: Data for fabric components
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=fabric.fabric, is_container='container', yang_name="fabric", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """fabric must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=fabric.fabric, is_container='container', yang_name="fabric", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__fabric = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_fabric(self):
+    self.__fabric = YANGDynClass(base=fabric.fabric, is_container='container', yang_name="fabric", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_storage(self):
+    """
+    Getter method for storage, mapped from YANG variable /components/component/storage (container)
+
+    YANG Description: Data for storage components
+    """
+    return self.__storage
+      
+  def _set_storage(self, v, load=False):
+    """
+    Setter method for storage, mapped from YANG variable /components/component/storage (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_storage is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_storage() directly.
+
+    YANG Description: Data for storage components
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=storage.storage, is_container='container', yang_name="storage", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """storage must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=storage.storage, is_container='container', yang_name="storage", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__storage = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_storage(self):
+    self.__storage = YANGDynClass(base=storage.storage, is_container='container', yang_name="storage", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_cpu(self):
+    """
+    Getter method for cpu, mapped from YANG variable /components/component/cpu (container)
+
+    YANG Description: Data for cpu components
+    """
+    return self.__cpu
+      
+  def _set_cpu(self, v, load=False):
+    """
+    Setter method for cpu, mapped from YANG variable /components/component/cpu (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_cpu is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_cpu() directly.
+
+    YANG Description: Data for cpu components
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=cpu.cpu, is_container='container', yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """cpu must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=cpu.cpu, is_container='container', yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__cpu = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_cpu(self):
+    self.__cpu = YANGDynClass(base=cpu.cpu, is_container='container', yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_integrated_circuit(self):
+    """
+    Getter method for integrated_circuit, mapped from YANG variable /components/component/integrated_circuit (container)
+
+    YANG Description: Data for chip components, such as ASIC, NPUs, etc.
+    """
+    return self.__integrated_circuit
+      
+  def _set_integrated_circuit(self, v, load=False):
+    """
+    Setter method for integrated_circuit, mapped from YANG variable /components/component/integrated_circuit (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_integrated_circuit is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_integrated_circuit() directly.
+
+    YANG Description: Data for chip components, such as ASIC, NPUs, etc.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=integrated_circuit.integrated_circuit, is_container='container', yang_name="integrated-circuit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """integrated_circuit must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=integrated_circuit.integrated_circuit, is_container='container', yang_name="integrated-circuit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__integrated_circuit = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_integrated_circuit(self):
+    self.__integrated_circuit = YANGDynClass(base=integrated_circuit.integrated_circuit, is_container='container', yang_name="integrated-circuit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_backplane(self):
+    """
+    Getter method for backplane, mapped from YANG variable /components/component/backplane (container)
+
+    YANG Description: Data for backplane components
+    """
+    return self.__backplane
+      
+  def _set_backplane(self, v, load=False):
+    """
+    Setter method for backplane, mapped from YANG variable /components/component/backplane (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_backplane is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_backplane() directly.
+
+    YANG Description: Data for backplane components
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=backplane.backplane, is_container='container', yang_name="backplane", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """backplane must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=backplane.backplane, is_container='container', yang_name="backplane", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__backplane = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_backplane(self):
+    self.__backplane = YANGDynClass(base=backplane.backplane, is_container='container', yang_name="backplane", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_software_module(self):
+    """
+    Getter method for software_module, mapped from YANG variable /components/component/software_module (container)
+
+    YANG Description: Data for software module components, i.e., for components
+with type=SOFTWARE_MODULE
+    """
+    return self.__software_module
+      
+  def _set_software_module(self, v, load=False):
+    """
+    Setter method for software_module, mapped from YANG variable /components/component/software_module (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_software_module is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_software_module() directly.
+
+    YANG Description: Data for software module components, i.e., for components
+with type=SOFTWARE_MODULE
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=software_module.software_module, is_container='container', yang_name="software-module", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """software_module must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=software_module.software_module, is_container='container', yang_name="software-module", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__software_module = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_software_module(self):
+    self.__software_module = YANGDynClass(base=software_module.software_module, is_container='container', yang_name="software-module", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_controller_card(self):
+    """
+    Getter method for controller_card, mapped from YANG variable /components/component/controller_card (container)
+
+    YANG Description: Data for controller card components, i.e., for components
+with type=CONTROLLER_CARD
+    """
+    return self.__controller_card
+      
+  def _set_controller_card(self, v, load=False):
+    """
+    Setter method for controller_card, mapped from YANG variable /components/component/controller_card (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_controller_card is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_controller_card() directly.
+
+    YANG Description: Data for controller card components, i.e., for components
+with type=CONTROLLER_CARD
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=controller_card.controller_card, is_container='container', yang_name="controller-card", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """controller_card must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=controller_card.controller_card, is_container='container', yang_name="controller-card", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__controller_card = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_controller_card(self):
+    self.__controller_card = YANGDynClass(base=controller_card.controller_card, is_container='container', yang_name="controller-card", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+  config = __builtin__.property(_get_config, _set_config)
+  state = __builtin__.property(_get_state, _set_state)
+  properties = __builtin__.property(_get_properties, _set_properties)
+  subcomponents = __builtin__.property(_get_subcomponents, _set_subcomponents)
+  chassis = __builtin__.property(_get_chassis, _set_chassis)
+  port = __builtin__.property(_get_port, _set_port)
+  power_supply = __builtin__.property(_get_power_supply, _set_power_supply)
+  fan = __builtin__.property(_get_fan, _set_fan)
+  fabric = __builtin__.property(_get_fabric, _set_fabric)
+  storage = __builtin__.property(_get_storage, _set_storage)
+  cpu = __builtin__.property(_get_cpu, _set_cpu)
+  integrated_circuit = __builtin__.property(_get_integrated_circuit, _set_integrated_circuit)
+  backplane = __builtin__.property(_get_backplane, _set_backplane)
+  software_module = __builtin__.property(_get_software_module, _set_software_module)
+  controller_card = __builtin__.property(_get_controller_card, _set_controller_card)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ('properties', properties), ('subcomponents', subcomponents), ('chassis', chassis), ('port', port), ('power_supply', power_supply), ('fan', fan), ('fabric', fabric), ('storage', storage), ('cpu', cpu), ('integrated_circuit', integrated_circuit), ('backplane', backplane), ('software_module', software_module), ('controller_card', controller_card), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/backplane/__init__.py b/hackfest/netconf-oc/openconfig/components/component/backplane/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..15bef3759aab3b7d456fc2bf3e79d364fbf2aa2f
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/backplane/__init__.py
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class backplane(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/backplane. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for backplane components
+  """
+  _pyangbind_elements = {}
+
+  
+
+class backplane(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/backplane. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for backplane components
+  """
+  _pyangbind_elements = {}
+
+  
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/chassis/__init__.py b/hackfest/netconf-oc/openconfig/components/component/chassis/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..9e88a339a79e9feb0912c24d1a58043f5a25f5c6
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/chassis/__init__.py
@@ -0,0 +1,208 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import utilization
+class chassis(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/chassis. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for chassis components
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__utilization',)
+
+  _yang_name = 'chassis'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__utilization = YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'chassis']
+
+  def _get_utilization(self):
+    """
+    Getter method for utilization, mapped from YANG variable /components/component/chassis/utilization (container)
+
+    YANG Description: Utilization of the component.
+    """
+    return self.__utilization
+      
+  def _set_utilization(self, v, load=False):
+    """
+    Setter method for utilization, mapped from YANG variable /components/component/chassis/utilization (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_utilization is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_utilization() directly.
+
+    YANG Description: Utilization of the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """utilization must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__utilization = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_utilization(self):
+    self.__utilization = YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+  utilization = __builtin__.property(_get_utilization, _set_utilization)
+
+
+  _pyangbind_elements = OrderedDict([('utilization', utilization), ])
+
+
+from . import utilization
+class chassis(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/chassis. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for chassis components
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__utilization',)
+
+  _yang_name = 'chassis'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__utilization = YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'chassis']
+
+  def _get_utilization(self):
+    """
+    Getter method for utilization, mapped from YANG variable /components/component/chassis/utilization (container)
+
+    YANG Description: Utilization of the component.
+    """
+    return self.__utilization
+      
+  def _set_utilization(self, v, load=False):
+    """
+    Setter method for utilization, mapped from YANG variable /components/component/chassis/utilization (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_utilization is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_utilization() directly.
+
+    YANG Description: Utilization of the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """utilization must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__utilization = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_utilization(self):
+    self.__utilization = YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+  utilization = __builtin__.property(_get_utilization, _set_utilization)
+
+
+  _pyangbind_elements = OrderedDict([('utilization', utilization), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/__init__.py b/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..a1bac9c98ca84bd2fcdb13e29b0419d0695a1be8
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/__init__.py
@@ -0,0 +1,208 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import resources
+class utilization(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/chassis/utilization. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Utilization of the component.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__resources',)
+
+  _yang_name = 'utilization'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__resources = YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'chassis', 'utilization']
+
+  def _get_resources(self):
+    """
+    Getter method for resources, mapped from YANG variable /components/component/chassis/utilization/resources (container)
+
+    YANG Description: Enclosing container for the resources in this component.
+    """
+    return self.__resources
+      
+  def _set_resources(self, v, load=False):
+    """
+    Setter method for resources, mapped from YANG variable /components/component/chassis/utilization/resources (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_resources is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_resources() directly.
+
+    YANG Description: Enclosing container for the resources in this component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """resources must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__resources = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_resources(self):
+    self.__resources = YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+  resources = __builtin__.property(_get_resources, _set_resources)
+
+
+  _pyangbind_elements = OrderedDict([('resources', resources), ])
+
+
+from . import resources
+class utilization(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/chassis/utilization. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Utilization of the component.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__resources',)
+
+  _yang_name = 'utilization'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__resources = YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'chassis', 'utilization']
+
+  def _get_resources(self):
+    """
+    Getter method for resources, mapped from YANG variable /components/component/chassis/utilization/resources (container)
+
+    YANG Description: Enclosing container for the resources in this component.
+    """
+    return self.__resources
+      
+  def _set_resources(self, v, load=False):
+    """
+    Setter method for resources, mapped from YANG variable /components/component/chassis/utilization/resources (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_resources is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_resources() directly.
+
+    YANG Description: Enclosing container for the resources in this component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """resources must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__resources = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_resources(self):
+    self.__resources = YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+  resources = __builtin__.property(_get_resources, _set_resources)
+
+
+  _pyangbind_elements = OrderedDict([('resources', resources), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/__init__.py b/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..29d51abe1879b785d0eaefd71a2055f1e136e89c
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/__init__.py
@@ -0,0 +1,208 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import resource
+class resources(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/chassis/utilization/resources. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Enclosing container for the resources in this component.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__resource',)
+
+  _yang_name = 'resources'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__resource = YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'chassis', 'utilization', 'resources']
+
+  def _get_resource(self):
+    """
+    Getter method for resource, mapped from YANG variable /components/component/chassis/utilization/resources/resource (list)
+
+    YANG Description: List of resources, keyed by resource name.
+    """
+    return self.__resource
+      
+  def _set_resource(self, v, load=False):
+    """
+    Setter method for resource, mapped from YANG variable /components/component/chassis/utilization/resources/resource (list)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_resource is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_resource() directly.
+
+    YANG Description: List of resources, keyed by resource name.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """resource must be of a type compatible with list""",
+          'defined-type': "list",
+          'generated-type': """YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)""",
+        })
+
+    self.__resource = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_resource(self):
+    self.__resource = YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+
+  resource = __builtin__.property(_get_resource, _set_resource)
+
+
+  _pyangbind_elements = OrderedDict([('resource', resource), ])
+
+
+from . import resource
+class resources(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/chassis/utilization/resources. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Enclosing container for the resources in this component.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__resource',)
+
+  _yang_name = 'resources'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__resource = YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'chassis', 'utilization', 'resources']
+
+  def _get_resource(self):
+    """
+    Getter method for resource, mapped from YANG variable /components/component/chassis/utilization/resources/resource (list)
+
+    YANG Description: List of resources, keyed by resource name.
+    """
+    return self.__resource
+      
+  def _set_resource(self, v, load=False):
+    """
+    Setter method for resource, mapped from YANG variable /components/component/chassis/utilization/resources/resource (list)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_resource is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_resource() directly.
+
+    YANG Description: List of resources, keyed by resource name.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """resource must be of a type compatible with list""",
+          'defined-type': "list",
+          'generated-type': """YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)""",
+        })
+
+    self.__resource = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_resource(self):
+    self.__resource = YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+
+  resource = __builtin__.property(_get_resource, _set_resource)
+
+
+  _pyangbind_elements = OrderedDict([('resource', resource), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/resource/__init__.py b/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/resource/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..ff0575f656886cc795b63d8f5c0020c03d0254c3
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/resource/__init__.py
@@ -0,0 +1,376 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import config
+from . import state
+class resource(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/chassis/utilization/resources/resource. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: List of resources, keyed by resource name.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state',)
+
+  _yang_name = 'resource'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'chassis', 'utilization', 'resources', 'resource']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/name (leafref)
+
+    YANG Description: References the resource name.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/name (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: References the resource name.
+    """
+    parent = getattr(self, "_parent", None)
+    if parent is not None and load is False:
+      raise AttributeError("Cannot set keys directly when" +
+                             " within an instantiated list")
+
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+
+
+  def _get_config(self):
+    """
+    Getter method for config, mapped from YANG variable /components/component/chassis/utilization/resources/resource/config (container)
+
+    YANG Description: Configuration data for each resource.
+    """
+    return self.__config
+      
+  def _set_config(self, v, load=False):
+    """
+    Setter method for config, mapped from YANG variable /components/component/chassis/utilization/resources/resource/config (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_config is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_config() directly.
+
+    YANG Description: Configuration data for each resource.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """config must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__config = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_config(self):
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_state(self):
+    """
+    Getter method for state, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state (container)
+
+    YANG Description: Operational state data for each resource.
+    """
+    return self.__state
+      
+  def _set_state(self, v, load=False):
+    """
+    Setter method for state, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_state is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_state() directly.
+
+    YANG Description: Operational state data for each resource.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """state must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__state = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_state(self):
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+  config = __builtin__.property(_get_config, _set_config)
+  state = __builtin__.property(_get_state, _set_state)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ])
+
+
+from . import config
+from . import state
+class resource(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/chassis/utilization/resources/resource. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: List of resources, keyed by resource name.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state',)
+
+  _yang_name = 'resource'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'chassis', 'utilization', 'resources', 'resource']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/name (leafref)
+
+    YANG Description: References the resource name.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/name (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: References the resource name.
+    """
+    parent = getattr(self, "_parent", None)
+    if parent is not None and load is False:
+      raise AttributeError("Cannot set keys directly when" +
+                             " within an instantiated list")
+
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+
+
+  def _get_config(self):
+    """
+    Getter method for config, mapped from YANG variable /components/component/chassis/utilization/resources/resource/config (container)
+
+    YANG Description: Configuration data for each resource.
+    """
+    return self.__config
+      
+  def _set_config(self, v, load=False):
+    """
+    Setter method for config, mapped from YANG variable /components/component/chassis/utilization/resources/resource/config (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_config is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_config() directly.
+
+    YANG Description: Configuration data for each resource.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """config must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__config = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_config(self):
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_state(self):
+    """
+    Getter method for state, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state (container)
+
+    YANG Description: Operational state data for each resource.
+    """
+    return self.__state
+      
+  def _set_state(self, v, load=False):
+    """
+    Setter method for state, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_state is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_state() directly.
+
+    YANG Description: Operational state data for each resource.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """state must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__state = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_state(self):
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+  config = __builtin__.property(_get_config, _set_config)
+  state = __builtin__.property(_get_state, _set_state)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/resource/config/__init__.py b/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/resource/config/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..a766d52ec6ab7a593be38d4f11fbbc16dc80eb81
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/resource/config/__init__.py
@@ -0,0 +1,206 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class config(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/chassis/utilization/resources/resource/config. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Configuration data for each resource.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name',)
+
+  _yang_name = 'config'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'chassis', 'utilization', 'resources', 'resource', 'config']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/config/name (string)
+
+    YANG Description: Resource name within the component.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/config/name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: Resource name within the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ])
+
+
+class config(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/chassis/utilization/resources/resource/config. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Configuration data for each resource.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name',)
+
+  _yang_name = 'config'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'chassis', 'utilization', 'resources', 'resource', 'config']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/config/name (string)
+
+    YANG Description: Resource name within the component.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/config/name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: Resource name within the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/resource/state/__init__.py b/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/resource/state/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..9c38f59397042e87fc192c24bdbf883ce8e6fc54
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/chassis/utilization/resources/resource/state/__init__.py
@@ -0,0 +1,686 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class state(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/chassis/utilization/resources/resource/state. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Operational state data for each resource.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__used','__committed','__free','__max_limit','__high_watermark','__last_high_watermark',)
+
+  _yang_name = 'state'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__used = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__committed = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__free = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__max_limit = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__last_high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'chassis', 'utilization', 'resources', 'resource', 'state']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/name (string)
+
+    YANG Description: Resource name within the component.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: Resource name within the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_used(self):
+    """
+    Getter method for used, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/used (uint64)
+
+    YANG Description: Number of entries currently in use for the resource.
+    """
+    return self.__used
+      
+  def _set_used(self, v, load=False):
+    """
+    Setter method for used, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/used (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_used is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_used() directly.
+
+    YANG Description: Number of entries currently in use for the resource.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """used must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__used = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_used(self):
+    self.__used = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_committed(self):
+    """
+    Getter method for committed, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/committed (uint64)
+
+    YANG Description: Number of entries currently reserved for this resource. This is only
+relevant to tables which allocate a block of resource for a given
+feature.
+    """
+    return self.__committed
+      
+  def _set_committed(self, v, load=False):
+    """
+    Setter method for committed, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/committed (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_committed is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_committed() directly.
+
+    YANG Description: Number of entries currently reserved for this resource. This is only
+relevant to tables which allocate a block of resource for a given
+feature.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """committed must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__committed = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_committed(self):
+    self.__committed = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_free(self):
+    """
+    Getter method for free, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/free (uint64)
+
+    YANG Description: Number of entries available to use.
+    """
+    return self.__free
+      
+  def _set_free(self, v, load=False):
+    """
+    Setter method for free, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/free (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_free is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_free() directly.
+
+    YANG Description: Number of entries available to use.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """free must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__free = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_free(self):
+    self.__free = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_max_limit(self):
+    """
+    Getter method for max_limit, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/max_limit (uint64)
+
+    YANG Description: Maximum number of entries available for the resource. The value
+is the theoretical maximum resource utilization possible.
+    """
+    return self.__max_limit
+      
+  def _set_max_limit(self, v, load=False):
+    """
+    Setter method for max_limit, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/max_limit (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_max_limit is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_max_limit() directly.
+
+    YANG Description: Maximum number of entries available for the resource. The value
+is the theoretical maximum resource utilization possible.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """max_limit must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__max_limit = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_max_limit(self):
+    self.__max_limit = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_high_watermark(self):
+    """
+    Getter method for high_watermark, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/high_watermark (uint64)
+
+    YANG Description: A watermark of highest number of entries used for this resource.
+    """
+    return self.__high_watermark
+      
+  def _set_high_watermark(self, v, load=False):
+    """
+    Setter method for high_watermark, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/high_watermark (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_high_watermark is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_high_watermark() directly.
+
+    YANG Description: A watermark of highest number of entries used for this resource.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """high_watermark must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__high_watermark = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_high_watermark(self):
+    self.__high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_last_high_watermark(self):
+    """
+    Getter method for last_high_watermark, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/last_high_watermark (oc-types:timeticks64)
+
+    YANG Description: The time when the high-watermark was last updated
+    """
+    return self.__last_high_watermark
+      
+  def _set_last_high_watermark(self, v, load=False):
+    """
+    Setter method for last_high_watermark, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/last_high_watermark (oc-types:timeticks64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_last_high_watermark is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_last_high_watermark() directly.
+
+    YANG Description: The time when the high-watermark was last updated
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """last_high_watermark must be of a type compatible with oc-types:timeticks64""",
+          'defined-type': "oc-types:timeticks64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""",
+        })
+
+    self.__last_high_watermark = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_last_high_watermark(self):
+    self.__last_high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+
+  name = __builtin__.property(_get_name)
+  used = __builtin__.property(_get_used)
+  committed = __builtin__.property(_get_committed)
+  free = __builtin__.property(_get_free)
+  max_limit = __builtin__.property(_get_max_limit)
+  high_watermark = __builtin__.property(_get_high_watermark)
+  last_high_watermark = __builtin__.property(_get_last_high_watermark)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('used', used), ('committed', committed), ('free', free), ('max_limit', max_limit), ('high_watermark', high_watermark), ('last_high_watermark', last_high_watermark), ])
+
+
+class state(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/chassis/utilization/resources/resource/state. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Operational state data for each resource.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__used','__committed','__free','__max_limit','__high_watermark','__last_high_watermark',)
+
+  _yang_name = 'state'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__used = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__committed = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__free = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__max_limit = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__last_high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'chassis', 'utilization', 'resources', 'resource', 'state']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/name (string)
+
+    YANG Description: Resource name within the component.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: Resource name within the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_used(self):
+    """
+    Getter method for used, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/used (uint64)
+
+    YANG Description: Number of entries currently in use for the resource.
+    """
+    return self.__used
+      
+  def _set_used(self, v, load=False):
+    """
+    Setter method for used, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/used (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_used is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_used() directly.
+
+    YANG Description: Number of entries currently in use for the resource.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """used must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__used = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_used(self):
+    self.__used = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_committed(self):
+    """
+    Getter method for committed, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/committed (uint64)
+
+    YANG Description: Number of entries currently reserved for this resource. This is only
+relevant to tables which allocate a block of resource for a given
+feature.
+    """
+    return self.__committed
+      
+  def _set_committed(self, v, load=False):
+    """
+    Setter method for committed, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/committed (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_committed is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_committed() directly.
+
+    YANG Description: Number of entries currently reserved for this resource. This is only
+relevant to tables which allocate a block of resource for a given
+feature.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """committed must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__committed = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_committed(self):
+    self.__committed = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_free(self):
+    """
+    Getter method for free, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/free (uint64)
+
+    YANG Description: Number of entries available to use.
+    """
+    return self.__free
+      
+  def _set_free(self, v, load=False):
+    """
+    Setter method for free, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/free (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_free is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_free() directly.
+
+    YANG Description: Number of entries available to use.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """free must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__free = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_free(self):
+    self.__free = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_max_limit(self):
+    """
+    Getter method for max_limit, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/max_limit (uint64)
+
+    YANG Description: Maximum number of entries available for the resource. The value
+is the theoretical maximum resource utilization possible.
+    """
+    return self.__max_limit
+      
+  def _set_max_limit(self, v, load=False):
+    """
+    Setter method for max_limit, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/max_limit (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_max_limit is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_max_limit() directly.
+
+    YANG Description: Maximum number of entries available for the resource. The value
+is the theoretical maximum resource utilization possible.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """max_limit must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__max_limit = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_max_limit(self):
+    self.__max_limit = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_high_watermark(self):
+    """
+    Getter method for high_watermark, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/high_watermark (uint64)
+
+    YANG Description: A watermark of highest number of entries used for this resource.
+    """
+    return self.__high_watermark
+      
+  def _set_high_watermark(self, v, load=False):
+    """
+    Setter method for high_watermark, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/high_watermark (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_high_watermark is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_high_watermark() directly.
+
+    YANG Description: A watermark of highest number of entries used for this resource.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """high_watermark must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__high_watermark = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_high_watermark(self):
+    self.__high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_last_high_watermark(self):
+    """
+    Getter method for last_high_watermark, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/last_high_watermark (oc-types:timeticks64)
+
+    YANG Description: The time when the high-watermark was last updated
+    """
+    return self.__last_high_watermark
+      
+  def _set_last_high_watermark(self, v, load=False):
+    """
+    Setter method for last_high_watermark, mapped from YANG variable /components/component/chassis/utilization/resources/resource/state/last_high_watermark (oc-types:timeticks64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_last_high_watermark is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_last_high_watermark() directly.
+
+    YANG Description: The time when the high-watermark was last updated
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """last_high_watermark must be of a type compatible with oc-types:timeticks64""",
+          'defined-type': "oc-types:timeticks64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""",
+        })
+
+    self.__last_high_watermark = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_last_high_watermark(self):
+    self.__last_high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+
+  name = __builtin__.property(_get_name)
+  used = __builtin__.property(_get_used)
+  committed = __builtin__.property(_get_committed)
+  free = __builtin__.property(_get_free)
+  max_limit = __builtin__.property(_get_max_limit)
+  high_watermark = __builtin__.property(_get_high_watermark)
+  last_high_watermark = __builtin__.property(_get_last_high_watermark)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('used', used), ('committed', committed), ('free', free), ('max_limit', max_limit), ('high_watermark', high_watermark), ('last_high_watermark', last_high_watermark), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/config/__init__.py b/hackfest/netconf-oc/openconfig/components/component/config/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..05fc5b7959140a835f0cbeee106f326b689e072c
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/config/__init__.py
@@ -0,0 +1,218 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class config(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/config. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Configuration data for each component
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name',)
+
+  _yang_name = 'config'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'config']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/config/name (string)
+
+    YANG Description: Device name for the component -- this may not be a
+configurable parameter on many implementations.  Where
+component preconfiguration is supported, for example,
+the component name may be configurable.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/config/name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: Device name for the component -- this may not be a
+configurable parameter on many implementations.  Where
+component preconfiguration is supported, for example,
+the component name may be configurable.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ])
+
+
+class config(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/config. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Configuration data for each component
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name',)
+
+  _yang_name = 'config'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'config']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/config/name (string)
+
+    YANG Description: Device name for the component -- this may not be a
+configurable parameter on many implementations.  Where
+component preconfiguration is supported, for example,
+the component name may be configurable.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/config/name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: Device name for the component -- this may not be a
+configurable parameter on many implementations.  Where
+component preconfiguration is supported, for example,
+the component name may be configurable.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/controller_card/__init__.py b/hackfest/netconf-oc/openconfig/components/component/controller_card/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..7575a47edcbec0bded345e9bdb3a4ef2c18d6b45
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/controller_card/__init__.py
@@ -0,0 +1,50 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class controller_card(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/controller-card. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for controller card components, i.e., for components
+with type=CONTROLLER_CARD
+  """
+  _pyangbind_elements = {}
+
+  
+
+class controller_card(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/controller-card. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for controller card components, i.e., for components
+with type=CONTROLLER_CARD
+  """
+  _pyangbind_elements = {}
+
+  
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/cpu/__init__.py b/hackfest/netconf-oc/openconfig/components/component/cpu/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..06420eb73a3c14d5e991872eecd4cd68f4b726e2
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/cpu/__init__.py
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class cpu(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/cpu. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for cpu components
+  """
+  _pyangbind_elements = {}
+
+  
+
+class cpu(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/cpu. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for cpu components
+  """
+  _pyangbind_elements = {}
+
+  
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/fabric/__init__.py b/hackfest/netconf-oc/openconfig/components/component/fabric/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..b88c441d803837f34cfe270a482ddf6a1d9dd878
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/fabric/__init__.py
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class fabric(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/fabric. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for fabric components
+  """
+  _pyangbind_elements = {}
+
+  
+
+class fabric(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/fabric. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for fabric components
+  """
+  _pyangbind_elements = {}
+
+  
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/fan/__init__.py b/hackfest/netconf-oc/openconfig/components/component/fan/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e1d3cd8498e89aa26235c0ba94d2aee418c27e70
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/fan/__init__.py
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class fan(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/fan. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for fan components
+  """
+  _pyangbind_elements = {}
+
+  
+
+class fan(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/fan. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for fan components
+  """
+  _pyangbind_elements = {}
+
+  
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/__init__.py b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..a2f0ee8b82fa19dd322d3224de33942a050a6fa2
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/__init__.py
@@ -0,0 +1,208 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import utilization
+class integrated_circuit(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/integrated-circuit. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for chip components, such as ASIC, NPUs, etc.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__utilization',)
+
+  _yang_name = 'integrated-circuit'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__utilization = YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'integrated-circuit']
+
+  def _get_utilization(self):
+    """
+    Getter method for utilization, mapped from YANG variable /components/component/integrated_circuit/utilization (container)
+
+    YANG Description: Utilization of the component.
+    """
+    return self.__utilization
+      
+  def _set_utilization(self, v, load=False):
+    """
+    Setter method for utilization, mapped from YANG variable /components/component/integrated_circuit/utilization (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_utilization is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_utilization() directly.
+
+    YANG Description: Utilization of the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """utilization must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__utilization = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_utilization(self):
+    self.__utilization = YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+  utilization = __builtin__.property(_get_utilization, _set_utilization)
+
+
+  _pyangbind_elements = OrderedDict([('utilization', utilization), ])
+
+
+from . import utilization
+class integrated_circuit(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/integrated-circuit. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for chip components, such as ASIC, NPUs, etc.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__utilization',)
+
+  _yang_name = 'integrated-circuit'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__utilization = YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'integrated-circuit']
+
+  def _get_utilization(self):
+    """
+    Getter method for utilization, mapped from YANG variable /components/component/integrated_circuit/utilization (container)
+
+    YANG Description: Utilization of the component.
+    """
+    return self.__utilization
+      
+  def _set_utilization(self, v, load=False):
+    """
+    Setter method for utilization, mapped from YANG variable /components/component/integrated_circuit/utilization (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_utilization is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_utilization() directly.
+
+    YANG Description: Utilization of the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """utilization must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__utilization = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_utilization(self):
+    self.__utilization = YANGDynClass(base=utilization.utilization, is_container='container', yang_name="utilization", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+  utilization = __builtin__.property(_get_utilization, _set_utilization)
+
+
+  _pyangbind_elements = OrderedDict([('utilization', utilization), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/__init__.py b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..dc2ebc87c9230ab64955cec0a4bfcf752b97acc0
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/__init__.py
@@ -0,0 +1,208 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import resources
+class utilization(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/integrated-circuit/utilization. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Utilization of the component.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__resources',)
+
+  _yang_name = 'utilization'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__resources = YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'integrated-circuit', 'utilization']
+
+  def _get_resources(self):
+    """
+    Getter method for resources, mapped from YANG variable /components/component/integrated_circuit/utilization/resources (container)
+
+    YANG Description: Enclosing container for the resources in this component.
+    """
+    return self.__resources
+      
+  def _set_resources(self, v, load=False):
+    """
+    Setter method for resources, mapped from YANG variable /components/component/integrated_circuit/utilization/resources (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_resources is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_resources() directly.
+
+    YANG Description: Enclosing container for the resources in this component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """resources must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__resources = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_resources(self):
+    self.__resources = YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+  resources = __builtin__.property(_get_resources, _set_resources)
+
+
+  _pyangbind_elements = OrderedDict([('resources', resources), ])
+
+
+from . import resources
+class utilization(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/integrated-circuit/utilization. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Utilization of the component.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__resources',)
+
+  _yang_name = 'utilization'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__resources = YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'integrated-circuit', 'utilization']
+
+  def _get_resources(self):
+    """
+    Getter method for resources, mapped from YANG variable /components/component/integrated_circuit/utilization/resources (container)
+
+    YANG Description: Enclosing container for the resources in this component.
+    """
+    return self.__resources
+      
+  def _set_resources(self, v, load=False):
+    """
+    Setter method for resources, mapped from YANG variable /components/component/integrated_circuit/utilization/resources (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_resources is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_resources() directly.
+
+    YANG Description: Enclosing container for the resources in this component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """resources must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__resources = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_resources(self):
+    self.__resources = YANGDynClass(base=resources.resources, is_container='container', yang_name="resources", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+  resources = __builtin__.property(_get_resources, _set_resources)
+
+
+  _pyangbind_elements = OrderedDict([('resources', resources), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/__init__.py b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..f0833cc9b6254d4dab2a73303835af935316be07
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/__init__.py
@@ -0,0 +1,208 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import resource
+class resources(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/integrated-circuit/utilization/resources. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Enclosing container for the resources in this component.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__resource',)
+
+  _yang_name = 'resources'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__resource = YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'integrated-circuit', 'utilization', 'resources']
+
+  def _get_resource(self):
+    """
+    Getter method for resource, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource (list)
+
+    YANG Description: List of resources, keyed by resource name.
+    """
+    return self.__resource
+      
+  def _set_resource(self, v, load=False):
+    """
+    Setter method for resource, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource (list)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_resource is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_resource() directly.
+
+    YANG Description: List of resources, keyed by resource name.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """resource must be of a type compatible with list""",
+          'defined-type': "list",
+          'generated-type': """YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)""",
+        })
+
+    self.__resource = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_resource(self):
+    self.__resource = YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+
+  resource = __builtin__.property(_get_resource, _set_resource)
+
+
+  _pyangbind_elements = OrderedDict([('resource', resource), ])
+
+
+from . import resource
+class resources(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/integrated-circuit/utilization/resources. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Enclosing container for the resources in this component.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__resource',)
+
+  _yang_name = 'resources'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__resource = YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'integrated-circuit', 'utilization', 'resources']
+
+  def _get_resource(self):
+    """
+    Getter method for resource, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource (list)
+
+    YANG Description: List of resources, keyed by resource name.
+    """
+    return self.__resource
+      
+  def _set_resource(self, v, load=False):
+    """
+    Setter method for resource, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource (list)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_resource is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_resource() directly.
+
+    YANG Description: List of resources, keyed by resource name.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """resource must be of a type compatible with list""",
+          'defined-type': "list",
+          'generated-type': """YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)""",
+        })
+
+    self.__resource = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_resource(self):
+    self.__resource = YANGDynClass(base=YANGListType("name",resource.resource, yang_name="resource", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="resource", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+
+  resource = __builtin__.property(_get_resource, _set_resource)
+
+
+  _pyangbind_elements = OrderedDict([('resource', resource), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/resource/__init__.py b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/resource/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..fe54dd37de1e3c4637206e887b07286d611d1e1c
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/resource/__init__.py
@@ -0,0 +1,376 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import config
+from . import state
+class resource(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/integrated-circuit/utilization/resources/resource. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: List of resources, keyed by resource name.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state',)
+
+  _yang_name = 'resource'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'integrated-circuit', 'utilization', 'resources', 'resource']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/name (leafref)
+
+    YANG Description: References the resource name.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/name (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: References the resource name.
+    """
+    parent = getattr(self, "_parent", None)
+    if parent is not None and load is False:
+      raise AttributeError("Cannot set keys directly when" +
+                             " within an instantiated list")
+
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+
+
+  def _get_config(self):
+    """
+    Getter method for config, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/config (container)
+
+    YANG Description: Configuration data for each resource.
+    """
+    return self.__config
+      
+  def _set_config(self, v, load=False):
+    """
+    Setter method for config, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/config (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_config is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_config() directly.
+
+    YANG Description: Configuration data for each resource.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """config must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__config = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_config(self):
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_state(self):
+    """
+    Getter method for state, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state (container)
+
+    YANG Description: Operational state data for each resource.
+    """
+    return self.__state
+      
+  def _set_state(self, v, load=False):
+    """
+    Setter method for state, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_state is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_state() directly.
+
+    YANG Description: Operational state data for each resource.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """state must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__state = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_state(self):
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+  config = __builtin__.property(_get_config, _set_config)
+  state = __builtin__.property(_get_state, _set_state)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ])
+
+
+from . import config
+from . import state
+class resource(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/integrated-circuit/utilization/resources/resource. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: List of resources, keyed by resource name.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state',)
+
+  _yang_name = 'resource'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'integrated-circuit', 'utilization', 'resources', 'resource']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/name (leafref)
+
+    YANG Description: References the resource name.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/name (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: References the resource name.
+    """
+    parent = getattr(self, "_parent", None)
+    if parent is not None and load is False:
+      raise AttributeError("Cannot set keys directly when" +
+                             " within an instantiated list")
+
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+
+
+  def _get_config(self):
+    """
+    Getter method for config, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/config (container)
+
+    YANG Description: Configuration data for each resource.
+    """
+    return self.__config
+      
+  def _set_config(self, v, load=False):
+    """
+    Setter method for config, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/config (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_config is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_config() directly.
+
+    YANG Description: Configuration data for each resource.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """config must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__config = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_config(self):
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_state(self):
+    """
+    Getter method for state, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state (container)
+
+    YANG Description: Operational state data for each resource.
+    """
+    return self.__state
+      
+  def _set_state(self, v, load=False):
+    """
+    Setter method for state, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_state is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_state() directly.
+
+    YANG Description: Operational state data for each resource.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """state must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__state = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_state(self):
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+  config = __builtin__.property(_get_config, _set_config)
+  state = __builtin__.property(_get_state, _set_state)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/resource/config/__init__.py b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/resource/config/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..dbc0dc799a609085f77f18a623042a7b1ca556ce
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/resource/config/__init__.py
@@ -0,0 +1,206 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class config(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/integrated-circuit/utilization/resources/resource/config. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Configuration data for each resource.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name',)
+
+  _yang_name = 'config'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'integrated-circuit', 'utilization', 'resources', 'resource', 'config']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/config/name (string)
+
+    YANG Description: Resource name within the component.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/config/name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: Resource name within the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ])
+
+
+class config(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/integrated-circuit/utilization/resources/resource/config. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Configuration data for each resource.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name',)
+
+  _yang_name = 'config'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'integrated-circuit', 'utilization', 'resources', 'resource', 'config']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/config/name (string)
+
+    YANG Description: Resource name within the component.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/config/name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: Resource name within the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/resource/state/__init__.py b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/resource/state/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e4cb2cec886fe113f1fd595c386eef65e084374f
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/integrated_circuit/utilization/resources/resource/state/__init__.py
@@ -0,0 +1,686 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class state(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/integrated-circuit/utilization/resources/resource/state. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Operational state data for each resource.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__used','__committed','__free','__max_limit','__high_watermark','__last_high_watermark',)
+
+  _yang_name = 'state'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__used = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__committed = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__free = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__max_limit = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__last_high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'integrated-circuit', 'utilization', 'resources', 'resource', 'state']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/name (string)
+
+    YANG Description: Resource name within the component.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: Resource name within the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_used(self):
+    """
+    Getter method for used, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/used (uint64)
+
+    YANG Description: Number of entries currently in use for the resource.
+    """
+    return self.__used
+      
+  def _set_used(self, v, load=False):
+    """
+    Setter method for used, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/used (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_used is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_used() directly.
+
+    YANG Description: Number of entries currently in use for the resource.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """used must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__used = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_used(self):
+    self.__used = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_committed(self):
+    """
+    Getter method for committed, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/committed (uint64)
+
+    YANG Description: Number of entries currently reserved for this resource. This is only
+relevant to tables which allocate a block of resource for a given
+feature.
+    """
+    return self.__committed
+      
+  def _set_committed(self, v, load=False):
+    """
+    Setter method for committed, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/committed (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_committed is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_committed() directly.
+
+    YANG Description: Number of entries currently reserved for this resource. This is only
+relevant to tables which allocate a block of resource for a given
+feature.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """committed must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__committed = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_committed(self):
+    self.__committed = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_free(self):
+    """
+    Getter method for free, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/free (uint64)
+
+    YANG Description: Number of entries available to use.
+    """
+    return self.__free
+      
+  def _set_free(self, v, load=False):
+    """
+    Setter method for free, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/free (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_free is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_free() directly.
+
+    YANG Description: Number of entries available to use.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """free must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__free = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_free(self):
+    self.__free = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_max_limit(self):
+    """
+    Getter method for max_limit, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/max_limit (uint64)
+
+    YANG Description: Maximum number of entries available for the resource. The value
+is the theoretical maximum resource utilization possible.
+    """
+    return self.__max_limit
+      
+  def _set_max_limit(self, v, load=False):
+    """
+    Setter method for max_limit, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/max_limit (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_max_limit is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_max_limit() directly.
+
+    YANG Description: Maximum number of entries available for the resource. The value
+is the theoretical maximum resource utilization possible.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """max_limit must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__max_limit = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_max_limit(self):
+    self.__max_limit = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_high_watermark(self):
+    """
+    Getter method for high_watermark, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/high_watermark (uint64)
+
+    YANG Description: A watermark of highest number of entries used for this resource.
+    """
+    return self.__high_watermark
+      
+  def _set_high_watermark(self, v, load=False):
+    """
+    Setter method for high_watermark, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/high_watermark (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_high_watermark is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_high_watermark() directly.
+
+    YANG Description: A watermark of highest number of entries used for this resource.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """high_watermark must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__high_watermark = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_high_watermark(self):
+    self.__high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_last_high_watermark(self):
+    """
+    Getter method for last_high_watermark, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/last_high_watermark (oc-types:timeticks64)
+
+    YANG Description: The time when the high-watermark was last updated
+    """
+    return self.__last_high_watermark
+      
+  def _set_last_high_watermark(self, v, load=False):
+    """
+    Setter method for last_high_watermark, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/last_high_watermark (oc-types:timeticks64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_last_high_watermark is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_last_high_watermark() directly.
+
+    YANG Description: The time when the high-watermark was last updated
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """last_high_watermark must be of a type compatible with oc-types:timeticks64""",
+          'defined-type': "oc-types:timeticks64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""",
+        })
+
+    self.__last_high_watermark = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_last_high_watermark(self):
+    self.__last_high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+
+  name = __builtin__.property(_get_name)
+  used = __builtin__.property(_get_used)
+  committed = __builtin__.property(_get_committed)
+  free = __builtin__.property(_get_free)
+  max_limit = __builtin__.property(_get_max_limit)
+  high_watermark = __builtin__.property(_get_high_watermark)
+  last_high_watermark = __builtin__.property(_get_last_high_watermark)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('used', used), ('committed', committed), ('free', free), ('max_limit', max_limit), ('high_watermark', high_watermark), ('last_high_watermark', last_high_watermark), ])
+
+
+class state(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/integrated-circuit/utilization/resources/resource/state. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Operational state data for each resource.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__used','__committed','__free','__max_limit','__high_watermark','__last_high_watermark',)
+
+  _yang_name = 'state'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__used = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__committed = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__free = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__max_limit = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__last_high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'integrated-circuit', 'utilization', 'resources', 'resource', 'state']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/name (string)
+
+    YANG Description: Resource name within the component.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: Resource name within the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_used(self):
+    """
+    Getter method for used, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/used (uint64)
+
+    YANG Description: Number of entries currently in use for the resource.
+    """
+    return self.__used
+      
+  def _set_used(self, v, load=False):
+    """
+    Setter method for used, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/used (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_used is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_used() directly.
+
+    YANG Description: Number of entries currently in use for the resource.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """used must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__used = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_used(self):
+    self.__used = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="used", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_committed(self):
+    """
+    Getter method for committed, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/committed (uint64)
+
+    YANG Description: Number of entries currently reserved for this resource. This is only
+relevant to tables which allocate a block of resource for a given
+feature.
+    """
+    return self.__committed
+      
+  def _set_committed(self, v, load=False):
+    """
+    Setter method for committed, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/committed (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_committed is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_committed() directly.
+
+    YANG Description: Number of entries currently reserved for this resource. This is only
+relevant to tables which allocate a block of resource for a given
+feature.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """committed must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__committed = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_committed(self):
+    self.__committed = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="committed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_free(self):
+    """
+    Getter method for free, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/free (uint64)
+
+    YANG Description: Number of entries available to use.
+    """
+    return self.__free
+      
+  def _set_free(self, v, load=False):
+    """
+    Setter method for free, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/free (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_free is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_free() directly.
+
+    YANG Description: Number of entries available to use.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """free must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__free = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_free(self):
+    self.__free = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="free", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_max_limit(self):
+    """
+    Getter method for max_limit, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/max_limit (uint64)
+
+    YANG Description: Maximum number of entries available for the resource. The value
+is the theoretical maximum resource utilization possible.
+    """
+    return self.__max_limit
+      
+  def _set_max_limit(self, v, load=False):
+    """
+    Setter method for max_limit, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/max_limit (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_max_limit is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_max_limit() directly.
+
+    YANG Description: Maximum number of entries available for the resource. The value
+is the theoretical maximum resource utilization possible.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """max_limit must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__max_limit = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_max_limit(self):
+    self.__max_limit = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-limit", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_high_watermark(self):
+    """
+    Getter method for high_watermark, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/high_watermark (uint64)
+
+    YANG Description: A watermark of highest number of entries used for this resource.
+    """
+    return self.__high_watermark
+      
+  def _set_high_watermark(self, v, load=False):
+    """
+    Setter method for high_watermark, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/high_watermark (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_high_watermark is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_high_watermark() directly.
+
+    YANG Description: A watermark of highest number of entries used for this resource.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """high_watermark must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__high_watermark = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_high_watermark(self):
+    self.__high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_last_high_watermark(self):
+    """
+    Getter method for last_high_watermark, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/last_high_watermark (oc-types:timeticks64)
+
+    YANG Description: The time when the high-watermark was last updated
+    """
+    return self.__last_high_watermark
+      
+  def _set_last_high_watermark(self, v, load=False):
+    """
+    Setter method for last_high_watermark, mapped from YANG variable /components/component/integrated_circuit/utilization/resources/resource/state/last_high_watermark (oc-types:timeticks64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_last_high_watermark is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_last_high_watermark() directly.
+
+    YANG Description: The time when the high-watermark was last updated
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """last_high_watermark must be of a type compatible with oc-types:timeticks64""",
+          'defined-type': "oc-types:timeticks64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""",
+        })
+
+    self.__last_high_watermark = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_last_high_watermark(self):
+    self.__last_high_watermark = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-high-watermark", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+
+  name = __builtin__.property(_get_name)
+  used = __builtin__.property(_get_used)
+  committed = __builtin__.property(_get_committed)
+  free = __builtin__.property(_get_free)
+  max_limit = __builtin__.property(_get_max_limit)
+  high_watermark = __builtin__.property(_get_high_watermark)
+  last_high_watermark = __builtin__.property(_get_last_high_watermark)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('used', used), ('committed', committed), ('free', free), ('max_limit', max_limit), ('high_watermark', high_watermark), ('last_high_watermark', last_high_watermark), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/port/__init__.py b/hackfest/netconf-oc/openconfig/components/component/port/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..74542ccd89fc359229b55c7fbb2f6d6701d0fd1a
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/port/__init__.py
@@ -0,0 +1,208 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import breakout_mode
+class port(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/port. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for physical port components
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__breakout_mode',)
+
+  _yang_name = 'port'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__breakout_mode = YANGDynClass(base=breakout_mode.breakout_mode, is_container='container', yang_name="breakout-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'port']
+
+  def _get_breakout_mode(self):
+    """
+    Getter method for breakout_mode, mapped from YANG variable /components/component/port/breakout_mode (container)
+
+    YANG Description: Top-level container for port breakout-mode data.
+    """
+    return self.__breakout_mode
+      
+  def _set_breakout_mode(self, v, load=False):
+    """
+    Setter method for breakout_mode, mapped from YANG variable /components/component/port/breakout_mode (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_breakout_mode is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_breakout_mode() directly.
+
+    YANG Description: Top-level container for port breakout-mode data.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=breakout_mode.breakout_mode, is_container='container', yang_name="breakout-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """breakout_mode must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=breakout_mode.breakout_mode, is_container='container', yang_name="breakout-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)""",
+        })
+
+    self.__breakout_mode = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_breakout_mode(self):
+    self.__breakout_mode = YANGDynClass(base=breakout_mode.breakout_mode, is_container='container', yang_name="breakout-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+
+  breakout_mode = __builtin__.property(_get_breakout_mode, _set_breakout_mode)
+
+
+  _pyangbind_elements = OrderedDict([('breakout_mode', breakout_mode), ])
+
+
+from . import breakout_mode
+class port(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/port. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for physical port components
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__breakout_mode',)
+
+  _yang_name = 'port'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__breakout_mode = YANGDynClass(base=breakout_mode.breakout_mode, is_container='container', yang_name="breakout-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'port']
+
+  def _get_breakout_mode(self):
+    """
+    Getter method for breakout_mode, mapped from YANG variable /components/component/port/breakout_mode (container)
+
+    YANG Description: Top-level container for port breakout-mode data.
+    """
+    return self.__breakout_mode
+      
+  def _set_breakout_mode(self, v, load=False):
+    """
+    Setter method for breakout_mode, mapped from YANG variable /components/component/port/breakout_mode (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_breakout_mode is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_breakout_mode() directly.
+
+    YANG Description: Top-level container for port breakout-mode data.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=breakout_mode.breakout_mode, is_container='container', yang_name="breakout-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """breakout_mode must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=breakout_mode.breakout_mode, is_container='container', yang_name="breakout-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)""",
+        })
+
+    self.__breakout_mode = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_breakout_mode(self):
+    self.__breakout_mode = YANGDynClass(base=breakout_mode.breakout_mode, is_container='container', yang_name="breakout-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+
+  breakout_mode = __builtin__.property(_get_breakout_mode, _set_breakout_mode)
+
+
+  _pyangbind_elements = OrderedDict([('breakout_mode', breakout_mode), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/__init__.py b/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..363988ab6a25e9f8e5928b71e5004f95a6dd49f6
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/__init__.py
@@ -0,0 +1,300 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import groups
+class breakout_mode(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/port/breakout-mode. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Top-level container for port breakout-mode data.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__groups',)
+
+  _yang_name = 'breakout-mode'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__groups = YANGDynClass(base=groups.groups, is_container='container', yang_name="groups", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'port', 'breakout-mode']
+
+  def _get_groups(self):
+    """
+    Getter method for groups, mapped from YANG variable /components/component/port/breakout_mode/groups (container)
+
+    YANG Description: Top level container for breakout groups data.
+
+When a device has the capability to break a port into
+interfaces of different speeds and different number of
+physical channels, it can breakout a 400G OSFP port with
+8 physical channels (with support for 25G NRZ, 50G PAM4
+and 100G PAM4) in the following configuration:
+
+100G + 100G + 200G -> 1 interface with 2 physical channels
+and 1 interface with 4 physical channels and 1 interface with
+2 physical channels. With this configuration the interface in
+1st breakout group would use 50G PAM4 modulation, interface
+in 2nd breakout group would use 25G NRZ modulation and the
+interface in 3rd breakout group would use 100G PAM4 modulation
+This configuration would result in 3 entries in the breakout
+groups list.
+
+When a device does not have the capability to break a port
+into interfaces of different speeds and different number of
+physical channels, it would breakout a 400G OSFP port with
+8 physical channels in the following configuration:
+
+50G -> 8 interfaces with 1 physical channel each, this would
+result in 1 entry in the breakout groups list.
+    """
+    return self.__groups
+      
+  def _set_groups(self, v, load=False):
+    """
+    Setter method for groups, mapped from YANG variable /components/component/port/breakout_mode/groups (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_groups is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_groups() directly.
+
+    YANG Description: Top level container for breakout groups data.
+
+When a device has the capability to break a port into
+interfaces of different speeds and different number of
+physical channels, it can breakout a 400G OSFP port with
+8 physical channels (with support for 25G NRZ, 50G PAM4
+and 100G PAM4) in the following configuration:
+
+100G + 100G + 200G -> 1 interface with 2 physical channels
+and 1 interface with 4 physical channels and 1 interface with
+2 physical channels. With this configuration the interface in
+1st breakout group would use 50G PAM4 modulation, interface
+in 2nd breakout group would use 25G NRZ modulation and the
+interface in 3rd breakout group would use 100G PAM4 modulation
+This configuration would result in 3 entries in the breakout
+groups list.
+
+When a device does not have the capability to break a port
+into interfaces of different speeds and different number of
+physical channels, it would breakout a 400G OSFP port with
+8 physical channels in the following configuration:
+
+50G -> 8 interfaces with 1 physical channel each, this would
+result in 1 entry in the breakout groups list.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=groups.groups, is_container='container', yang_name="groups", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """groups must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=groups.groups, is_container='container', yang_name="groups", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)""",
+        })
+
+    self.__groups = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_groups(self):
+    self.__groups = YANGDynClass(base=groups.groups, is_container='container', yang_name="groups", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+
+  groups = __builtin__.property(_get_groups, _set_groups)
+
+
+  _pyangbind_elements = OrderedDict([('groups', groups), ])
+
+
+from . import groups
+class breakout_mode(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/port/breakout-mode. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Top-level container for port breakout-mode data.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__groups',)
+
+  _yang_name = 'breakout-mode'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__groups = YANGDynClass(base=groups.groups, is_container='container', yang_name="groups", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'port', 'breakout-mode']
+
+  def _get_groups(self):
+    """
+    Getter method for groups, mapped from YANG variable /components/component/port/breakout_mode/groups (container)
+
+    YANG Description: Top level container for breakout groups data.
+
+When a device has the capability to break a port into
+interfaces of different speeds and different number of
+physical channels, it can breakout a 400G OSFP port with
+8 physical channels (with support for 25G NRZ, 50G PAM4
+and 100G PAM4) in the following configuration:
+
+100G + 100G + 200G -> 1 interface with 2 physical channels
+and 1 interface with 4 physical channels and 1 interface with
+2 physical channels. With this configuration the interface in
+1st breakout group would use 50G PAM4 modulation, interface
+in 2nd breakout group would use 25G NRZ modulation and the
+interface in 3rd breakout group would use 100G PAM4 modulation
+This configuration would result in 3 entries in the breakout
+groups list.
+
+When a device does not have the capability to break a port
+into interfaces of different speeds and different number of
+physical channels, it would breakout a 400G OSFP port with
+8 physical channels in the following configuration:
+
+50G -> 8 interfaces with 1 physical channel each, this would
+result in 1 entry in the breakout groups list.
+    """
+    return self.__groups
+      
+  def _set_groups(self, v, load=False):
+    """
+    Setter method for groups, mapped from YANG variable /components/component/port/breakout_mode/groups (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_groups is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_groups() directly.
+
+    YANG Description: Top level container for breakout groups data.
+
+When a device has the capability to break a port into
+interfaces of different speeds and different number of
+physical channels, it can breakout a 400G OSFP port with
+8 physical channels (with support for 25G NRZ, 50G PAM4
+and 100G PAM4) in the following configuration:
+
+100G + 100G + 200G -> 1 interface with 2 physical channels
+and 1 interface with 4 physical channels and 1 interface with
+2 physical channels. With this configuration the interface in
+1st breakout group would use 50G PAM4 modulation, interface
+in 2nd breakout group would use 25G NRZ modulation and the
+interface in 3rd breakout group would use 100G PAM4 modulation
+This configuration would result in 3 entries in the breakout
+groups list.
+
+When a device does not have the capability to break a port
+into interfaces of different speeds and different number of
+physical channels, it would breakout a 400G OSFP port with
+8 physical channels in the following configuration:
+
+50G -> 8 interfaces with 1 physical channel each, this would
+result in 1 entry in the breakout groups list.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=groups.groups, is_container='container', yang_name="groups", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """groups must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=groups.groups, is_container='container', yang_name="groups", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)""",
+        })
+
+    self.__groups = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_groups(self):
+    self.__groups = YANGDynClass(base=groups.groups, is_container='container', yang_name="groups", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+
+  groups = __builtin__.property(_get_groups, _set_groups)
+
+
+  _pyangbind_elements = OrderedDict([('groups', groups), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/__init__.py b/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..523eb15138bed339e2361a968fc3701cdbfb2774
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/__init__.py
@@ -0,0 +1,254 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import group
+class groups(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/port/breakout-mode/groups. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Top level container for breakout groups data.
+
+When a device has the capability to break a port into
+interfaces of different speeds and different number of
+physical channels, it can breakout a 400G OSFP port with
+8 physical channels (with support for 25G NRZ, 50G PAM4
+and 100G PAM4) in the following configuration:
+
+100G + 100G + 200G -> 1 interface with 2 physical channels
+and 1 interface with 4 physical channels and 1 interface with
+2 physical channels. With this configuration the interface in
+1st breakout group would use 50G PAM4 modulation, interface
+in 2nd breakout group would use 25G NRZ modulation and the
+interface in 3rd breakout group would use 100G PAM4 modulation
+This configuration would result in 3 entries in the breakout
+groups list.
+
+When a device does not have the capability to break a port
+into interfaces of different speeds and different number of
+physical channels, it would breakout a 400G OSFP port with
+8 physical channels in the following configuration:
+
+50G -> 8 interfaces with 1 physical channel each, this would
+result in 1 entry in the breakout groups list.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__group',)
+
+  _yang_name = 'groups'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__group = YANGDynClass(base=YANGListType("index",group.group, yang_name="group", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='list', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'port', 'breakout-mode', 'groups']
+
+  def _get_group(self):
+    """
+    Getter method for group, mapped from YANG variable /components/component/port/breakout_mode/groups/group (list)
+
+    YANG Description: List of breakout groups.
+    """
+    return self.__group
+      
+  def _set_group(self, v, load=False):
+    """
+    Setter method for group, mapped from YANG variable /components/component/port/breakout_mode/groups/group (list)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_group is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_group() directly.
+
+    YANG Description: List of breakout groups.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGListType("index",group.group, yang_name="group", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='list', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """group must be of a type compatible with list""",
+          'defined-type': "list",
+          'generated-type': """YANGDynClass(base=YANGListType("index",group.group, yang_name="group", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='list', is_config=True)""",
+        })
+
+    self.__group = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_group(self):
+    self.__group = YANGDynClass(base=YANGListType("index",group.group, yang_name="group", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='list', is_config=True)
+
+  group = __builtin__.property(_get_group, _set_group)
+
+
+  _pyangbind_elements = OrderedDict([('group', group), ])
+
+
+from . import group
+class groups(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/port/breakout-mode/groups. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Top level container for breakout groups data.
+
+When a device has the capability to break a port into
+interfaces of different speeds and different number of
+physical channels, it can breakout a 400G OSFP port with
+8 physical channels (with support for 25G NRZ, 50G PAM4
+and 100G PAM4) in the following configuration:
+
+100G + 100G + 200G -> 1 interface with 2 physical channels
+and 1 interface with 4 physical channels and 1 interface with
+2 physical channels. With this configuration the interface in
+1st breakout group would use 50G PAM4 modulation, interface
+in 2nd breakout group would use 25G NRZ modulation and the
+interface in 3rd breakout group would use 100G PAM4 modulation
+This configuration would result in 3 entries in the breakout
+groups list.
+
+When a device does not have the capability to break a port
+into interfaces of different speeds and different number of
+physical channels, it would breakout a 400G OSFP port with
+8 physical channels in the following configuration:
+
+50G -> 8 interfaces with 1 physical channel each, this would
+result in 1 entry in the breakout groups list.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__group',)
+
+  _yang_name = 'groups'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__group = YANGDynClass(base=YANGListType("index",group.group, yang_name="group", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='list', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'port', 'breakout-mode', 'groups']
+
+  def _get_group(self):
+    """
+    Getter method for group, mapped from YANG variable /components/component/port/breakout_mode/groups/group (list)
+
+    YANG Description: List of breakout groups.
+    """
+    return self.__group
+      
+  def _set_group(self, v, load=False):
+    """
+    Setter method for group, mapped from YANG variable /components/component/port/breakout_mode/groups/group (list)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_group is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_group() directly.
+
+    YANG Description: List of breakout groups.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGListType("index",group.group, yang_name="group", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='list', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """group must be of a type compatible with list""",
+          'defined-type': "list",
+          'generated-type': """YANGDynClass(base=YANGListType("index",group.group, yang_name="group", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='list', is_config=True)""",
+        })
+
+    self.__group = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_group(self):
+    self.__group = YANGDynClass(base=YANGListType("index",group.group, yang_name="group", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='list', is_config=True)
+
+  group = __builtin__.property(_get_group, _set_group)
+
+
+  _pyangbind_elements = OrderedDict([('group', group), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/group/__init__.py b/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/group/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..82104e792886041d3ef76eebd8a47bd8a8e17bf5
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/group/__init__.py
@@ -0,0 +1,376 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import config
+from . import state
+class group(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/port/breakout-mode/groups/group. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: List of breakout groups.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__index','__config','__state',)
+
+  _yang_name = 'group'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__index = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=True)
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'port', 'breakout-mode', 'groups', 'group']
+
+  def _get_index(self):
+    """
+    Getter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/index (leafref)
+
+    YANG Description: Index of the breakout group entry in the breakout groups list.
+    """
+    return self.__index
+      
+  def _set_index(self, v, load=False):
+    """
+    Setter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/index (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_index is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_index() directly.
+
+    YANG Description: Index of the breakout group entry in the breakout groups list.
+    """
+    parent = getattr(self, "_parent", None)
+    if parent is not None and load is False:
+      raise AttributeError("Cannot set keys directly when" +
+                             " within an instantiated list")
+
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """index must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=True)""",
+        })
+
+    self.__index = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_index(self):
+    self.__index = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=True)
+
+
+  def _get_config(self):
+    """
+    Getter method for config, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config (container)
+
+    YANG Description: Configuration data for breakout group.
+    """
+    return self.__config
+      
+  def _set_config(self, v, load=False):
+    """
+    Setter method for config, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_config is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_config() directly.
+
+    YANG Description: Configuration data for breakout group.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """config must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)""",
+        })
+
+    self.__config = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_config(self):
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+
+
+  def _get_state(self):
+    """
+    Getter method for state, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state (container)
+
+    YANG Description: Operational state data for breakout group.
+    """
+    return self.__state
+      
+  def _set_state(self, v, load=False):
+    """
+    Setter method for state, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_state is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_state() directly.
+
+    YANG Description: Operational state data for breakout group.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """state must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)""",
+        })
+
+    self.__state = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_state(self):
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+
+  index = __builtin__.property(_get_index, _set_index)
+  config = __builtin__.property(_get_config, _set_config)
+  state = __builtin__.property(_get_state, _set_state)
+
+
+  _pyangbind_elements = OrderedDict([('index', index), ('config', config), ('state', state), ])
+
+
+from . import config
+from . import state
+class group(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/port/breakout-mode/groups/group. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: List of breakout groups.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__index','__config','__state',)
+
+  _yang_name = 'group'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__index = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=True)
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'port', 'breakout-mode', 'groups', 'group']
+
+  def _get_index(self):
+    """
+    Getter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/index (leafref)
+
+    YANG Description: Index of the breakout group entry in the breakout groups list.
+    """
+    return self.__index
+      
+  def _set_index(self, v, load=False):
+    """
+    Setter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/index (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_index is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_index() directly.
+
+    YANG Description: Index of the breakout group entry in the breakout groups list.
+    """
+    parent = getattr(self, "_parent", None)
+    if parent is not None and load is False:
+      raise AttributeError("Cannot set keys directly when" +
+                             " within an instantiated list")
+
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """index must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=True)""",
+        })
+
+    self.__index = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_index(self):
+    self.__index = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=True)
+
+
+  def _get_config(self):
+    """
+    Getter method for config, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config (container)
+
+    YANG Description: Configuration data for breakout group.
+    """
+    return self.__config
+      
+  def _set_config(self, v, load=False):
+    """
+    Setter method for config, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_config is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_config() directly.
+
+    YANG Description: Configuration data for breakout group.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """config must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)""",
+        })
+
+    self.__config = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_config(self):
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+
+
+  def _get_state(self):
+    """
+    Getter method for state, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state (container)
+
+    YANG Description: Operational state data for breakout group.
+    """
+    return self.__state
+      
+  def _set_state(self, v, load=False):
+    """
+    Setter method for state, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_state is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_state() directly.
+
+    YANG Description: Operational state data for breakout group.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """state must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)""",
+        })
+
+    self.__state = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_state(self):
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='container', is_config=True)
+
+  index = __builtin__.property(_get_index, _set_index)
+  config = __builtin__.property(_get_config, _set_config)
+  state = __builtin__.property(_get_state, _set_state)
+
+
+  _pyangbind_elements = OrderedDict([('index', index), ('config', config), ('state', state), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/group/config/__init__.py b/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/group/config/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..5a989534cd1f8272ee971533e2e4cc97e3b4fffc
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/group/config/__init__.py
@@ -0,0 +1,464 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class config(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/port/breakout-mode/groups/group/config. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Configuration data for breakout group.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__index','__num_breakouts','__breakout_speed','__num_physical_channels',)
+
+  _yang_name = 'config'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__index = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)
+    self.__num_breakouts = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)
+    self.__breakout_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=True)
+    self.__num_physical_channels = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'port', 'breakout-mode', 'groups', 'group', 'config']
+
+  def _get_index(self):
+    """
+    Getter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/index (uint8)
+
+    YANG Description: Each index specifies breakouts that are identical in
+terms of speed and the number of physical channels.
+    """
+    return self.__index
+      
+  def _set_index(self, v, load=False):
+    """
+    Setter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/index (uint8)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_index is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_index() directly.
+
+    YANG Description: Each index specifies breakouts that are identical in
+terms of speed and the number of physical channels.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """index must be of a type compatible with uint8""",
+          'defined-type': "uint8",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)""",
+        })
+
+    self.__index = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_index(self):
+    self.__index = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)
+
+
+  def _get_num_breakouts(self):
+    """
+    Getter method for num_breakouts, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/num_breakouts (uint8)
+
+    YANG Description: Sets the number of interfaces using this breakout group.
+    """
+    return self.__num_breakouts
+      
+  def _set_num_breakouts(self, v, load=False):
+    """
+    Setter method for num_breakouts, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/num_breakouts (uint8)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_num_breakouts is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_num_breakouts() directly.
+
+    YANG Description: Sets the number of interfaces using this breakout group.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """num_breakouts must be of a type compatible with uint8""",
+          'defined-type': "uint8",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)""",
+        })
+
+    self.__num_breakouts = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_num_breakouts(self):
+    self.__num_breakouts = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)
+
+
+  def _get_breakout_speed(self):
+    """
+    Getter method for breakout_speed, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/breakout_speed (identityref)
+
+    YANG Description: Speed of interfaces in this breakout group, supported
+values are defined by the ETHERNET_SPEED identity.
+    """
+    return self.__breakout_speed
+      
+  def _set_breakout_speed(self, v, load=False):
+    """
+    Setter method for breakout_speed, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/breakout_speed (identityref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_breakout_speed is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_breakout_speed() directly.
+
+    YANG Description: Speed of interfaces in this breakout group, supported
+values are defined by the ETHERNET_SPEED identity.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """breakout_speed must be of a type compatible with identityref""",
+          'defined-type': "openconfig-platform-port:identityref",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=True)""",
+        })
+
+    self.__breakout_speed = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_breakout_speed(self):
+    self.__breakout_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=True)
+
+
+  def _get_num_physical_channels(self):
+    """
+    Getter method for num_physical_channels, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/num_physical_channels (uint8)
+
+    YANG Description: Sets the number of lanes or physical channels assigned
+to the interfaces in this breakout group. This leaf need
+not be set if there is only one breakout group where all
+the interfaces are of equal speed and have equal number
+of physical channels
+    """
+    return self.__num_physical_channels
+      
+  def _set_num_physical_channels(self, v, load=False):
+    """
+    Setter method for num_physical_channels, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/num_physical_channels (uint8)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_num_physical_channels is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_num_physical_channels() directly.
+
+    YANG Description: Sets the number of lanes or physical channels assigned
+to the interfaces in this breakout group. This leaf need
+not be set if there is only one breakout group where all
+the interfaces are of equal speed and have equal number
+of physical channels
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """num_physical_channels must be of a type compatible with uint8""",
+          'defined-type': "uint8",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)""",
+        })
+
+    self.__num_physical_channels = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_num_physical_channels(self):
+    self.__num_physical_channels = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)
+
+  index = __builtin__.property(_get_index, _set_index)
+  num_breakouts = __builtin__.property(_get_num_breakouts, _set_num_breakouts)
+  breakout_speed = __builtin__.property(_get_breakout_speed, _set_breakout_speed)
+  num_physical_channels = __builtin__.property(_get_num_physical_channels, _set_num_physical_channels)
+
+
+  _pyangbind_elements = OrderedDict([('index', index), ('num_breakouts', num_breakouts), ('breakout_speed', breakout_speed), ('num_physical_channels', num_physical_channels), ])
+
+
+class config(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/port/breakout-mode/groups/group/config. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Configuration data for breakout group.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__index','__num_breakouts','__breakout_speed','__num_physical_channels',)
+
+  _yang_name = 'config'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__index = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)
+    self.__num_breakouts = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)
+    self.__breakout_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=True)
+    self.__num_physical_channels = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'port', 'breakout-mode', 'groups', 'group', 'config']
+
+  def _get_index(self):
+    """
+    Getter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/index (uint8)
+
+    YANG Description: Each index specifies breakouts that are identical in
+terms of speed and the number of physical channels.
+    """
+    return self.__index
+      
+  def _set_index(self, v, load=False):
+    """
+    Setter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/index (uint8)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_index is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_index() directly.
+
+    YANG Description: Each index specifies breakouts that are identical in
+terms of speed and the number of physical channels.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """index must be of a type compatible with uint8""",
+          'defined-type': "uint8",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)""",
+        })
+
+    self.__index = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_index(self):
+    self.__index = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)
+
+
+  def _get_num_breakouts(self):
+    """
+    Getter method for num_breakouts, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/num_breakouts (uint8)
+
+    YANG Description: Sets the number of interfaces using this breakout group.
+    """
+    return self.__num_breakouts
+      
+  def _set_num_breakouts(self, v, load=False):
+    """
+    Setter method for num_breakouts, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/num_breakouts (uint8)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_num_breakouts is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_num_breakouts() directly.
+
+    YANG Description: Sets the number of interfaces using this breakout group.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """num_breakouts must be of a type compatible with uint8""",
+          'defined-type': "uint8",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)""",
+        })
+
+    self.__num_breakouts = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_num_breakouts(self):
+    self.__num_breakouts = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)
+
+
+  def _get_breakout_speed(self):
+    """
+    Getter method for breakout_speed, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/breakout_speed (identityref)
+
+    YANG Description: Speed of interfaces in this breakout group, supported
+values are defined by the ETHERNET_SPEED identity.
+    """
+    return self.__breakout_speed
+      
+  def _set_breakout_speed(self, v, load=False):
+    """
+    Setter method for breakout_speed, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/breakout_speed (identityref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_breakout_speed is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_breakout_speed() directly.
+
+    YANG Description: Speed of interfaces in this breakout group, supported
+values are defined by the ETHERNET_SPEED identity.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """breakout_speed must be of a type compatible with identityref""",
+          'defined-type': "openconfig-platform-port:identityref",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=True)""",
+        })
+
+    self.__breakout_speed = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_breakout_speed(self):
+    self.__breakout_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=True)
+
+
+  def _get_num_physical_channels(self):
+    """
+    Getter method for num_physical_channels, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/num_physical_channels (uint8)
+
+    YANG Description: Sets the number of lanes or physical channels assigned
+to the interfaces in this breakout group. This leaf need
+not be set if there is only one breakout group where all
+the interfaces are of equal speed and have equal number
+of physical channels
+    """
+    return self.__num_physical_channels
+      
+  def _set_num_physical_channels(self, v, load=False):
+    """
+    Setter method for num_physical_channels, mapped from YANG variable /components/component/port/breakout_mode/groups/group/config/num_physical_channels (uint8)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_num_physical_channels is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_num_physical_channels() directly.
+
+    YANG Description: Sets the number of lanes or physical channels assigned
+to the interfaces in this breakout group. This leaf need
+not be set if there is only one breakout group where all
+the interfaces are of equal speed and have equal number
+of physical channels
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """num_physical_channels must be of a type compatible with uint8""",
+          'defined-type': "uint8",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)""",
+        })
+
+    self.__num_physical_channels = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_num_physical_channels(self):
+    self.__num_physical_channels = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=True)
+
+  index = __builtin__.property(_get_index, _set_index)
+  num_breakouts = __builtin__.property(_get_num_breakouts, _set_num_breakouts)
+  breakout_speed = __builtin__.property(_get_breakout_speed, _set_breakout_speed)
+  num_physical_channels = __builtin__.property(_get_num_physical_channels, _set_num_physical_channels)
+
+
+  _pyangbind_elements = OrderedDict([('index', index), ('num_breakouts', num_breakouts), ('breakout_speed', breakout_speed), ('num_physical_channels', num_physical_channels), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/group/state/__init__.py b/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/group/state/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..71c63f44b61ef5b032652a2d43928d96c83a3a29
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/port/breakout_mode/groups/group/state/__init__.py
@@ -0,0 +1,464 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class state(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/port/breakout-mode/groups/group/state. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Operational state data for breakout group.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__index','__num_breakouts','__breakout_speed','__num_physical_channels',)
+
+  _yang_name = 'state'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__index = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)
+    self.__num_breakouts = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)
+    self.__breakout_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=False)
+    self.__num_physical_channels = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'port', 'breakout-mode', 'groups', 'group', 'state']
+
+  def _get_index(self):
+    """
+    Getter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/index (uint8)
+
+    YANG Description: Each index specifies breakouts that are identical in
+terms of speed and the number of physical channels.
+    """
+    return self.__index
+      
+  def _set_index(self, v, load=False):
+    """
+    Setter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/index (uint8)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_index is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_index() directly.
+
+    YANG Description: Each index specifies breakouts that are identical in
+terms of speed and the number of physical channels.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """index must be of a type compatible with uint8""",
+          'defined-type': "uint8",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)""",
+        })
+
+    self.__index = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_index(self):
+    self.__index = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)
+
+
+  def _get_num_breakouts(self):
+    """
+    Getter method for num_breakouts, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/num_breakouts (uint8)
+
+    YANG Description: Sets the number of interfaces using this breakout group.
+    """
+    return self.__num_breakouts
+      
+  def _set_num_breakouts(self, v, load=False):
+    """
+    Setter method for num_breakouts, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/num_breakouts (uint8)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_num_breakouts is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_num_breakouts() directly.
+
+    YANG Description: Sets the number of interfaces using this breakout group.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """num_breakouts must be of a type compatible with uint8""",
+          'defined-type': "uint8",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)""",
+        })
+
+    self.__num_breakouts = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_num_breakouts(self):
+    self.__num_breakouts = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)
+
+
+  def _get_breakout_speed(self):
+    """
+    Getter method for breakout_speed, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/breakout_speed (identityref)
+
+    YANG Description: Speed of interfaces in this breakout group, supported
+values are defined by the ETHERNET_SPEED identity.
+    """
+    return self.__breakout_speed
+      
+  def _set_breakout_speed(self, v, load=False):
+    """
+    Setter method for breakout_speed, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/breakout_speed (identityref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_breakout_speed is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_breakout_speed() directly.
+
+    YANG Description: Speed of interfaces in this breakout group, supported
+values are defined by the ETHERNET_SPEED identity.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """breakout_speed must be of a type compatible with identityref""",
+          'defined-type': "openconfig-platform-port:identityref",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=False)""",
+        })
+
+    self.__breakout_speed = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_breakout_speed(self):
+    self.__breakout_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=False)
+
+
+  def _get_num_physical_channels(self):
+    """
+    Getter method for num_physical_channels, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/num_physical_channels (uint8)
+
+    YANG Description: Sets the number of lanes or physical channels assigned
+to the interfaces in this breakout group. This leaf need
+not be set if there is only one breakout group where all
+the interfaces are of equal speed and have equal number
+of physical channels
+    """
+    return self.__num_physical_channels
+      
+  def _set_num_physical_channels(self, v, load=False):
+    """
+    Setter method for num_physical_channels, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/num_physical_channels (uint8)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_num_physical_channels is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_num_physical_channels() directly.
+
+    YANG Description: Sets the number of lanes or physical channels assigned
+to the interfaces in this breakout group. This leaf need
+not be set if there is only one breakout group where all
+the interfaces are of equal speed and have equal number
+of physical channels
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """num_physical_channels must be of a type compatible with uint8""",
+          'defined-type': "uint8",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)""",
+        })
+
+    self.__num_physical_channels = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_num_physical_channels(self):
+    self.__num_physical_channels = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)
+
+  index = __builtin__.property(_get_index)
+  num_breakouts = __builtin__.property(_get_num_breakouts)
+  breakout_speed = __builtin__.property(_get_breakout_speed)
+  num_physical_channels = __builtin__.property(_get_num_physical_channels)
+
+
+  _pyangbind_elements = OrderedDict([('index', index), ('num_breakouts', num_breakouts), ('breakout_speed', breakout_speed), ('num_physical_channels', num_physical_channels), ])
+
+
+class state(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/port/breakout-mode/groups/group/state. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Operational state data for breakout group.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__index','__num_breakouts','__breakout_speed','__num_physical_channels',)
+
+  _yang_name = 'state'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__index = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)
+    self.__num_breakouts = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)
+    self.__breakout_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=False)
+    self.__num_physical_channels = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'port', 'breakout-mode', 'groups', 'group', 'state']
+
+  def _get_index(self):
+    """
+    Getter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/index (uint8)
+
+    YANG Description: Each index specifies breakouts that are identical in
+terms of speed and the number of physical channels.
+    """
+    return self.__index
+      
+  def _set_index(self, v, load=False):
+    """
+    Setter method for index, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/index (uint8)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_index is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_index() directly.
+
+    YANG Description: Each index specifies breakouts that are identical in
+terms of speed and the number of physical channels.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """index must be of a type compatible with uint8""",
+          'defined-type': "uint8",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)""",
+        })
+
+    self.__index = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_index(self):
+    self.__index = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)
+
+
+  def _get_num_breakouts(self):
+    """
+    Getter method for num_breakouts, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/num_breakouts (uint8)
+
+    YANG Description: Sets the number of interfaces using this breakout group.
+    """
+    return self.__num_breakouts
+      
+  def _set_num_breakouts(self, v, load=False):
+    """
+    Setter method for num_breakouts, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/num_breakouts (uint8)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_num_breakouts is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_num_breakouts() directly.
+
+    YANG Description: Sets the number of interfaces using this breakout group.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """num_breakouts must be of a type compatible with uint8""",
+          'defined-type': "uint8",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)""",
+        })
+
+    self.__num_breakouts = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_num_breakouts(self):
+    self.__num_breakouts = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-breakouts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)
+
+
+  def _get_breakout_speed(self):
+    """
+    Getter method for breakout_speed, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/breakout_speed (identityref)
+
+    YANG Description: Speed of interfaces in this breakout group, supported
+values are defined by the ETHERNET_SPEED identity.
+    """
+    return self.__breakout_speed
+      
+  def _set_breakout_speed(self, v, load=False):
+    """
+    Setter method for breakout_speed, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/breakout_speed (identityref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_breakout_speed is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_breakout_speed() directly.
+
+    YANG Description: Speed of interfaces in this breakout group, supported
+values are defined by the ETHERNET_SPEED identity.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """breakout_speed must be of a type compatible with identityref""",
+          'defined-type': "openconfig-platform-port:identityref",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=False)""",
+        })
+
+    self.__breakout_speed = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_breakout_speed(self):
+    self.__breakout_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="breakout-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='identityref', is_config=False)
+
+
+  def _get_num_physical_channels(self):
+    """
+    Getter method for num_physical_channels, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/num_physical_channels (uint8)
+
+    YANG Description: Sets the number of lanes or physical channels assigned
+to the interfaces in this breakout group. This leaf need
+not be set if there is only one breakout group where all
+the interfaces are of equal speed and have equal number
+of physical channels
+    """
+    return self.__num_physical_channels
+      
+  def _set_num_physical_channels(self, v, load=False):
+    """
+    Setter method for num_physical_channels, mapped from YANG variable /components/component/port/breakout_mode/groups/group/state/num_physical_channels (uint8)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_num_physical_channels is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_num_physical_channels() directly.
+
+    YANG Description: Sets the number of lanes or physical channels assigned
+to the interfaces in this breakout group. This leaf need
+not be set if there is only one breakout group where all
+the interfaces are of equal speed and have equal number
+of physical channels
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """num_physical_channels must be of a type compatible with uint8""",
+          'defined-type': "uint8",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)""",
+        })
+
+    self.__num_physical_channels = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_num_physical_channels(self):
+    self.__num_physical_channels = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..255']}, int_size=8), is_leaf=True, yang_name="num-physical-channels", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='uint8', is_config=False)
+
+  index = __builtin__.property(_get_index)
+  num_breakouts = __builtin__.property(_get_num_breakouts)
+  breakout_speed = __builtin__.property(_get_breakout_speed)
+  num_physical_channels = __builtin__.property(_get_num_physical_channels)
+
+
+  _pyangbind_elements = OrderedDict([('index', index), ('num_breakouts', num_breakouts), ('breakout_speed', breakout_speed), ('num_physical_channels', num_physical_channels), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/power_supply/__init__.py b/hackfest/netconf-oc/openconfig/components/component/power_supply/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..08a05b98f2d93e26ac391b1cd2c91bcec671348a
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/power_supply/__init__.py
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class power_supply(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/power-supply. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for power supply components
+  """
+  _pyangbind_elements = {}
+
+  
+
+class power_supply(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/power-supply. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for power supply components
+  """
+  _pyangbind_elements = {}
+
+  
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/properties/__init__.py b/hackfest/netconf-oc/openconfig/components/component/properties/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..4605df88f39390969e0932a0afac4f43ecd8ba9b
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/properties/__init__.py
@@ -0,0 +1,208 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import property_
+class properties(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/properties. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Enclosing container 
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__property_',)
+
+  _yang_name = 'properties'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__property_ = YANGDynClass(base=YANGListType("name",property_.property_, yang_name="property", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="property", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'properties']
+
+  def _get_property_(self):
+    """
+    Getter method for property_, mapped from YANG variable /components/component/properties/property (list)
+
+    YANG Description: List of system properties for the component
+    """
+    return self.__property_
+      
+  def _set_property_(self, v, load=False):
+    """
+    Setter method for property_, mapped from YANG variable /components/component/properties/property (list)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_property_ is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_property_() directly.
+
+    YANG Description: List of system properties for the component
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGListType("name",property_.property_, yang_name="property", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="property", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """property_ must be of a type compatible with list""",
+          'defined-type': "list",
+          'generated-type': """YANGDynClass(base=YANGListType("name",property_.property_, yang_name="property", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="property", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)""",
+        })
+
+    self.__property_ = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_property_(self):
+    self.__property_ = YANGDynClass(base=YANGListType("name",property_.property_, yang_name="property", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="property", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+
+  property_ = __builtin__.property(_get_property_, _set_property_)
+
+
+  _pyangbind_elements = OrderedDict([('property_', property_), ])
+
+
+from . import property_
+class properties(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/properties. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Enclosing container 
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__property_',)
+
+  _yang_name = 'properties'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__property_ = YANGDynClass(base=YANGListType("name",property_.property_, yang_name="property", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="property", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'properties']
+
+  def _get_property_(self):
+    """
+    Getter method for property_, mapped from YANG variable /components/component/properties/property (list)
+
+    YANG Description: List of system properties for the component
+    """
+    return self.__property_
+      
+  def _set_property_(self, v, load=False):
+    """
+    Setter method for property_, mapped from YANG variable /components/component/properties/property (list)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_property_ is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_property_() directly.
+
+    YANG Description: List of system properties for the component
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGListType("name",property_.property_, yang_name="property", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="property", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """property_ must be of a type compatible with list""",
+          'defined-type': "list",
+          'generated-type': """YANGDynClass(base=YANGListType("name",property_.property_, yang_name="property", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="property", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)""",
+        })
+
+    self.__property_ = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_property_(self):
+    self.__property_ = YANGDynClass(base=YANGListType("name",property_.property_, yang_name="property", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="property", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+
+  property_ = __builtin__.property(_get_property_, _set_property_)
+
+
+  _pyangbind_elements = OrderedDict([('property_', property_), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/properties/property_/__init__.py b/hackfest/netconf-oc/openconfig/components/component/properties/property_/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..9e49ab5a26b56c05f1a8db30528d46bc66c17ed8
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/properties/property_/__init__.py
@@ -0,0 +1,376 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import config
+from . import state
+class property_(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/properties/property. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: List of system properties for the component
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state',)
+
+  _yang_name = 'property'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'properties', 'property']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/properties/property/name (leafref)
+
+    YANG Description: Reference to the property name.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/properties/property/name (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: Reference to the property name.
+    """
+    parent = getattr(self, "_parent", None)
+    if parent is not None and load is False:
+      raise AttributeError("Cannot set keys directly when" +
+                             " within an instantiated list")
+
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+
+
+  def _get_config(self):
+    """
+    Getter method for config, mapped from YANG variable /components/component/properties/property/config (container)
+
+    YANG Description: Configuration data for each property
+    """
+    return self.__config
+      
+  def _set_config(self, v, load=False):
+    """
+    Setter method for config, mapped from YANG variable /components/component/properties/property/config (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_config is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_config() directly.
+
+    YANG Description: Configuration data for each property
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """config must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__config = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_config(self):
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_state(self):
+    """
+    Getter method for state, mapped from YANG variable /components/component/properties/property/state (container)
+
+    YANG Description: Operational state data for each property
+    """
+    return self.__state
+      
+  def _set_state(self, v, load=False):
+    """
+    Setter method for state, mapped from YANG variable /components/component/properties/property/state (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_state is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_state() directly.
+
+    YANG Description: Operational state data for each property
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """state must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__state = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_state(self):
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+  config = __builtin__.property(_get_config, _set_config)
+  state = __builtin__.property(_get_state, _set_state)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ])
+
+
+from . import config
+from . import state
+class property_(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/properties/property. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: List of system properties for the component
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state',)
+
+  _yang_name = 'property'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'properties', 'property']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/properties/property/name (leafref)
+
+    YANG Description: Reference to the property name.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/properties/property/name (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: Reference to the property name.
+    """
+    parent = getattr(self, "_parent", None)
+    if parent is not None and load is False:
+      raise AttributeError("Cannot set keys directly when" +
+                             " within an instantiated list")
+
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+
+
+  def _get_config(self):
+    """
+    Getter method for config, mapped from YANG variable /components/component/properties/property/config (container)
+
+    YANG Description: Configuration data for each property
+    """
+    return self.__config
+      
+  def _set_config(self, v, load=False):
+    """
+    Setter method for config, mapped from YANG variable /components/component/properties/property/config (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_config is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_config() directly.
+
+    YANG Description: Configuration data for each property
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """config must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__config = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_config(self):
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_state(self):
+    """
+    Getter method for state, mapped from YANG variable /components/component/properties/property/state (container)
+
+    YANG Description: Operational state data for each property
+    """
+    return self.__state
+      
+  def _set_state(self, v, load=False):
+    """
+    Setter method for state, mapped from YANG variable /components/component/properties/property/state (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_state is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_state() directly.
+
+    YANG Description: Operational state data for each property
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """state must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__state = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_state(self):
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+  config = __builtin__.property(_get_config, _set_config)
+  state = __builtin__.property(_get_state, _set_state)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/properties/property_/config/__init__.py b/hackfest/netconf-oc/openconfig/components/component/properties/property_/config/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..6eaa7c03a7e44c436f5b85ad31cce5b1b57a6438
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/properties/property_/config/__init__.py
@@ -0,0 +1,296 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class config(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/properties/property/config. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Configuration data for each property
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__value',)
+
+  _yang_name = 'config'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+    self.__value = YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'properties', 'property', 'config']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/properties/property/config/name (string)
+
+    YANG Description: System-supplied name of the property -- this is typically
+non-configurable
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/properties/property/config/name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: System-supplied name of the property -- this is typically
+non-configurable
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+
+
+  def _get_value(self):
+    """
+    Getter method for value, mapped from YANG variable /components/component/properties/property/config/value (union)
+
+    YANG Description: Property values can take on a variety of types.  Signed and
+unsigned integer types may be provided in smaller sizes,
+e.g., int8, uint16, etc.
+    """
+    return self.__value
+      
+  def _set_value(self, v, load=False):
+    """
+    Setter method for value, mapped from YANG variable /components/component/properties/property/config/value (union)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_value is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_value() directly.
+
+    YANG Description: Property values can take on a variety of types.  Signed and
+unsigned integer types may be provided in smaller sizes,
+e.g., int8, uint16, etc.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """value must be of a type compatible with union""",
+          'defined-type': "openconfig-platform:union",
+          'generated-type': """YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=True)""",
+        })
+
+    self.__value = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_value(self):
+    self.__value = YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+  value = __builtin__.property(_get_value, _set_value)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('value', value), ])
+
+
+class config(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/properties/property/config. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Configuration data for each property
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__value',)
+
+  _yang_name = 'config'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+    self.__value = YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'properties', 'property', 'config']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/properties/property/config/name (string)
+
+    YANG Description: System-supplied name of the property -- this is typically
+non-configurable
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/properties/property/config/name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: System-supplied name of the property -- this is typically
+non-configurable
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=True)
+
+
+  def _get_value(self):
+    """
+    Getter method for value, mapped from YANG variable /components/component/properties/property/config/value (union)
+
+    YANG Description: Property values can take on a variety of types.  Signed and
+unsigned integer types may be provided in smaller sizes,
+e.g., int8, uint16, etc.
+    """
+    return self.__value
+      
+  def _set_value(self, v, load=False):
+    """
+    Setter method for value, mapped from YANG variable /components/component/properties/property/config/value (union)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_value is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_value() directly.
+
+    YANG Description: Property values can take on a variety of types.  Signed and
+unsigned integer types may be provided in smaller sizes,
+e.g., int8, uint16, etc.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """value must be of a type compatible with union""",
+          'defined-type': "openconfig-platform:union",
+          'generated-type': """YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=True)""",
+        })
+
+    self.__value = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_value(self):
+    self.__value = YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+  value = __builtin__.property(_get_value, _set_value)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('value', value), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/properties/property_/state/__init__.py b/hackfest/netconf-oc/openconfig/components/component/properties/property_/state/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..4d50a0520390ca70e3bffbe75bc4290912c88e2a
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/properties/property_/state/__init__.py
@@ -0,0 +1,374 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class state(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/properties/property/state. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Operational state data for each property
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__value','__configurable',)
+
+  _yang_name = 'state'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__value = YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False)
+    self.__configurable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="configurable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'properties', 'property', 'state']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/properties/property/state/name (string)
+
+    YANG Description: System-supplied name of the property -- this is typically
+non-configurable
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/properties/property/state/name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: System-supplied name of the property -- this is typically
+non-configurable
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_value(self):
+    """
+    Getter method for value, mapped from YANG variable /components/component/properties/property/state/value (union)
+
+    YANG Description: Property values can take on a variety of types.  Signed and
+unsigned integer types may be provided in smaller sizes,
+e.g., int8, uint16, etc.
+    """
+    return self.__value
+      
+  def _set_value(self, v, load=False):
+    """
+    Setter method for value, mapped from YANG variable /components/component/properties/property/state/value (union)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_value is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_value() directly.
+
+    YANG Description: Property values can take on a variety of types.  Signed and
+unsigned integer types may be provided in smaller sizes,
+e.g., int8, uint16, etc.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """value must be of a type compatible with union""",
+          'defined-type': "openconfig-platform:union",
+          'generated-type': """YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False)""",
+        })
+
+    self.__value = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_value(self):
+    self.__value = YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False)
+
+
+  def _get_configurable(self):
+    """
+    Getter method for configurable, mapped from YANG variable /components/component/properties/property/state/configurable (boolean)
+
+    YANG Description: Indication whether the property is user-configurable
+    """
+    return self.__configurable
+      
+  def _set_configurable(self, v, load=False):
+    """
+    Setter method for configurable, mapped from YANG variable /components/component/properties/property/state/configurable (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_configurable is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_configurable() directly.
+
+    YANG Description: Indication whether the property is user-configurable
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="configurable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """configurable must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="configurable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__configurable = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_configurable(self):
+    self.__configurable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="configurable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+
+  name = __builtin__.property(_get_name)
+  value = __builtin__.property(_get_value)
+  configurable = __builtin__.property(_get_configurable)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('value', value), ('configurable', configurable), ])
+
+
+class state(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/properties/property/state. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Operational state data for each property
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__value','__configurable',)
+
+  _yang_name = 'state'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__value = YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False)
+    self.__configurable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="configurable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'properties', 'property', 'state']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/properties/property/state/name (string)
+
+    YANG Description: System-supplied name of the property -- this is typically
+non-configurable
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/properties/property/state/name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: System-supplied name of the property -- this is typically
+non-configurable
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_value(self):
+    """
+    Getter method for value, mapped from YANG variable /components/component/properties/property/state/value (union)
+
+    YANG Description: Property values can take on a variety of types.  Signed and
+unsigned integer types may be provided in smaller sizes,
+e.g., int8, uint16, etc.
+    """
+    return self.__value
+      
+  def _set_value(self, v, load=False):
+    """
+    Setter method for value, mapped from YANG variable /components/component/properties/property/state/value (union)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_value is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_value() directly.
+
+    YANG Description: Property values can take on a variety of types.  Signed and
+unsigned integer types may be provided in smaller sizes,
+e.g., int8, uint16, etc.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """value must be of a type compatible with union""",
+          'defined-type': "openconfig-platform:union",
+          'generated-type': """YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False)""",
+        })
+
+    self.__value = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_value(self):
+    self.__value = YANGDynClass(base=[six.text_type,YANGBool,RestrictedClassType(base_type=long, restriction_dict={'range': ['-9223372036854775808..9223372036854775807']}, int_size=64),RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64),RestrictedPrecisionDecimalType(precision=2),], is_leaf=True, yang_name="value", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False)
+
+
+  def _get_configurable(self):
+    """
+    Getter method for configurable, mapped from YANG variable /components/component/properties/property/state/configurable (boolean)
+
+    YANG Description: Indication whether the property is user-configurable
+    """
+    return self.__configurable
+      
+  def _set_configurable(self, v, load=False):
+    """
+    Setter method for configurable, mapped from YANG variable /components/component/properties/property/state/configurable (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_configurable is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_configurable() directly.
+
+    YANG Description: Indication whether the property is user-configurable
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="configurable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """configurable must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="configurable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__configurable = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_configurable(self):
+    self.__configurable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="configurable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+
+  name = __builtin__.property(_get_name)
+  value = __builtin__.property(_get_value)
+  configurable = __builtin__.property(_get_configurable)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('value', value), ('configurable', configurable), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/software_module/__init__.py b/hackfest/netconf-oc/openconfig/components/component/software_module/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..3fa4f2989b255366b0cfe148f1a31ec6906ec0af
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/software_module/__init__.py
@@ -0,0 +1,50 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class software_module(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/software-module. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for software module components, i.e., for components
+with type=SOFTWARE_MODULE
+  """
+  _pyangbind_elements = {}
+
+  
+
+class software_module(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/software-module. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for software module components, i.e., for components
+with type=SOFTWARE_MODULE
+  """
+  _pyangbind_elements = {}
+
+  
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/state/__init__.py b/hackfest/netconf-oc/openconfig/components/component/state/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..462352e048ab1174f602de5bc9ff24445cdc3da9
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/state/__init__.py
@@ -0,0 +1,2528 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import last_switchover_reason
+from . import temperature
+from . import memory
+from . import pcie
+class state(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/state. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Operational state data for each component
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__type','__id','__location','__description','__mfg_name','__mfg_date','__hardware_version','__firmware_version','__software_version','__serial_no','__part_no','__clei_code','__removable','__oper_status','__empty','__parent','__redundant_role','__last_switchover_reason','__last_switchover_time','__last_reboot_reason','__last_reboot_time','__switchover_ready','__temperature','__memory','__allocated_power','__used_power','__pcie',)
+
+  _yang_name = 'state'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__type = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),], is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False)
+    self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__location = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="location", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__mfg_name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mfg-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__mfg_date = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9]{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[12][0-9]|3[01])'}), is_leaf=True, yang_name="mfg-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:date', is_config=False)
+    self.__hardware_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hardware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__firmware_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="firmware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__software_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__serial_no = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="serial-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__part_no = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="part-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__clei_code = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="clei-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__removable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="removable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+    self.__oper_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)
+    self.__empty = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="empty", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+    self.__parent = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="parent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False)
+    self.__redundant_role = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), is_leaf=True, yang_name="redundant-role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-platform-types:component-redundant-role', is_config=False)
+    self.__last_switchover_reason = YANGDynClass(base=last_switchover_reason.last_switchover_reason, is_container='container', yang_name="last-switchover-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    self.__last_switchover_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-switchover-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+    self.__last_reboot_reason = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="last-reboot-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)
+    self.__last_reboot_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-reboot-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+    self.__switchover_ready = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="switchover-ready", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+    self.__temperature = YANGDynClass(base=temperature.temperature, is_container='container', yang_name="temperature", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    self.__memory = YANGDynClass(base=memory.memory, is_container='container', yang_name="memory", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    self.__allocated_power = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="allocated-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)
+    self.__used_power = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="used-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)
+    self.__pcie = YANGDynClass(base=pcie.pcie, is_container='container', yang_name="pcie", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'state']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/state/name (string)
+
+    YANG Description: Device name for the component -- this may not be a
+configurable parameter on many implementations.  Where
+component preconfiguration is supported, for example,
+the component name may be configurable.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/state/name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: Device name for the component -- this may not be a
+configurable parameter on many implementations.  Where
+component preconfiguration is supported, for example,
+the component name may be configurable.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_type(self):
+    """
+    Getter method for type, mapped from YANG variable /components/component/state/type (union)
+
+    YANG Description: Type of component as identified by the system
+    """
+    return self.__type
+      
+  def _set_type(self, v, load=False):
+    """
+    Setter method for type, mapped from YANG variable /components/component/state/type (union)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_type is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_type() directly.
+
+    YANG Description: Type of component as identified by the system
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),], is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """type must be of a type compatible with union""",
+          'defined-type': "openconfig-platform:union",
+          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),], is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False)""",
+        })
+
+    self.__type = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_type(self):
+    self.__type = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),], is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False)
+
+
+  def _get_id(self):
+    """
+    Getter method for id, mapped from YANG variable /components/component/state/id (string)
+
+    YANG Description: Unique identifier assigned by the system for the
+component
+    """
+    return self.__id
+      
+  def _set_id(self, v, load=False):
+    """
+    Setter method for id, mapped from YANG variable /components/component/state/id (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_id is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_id() directly.
+
+    YANG Description: Unique identifier assigned by the system for the
+component
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """id must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__id = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_id(self):
+    self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_location(self):
+    """
+    Getter method for location, mapped from YANG variable /components/component/state/location (string)
+
+    YANG Description: System-supplied description of the location of the
+component within the system. This could be a bay position,
+slot number, socket location, etc. For component types that
+have an explicit slot-id attribute, such as linecards, the
+system should populate the more specific slot-id.
+    """
+    return self.__location
+      
+  def _set_location(self, v, load=False):
+    """
+    Setter method for location, mapped from YANG variable /components/component/state/location (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_location is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_location() directly.
+
+    YANG Description: System-supplied description of the location of the
+component within the system. This could be a bay position,
+slot number, socket location, etc. For component types that
+have an explicit slot-id attribute, such as linecards, the
+system should populate the more specific slot-id.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="location", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """location must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="location", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__location = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_location(self):
+    self.__location = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="location", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_description(self):
+    """
+    Getter method for description, mapped from YANG variable /components/component/state/description (string)
+
+    YANG Description: System-supplied description of the component
+    """
+    return self.__description
+      
+  def _set_description(self, v, load=False):
+    """
+    Setter method for description, mapped from YANG variable /components/component/state/description (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_description is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_description() directly.
+
+    YANG Description: System-supplied description of the component
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """description must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__description = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_description(self):
+    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_mfg_name(self):
+    """
+    Getter method for mfg_name, mapped from YANG variable /components/component/state/mfg_name (string)
+
+    YANG Description: System-supplied identifier for the manufacturer of the
+component.  This data is particularly useful when a
+component manufacturer is different than the overall
+device vendor.
+    """
+    return self.__mfg_name
+      
+  def _set_mfg_name(self, v, load=False):
+    """
+    Setter method for mfg_name, mapped from YANG variable /components/component/state/mfg_name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_mfg_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_mfg_name() directly.
+
+    YANG Description: System-supplied identifier for the manufacturer of the
+component.  This data is particularly useful when a
+component manufacturer is different than the overall
+device vendor.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="mfg-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """mfg_name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mfg-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__mfg_name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_mfg_name(self):
+    self.__mfg_name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mfg-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_mfg_date(self):
+    """
+    Getter method for mfg_date, mapped from YANG variable /components/component/state/mfg_date (oc-yang:date)
+
+    YANG Description: System-supplied representation of the component's
+manufacturing date.
+    """
+    return self.__mfg_date
+      
+  def _set_mfg_date(self, v, load=False):
+    """
+    Setter method for mfg_date, mapped from YANG variable /components/component/state/mfg_date (oc-yang:date)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_mfg_date is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_mfg_date() directly.
+
+    YANG Description: System-supplied representation of the component's
+manufacturing date.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9]{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[12][0-9]|3[01])'}), is_leaf=True, yang_name="mfg-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:date', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """mfg_date must be of a type compatible with oc-yang:date""",
+          'defined-type': "oc-yang:date",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9]{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[12][0-9]|3[01])'}), is_leaf=True, yang_name="mfg-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:date', is_config=False)""",
+        })
+
+    self.__mfg_date = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_mfg_date(self):
+    self.__mfg_date = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9]{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[12][0-9]|3[01])'}), is_leaf=True, yang_name="mfg-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:date', is_config=False)
+
+
+  def _get_hardware_version(self):
+    """
+    Getter method for hardware_version, mapped from YANG variable /components/component/state/hardware_version (string)
+
+    YANG Description: For hardware components, this is the hardware revision of
+the component.
+    """
+    return self.__hardware_version
+      
+  def _set_hardware_version(self, v, load=False):
+    """
+    Setter method for hardware_version, mapped from YANG variable /components/component/state/hardware_version (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_hardware_version is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_hardware_version() directly.
+
+    YANG Description: For hardware components, this is the hardware revision of
+the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="hardware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """hardware_version must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hardware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__hardware_version = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_hardware_version(self):
+    self.__hardware_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hardware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_firmware_version(self):
+    """
+    Getter method for firmware_version, mapped from YANG variable /components/component/state/firmware_version (string)
+
+    YANG Description: For hardware components, this is the version of associated
+firmware that is running on the component, if applicable.
+    """
+    return self.__firmware_version
+      
+  def _set_firmware_version(self, v, load=False):
+    """
+    Setter method for firmware_version, mapped from YANG variable /components/component/state/firmware_version (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_firmware_version is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_firmware_version() directly.
+
+    YANG Description: For hardware components, this is the version of associated
+firmware that is running on the component, if applicable.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="firmware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """firmware_version must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="firmware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__firmware_version = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_firmware_version(self):
+    self.__firmware_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="firmware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_software_version(self):
+    """
+    Getter method for software_version, mapped from YANG variable /components/component/state/software_version (string)
+
+    YANG Description: For software components such as operating system or other
+software module, this is the version of the currently
+running software.
+    """
+    return self.__software_version
+      
+  def _set_software_version(self, v, load=False):
+    """
+    Setter method for software_version, mapped from YANG variable /components/component/state/software_version (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_software_version is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_software_version() directly.
+
+    YANG Description: For software components such as operating system or other
+software module, this is the version of the currently
+running software.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """software_version must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__software_version = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_software_version(self):
+    self.__software_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_serial_no(self):
+    """
+    Getter method for serial_no, mapped from YANG variable /components/component/state/serial_no (string)
+
+    YANG Description: System-assigned serial number of the component.
+    """
+    return self.__serial_no
+      
+  def _set_serial_no(self, v, load=False):
+    """
+    Setter method for serial_no, mapped from YANG variable /components/component/state/serial_no (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_serial_no is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_serial_no() directly.
+
+    YANG Description: System-assigned serial number of the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="serial-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """serial_no must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="serial-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__serial_no = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_serial_no(self):
+    self.__serial_no = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="serial-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_part_no(self):
+    """
+    Getter method for part_no, mapped from YANG variable /components/component/state/part_no (string)
+
+    YANG Description: System-assigned part number for the component.  This should
+be present in particular if the component is also an FRU
+(field replaceable unit)
+    """
+    return self.__part_no
+      
+  def _set_part_no(self, v, load=False):
+    """
+    Setter method for part_no, mapped from YANG variable /components/component/state/part_no (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_part_no is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_part_no() directly.
+
+    YANG Description: System-assigned part number for the component.  This should
+be present in particular if the component is also an FRU
+(field replaceable unit)
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="part-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """part_no must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="part-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__part_no = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_part_no(self):
+    self.__part_no = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="part-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_clei_code(self):
+    """
+    Getter method for clei_code, mapped from YANG variable /components/component/state/clei_code (string)
+
+    YANG Description: Common Language Equipment Identifier (CLEI) code of the
+component.  This should be present in particular if the
+component is also an FRU (field replaceable unit)
+    """
+    return self.__clei_code
+      
+  def _set_clei_code(self, v, load=False):
+    """
+    Setter method for clei_code, mapped from YANG variable /components/component/state/clei_code (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_clei_code is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_clei_code() directly.
+
+    YANG Description: Common Language Equipment Identifier (CLEI) code of the
+component.  This should be present in particular if the
+component is also an FRU (field replaceable unit)
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="clei-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """clei_code must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="clei-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__clei_code = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_clei_code(self):
+    self.__clei_code = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="clei-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_removable(self):
+    """
+    Getter method for removable, mapped from YANG variable /components/component/state/removable (boolean)
+
+    YANG Description: If true, this component is removable or is a field
+replaceable unit
+    """
+    return self.__removable
+      
+  def _set_removable(self, v, load=False):
+    """
+    Setter method for removable, mapped from YANG variable /components/component/state/removable (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_removable is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_removable() directly.
+
+    YANG Description: If true, this component is removable or is a field
+replaceable unit
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="removable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """removable must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="removable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__removable = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_removable(self):
+    self.__removable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="removable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+
+
+  def _get_oper_status(self):
+    """
+    Getter method for oper_status, mapped from YANG variable /components/component/state/oper_status (identityref)
+
+    YANG Description: If applicable, this reports the current operational status
+of the component.
+    """
+    return self.__oper_status
+      
+  def _set_oper_status(self, v, load=False):
+    """
+    Setter method for oper_status, mapped from YANG variable /components/component/state/oper_status (identityref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_oper_status is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_oper_status() directly.
+
+    YANG Description: If applicable, this reports the current operational status
+of the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """oper_status must be of a type compatible with identityref""",
+          'defined-type': "openconfig-platform:identityref",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)""",
+        })
+
+    self.__oper_status = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_oper_status(self):
+    self.__oper_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)
+
+
+  def _get_empty(self):
+    """
+    Getter method for empty, mapped from YANG variable /components/component/state/empty (boolean)
+
+    YANG Description: The empty leaf may be used by the device to indicate that a
+component position exists but is not populated.  Using this
+flag, it is possible for the management system to learn how
+many positions are available (e.g., occupied vs. empty
+linecard slots in a chassis).
+    """
+    return self.__empty
+      
+  def _set_empty(self, v, load=False):
+    """
+    Setter method for empty, mapped from YANG variable /components/component/state/empty (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_empty is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_empty() directly.
+
+    YANG Description: The empty leaf may be used by the device to indicate that a
+component position exists but is not populated.  Using this
+flag, it is possible for the management system to learn how
+many positions are available (e.g., occupied vs. empty
+linecard slots in a chassis).
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="empty", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """empty must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="empty", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__empty = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_empty(self):
+    self.__empty = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="empty", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+
+
+  def _get_parent(self):
+    """
+    Getter method for parent, mapped from YANG variable /components/component/state/parent (leafref)
+
+    YANG Description: Reference to the name of the parent component.  Note that
+this reference must be kept synchronized with the
+corresponding subcomponent reference from the parent
+component.
+    """
+    return self.__parent
+      
+  def _set_parent(self, v, load=False):
+    """
+    Setter method for parent, mapped from YANG variable /components/component/state/parent (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_parent is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_parent() directly.
+
+    YANG Description: Reference to the name of the parent component.  Note that
+this reference must be kept synchronized with the
+corresponding subcomponent reference from the parent
+component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="parent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """parent must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="parent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False)""",
+        })
+
+    self.__parent = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_parent(self):
+    self.__parent = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="parent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False)
+
+
+  def _get_redundant_role(self):
+    """
+    Getter method for redundant_role, mapped from YANG variable /components/component/state/redundant_role (oc-platform-types:component-redundant-role)
+
+    YANG Description: For components that have redundant roles (e.g. two
+supervisors in a device, one as primary the other as secondary),
+this reports the role of the component.
+    """
+    return self.__redundant_role
+      
+  def _set_redundant_role(self, v, load=False):
+    """
+    Setter method for redundant_role, mapped from YANG variable /components/component/state/redundant_role (oc-platform-types:component-redundant-role)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_redundant_role is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_redundant_role() directly.
+
+    YANG Description: For components that have redundant roles (e.g. two
+supervisors in a device, one as primary the other as secondary),
+this reports the role of the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), is_leaf=True, yang_name="redundant-role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-platform-types:component-redundant-role', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """redundant_role must be of a type compatible with oc-platform-types:component-redundant-role""",
+          'defined-type': "oc-platform-types:component-redundant-role",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), is_leaf=True, yang_name="redundant-role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-platform-types:component-redundant-role', is_config=False)""",
+        })
+
+    self.__redundant_role = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_redundant_role(self):
+    self.__redundant_role = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), is_leaf=True, yang_name="redundant-role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-platform-types:component-redundant-role', is_config=False)
+
+
+  def _get_last_switchover_reason(self):
+    """
+    Getter method for last_switchover_reason, mapped from YANG variable /components/component/state/last_switchover_reason (container)
+
+    YANG Description: For components that have redundant roles (e.g. two
+supervisors in a device, one as primary the other as secondary),
+this reports the reason of the last change of the
+component's role.
+    """
+    return self.__last_switchover_reason
+      
+  def _set_last_switchover_reason(self, v, load=False):
+    """
+    Setter method for last_switchover_reason, mapped from YANG variable /components/component/state/last_switchover_reason (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_last_switchover_reason is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_last_switchover_reason() directly.
+
+    YANG Description: For components that have redundant roles (e.g. two
+supervisors in a device, one as primary the other as secondary),
+this reports the reason of the last change of the
+component's role.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=last_switchover_reason.last_switchover_reason, is_container='container', yang_name="last-switchover-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """last_switchover_reason must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=last_switchover_reason.last_switchover_reason, is_container='container', yang_name="last-switchover-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""",
+        })
+
+    self.__last_switchover_reason = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_last_switchover_reason(self):
+    self.__last_switchover_reason = YANGDynClass(base=last_switchover_reason.last_switchover_reason, is_container='container', yang_name="last-switchover-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+
+
+  def _get_last_switchover_time(self):
+    """
+    Getter method for last_switchover_time, mapped from YANG variable /components/component/state/last_switchover_time (oc-types:timeticks64)
+
+    YANG Description: For components that have redundant roles (e.g. two
+supervisors in a device, one as primary the other as
+secondary), this reports the time of the last change of
+the component's role. The value is the timestamp in
+nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+    """
+    return self.__last_switchover_time
+      
+  def _set_last_switchover_time(self, v, load=False):
+    """
+    Setter method for last_switchover_time, mapped from YANG variable /components/component/state/last_switchover_time (oc-types:timeticks64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_last_switchover_time is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_last_switchover_time() directly.
+
+    YANG Description: For components that have redundant roles (e.g. two
+supervisors in a device, one as primary the other as
+secondary), this reports the time of the last change of
+the component's role. The value is the timestamp in
+nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-switchover-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """last_switchover_time must be of a type compatible with oc-types:timeticks64""",
+          'defined-type': "oc-types:timeticks64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-switchover-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""",
+        })
+
+    self.__last_switchover_time = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_last_switchover_time(self):
+    self.__last_switchover_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-switchover-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+
+
+  def _get_last_reboot_reason(self):
+    """
+    Getter method for last_reboot_reason, mapped from YANG variable /components/component/state/last_reboot_reason (identityref)
+
+    YANG Description: This reports the reason of the last reboot of the component.
+    """
+    return self.__last_reboot_reason
+      
+  def _set_last_reboot_reason(self, v, load=False):
+    """
+    Setter method for last_reboot_reason, mapped from YANG variable /components/component/state/last_reboot_reason (identityref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_last_reboot_reason is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_last_reboot_reason() directly.
+
+    YANG Description: This reports the reason of the last reboot of the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="last-reboot-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """last_reboot_reason must be of a type compatible with identityref""",
+          'defined-type': "openconfig-platform:identityref",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="last-reboot-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)""",
+        })
+
+    self.__last_reboot_reason = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_last_reboot_reason(self):
+    self.__last_reboot_reason = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="last-reboot-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)
+
+
+  def _get_last_reboot_time(self):
+    """
+    Getter method for last_reboot_time, mapped from YANG variable /components/component/state/last_reboot_time (oc-types:timeticks64)
+
+    YANG Description: This reports the time of the last reboot of the component. The
+value is the timestamp in nanoseconds relative to the Unix Epoch
+(Jan 1, 1970 00:00:00 UTC).
+    """
+    return self.__last_reboot_time
+      
+  def _set_last_reboot_time(self, v, load=False):
+    """
+    Setter method for last_reboot_time, mapped from YANG variable /components/component/state/last_reboot_time (oc-types:timeticks64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_last_reboot_time is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_last_reboot_time() directly.
+
+    YANG Description: This reports the time of the last reboot of the component. The
+value is the timestamp in nanoseconds relative to the Unix Epoch
+(Jan 1, 1970 00:00:00 UTC).
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-reboot-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """last_reboot_time must be of a type compatible with oc-types:timeticks64""",
+          'defined-type': "oc-types:timeticks64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-reboot-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""",
+        })
+
+    self.__last_reboot_time = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_last_reboot_time(self):
+    self.__last_reboot_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-reboot-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+
+
+  def _get_switchover_ready(self):
+    """
+    Getter method for switchover_ready, mapped from YANG variable /components/component/state/switchover_ready (boolean)
+
+    YANG Description: For components that have redundant roles, this reports a value
+that indicates if the component is ready to support failover.
+
+The components with a redundant-role should reflect the overall
+system's switchover status.  For example, two supervisors in a
+device, one as primary and the other as secondary, should both
+report the same value.
+    """
+    return self.__switchover_ready
+      
+  def _set_switchover_ready(self, v, load=False):
+    """
+    Setter method for switchover_ready, mapped from YANG variable /components/component/state/switchover_ready (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_switchover_ready is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_switchover_ready() directly.
+
+    YANG Description: For components that have redundant roles, this reports a value
+that indicates if the component is ready to support failover.
+
+The components with a redundant-role should reflect the overall
+system's switchover status.  For example, two supervisors in a
+device, one as primary and the other as secondary, should both
+report the same value.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="switchover-ready", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """switchover_ready must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="switchover-ready", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__switchover_ready = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_switchover_ready(self):
+    self.__switchover_ready = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="switchover-ready", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+
+
+  def _get_temperature(self):
+    """
+    Getter method for temperature, mapped from YANG variable /components/component/state/temperature (container)
+
+    YANG Description: Temperature in degrees Celsius of the component. Values include
+the instantaneous, average, minimum, and maximum statistics. If
+avg/min/max statistics are not supported, the target is expected
+to just supply the instant value
+    """
+    return self.__temperature
+      
+  def _set_temperature(self, v, load=False):
+    """
+    Setter method for temperature, mapped from YANG variable /components/component/state/temperature (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_temperature is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_temperature() directly.
+
+    YANG Description: Temperature in degrees Celsius of the component. Values include
+the instantaneous, average, minimum, and maximum statistics. If
+avg/min/max statistics are not supported, the target is expected
+to just supply the instant value
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=temperature.temperature, is_container='container', yang_name="temperature", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """temperature must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=temperature.temperature, is_container='container', yang_name="temperature", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""",
+        })
+
+    self.__temperature = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_temperature(self):
+    self.__temperature = YANGDynClass(base=temperature.temperature, is_container='container', yang_name="temperature", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+
+
+  def _get_memory(self):
+    """
+    Getter method for memory, mapped from YANG variable /components/component/state/memory (container)
+
+    YANG Description: For components that have associated memory, these values
+report information about available and utilized memory.
+    """
+    return self.__memory
+      
+  def _set_memory(self, v, load=False):
+    """
+    Setter method for memory, mapped from YANG variable /components/component/state/memory (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_memory is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_memory() directly.
+
+    YANG Description: For components that have associated memory, these values
+report information about available and utilized memory.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=memory.memory, is_container='container', yang_name="memory", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """memory must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=memory.memory, is_container='container', yang_name="memory", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""",
+        })
+
+    self.__memory = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_memory(self):
+    self.__memory = YANGDynClass(base=memory.memory, is_container='container', yang_name="memory", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+
+
+  def _get_allocated_power(self):
+    """
+    Getter method for allocated_power, mapped from YANG variable /components/component/state/allocated_power (uint32)
+
+    YANG Description: Power allocated by the system for the component.
+    """
+    return self.__allocated_power
+      
+  def _set_allocated_power(self, v, load=False):
+    """
+    Setter method for allocated_power, mapped from YANG variable /components/component/state/allocated_power (uint32)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_allocated_power is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_allocated_power() directly.
+
+    YANG Description: Power allocated by the system for the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="allocated-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """allocated_power must be of a type compatible with uint32""",
+          'defined-type': "uint32",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="allocated-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)""",
+        })
+
+    self.__allocated_power = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_allocated_power(self):
+    self.__allocated_power = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="allocated-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)
+
+
+  def _get_used_power(self):
+    """
+    Getter method for used_power, mapped from YANG variable /components/component/state/used_power (uint32)
+
+    YANG Description: Actual power used by the component.
+    """
+    return self.__used_power
+      
+  def _set_used_power(self, v, load=False):
+    """
+    Setter method for used_power, mapped from YANG variable /components/component/state/used_power (uint32)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_used_power is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_used_power() directly.
+
+    YANG Description: Actual power used by the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="used-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """used_power must be of a type compatible with uint32""",
+          'defined-type': "uint32",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="used-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)""",
+        })
+
+    self.__used_power = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_used_power(self):
+    self.__used_power = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="used-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)
+
+
+  def _get_pcie(self):
+    """
+    Getter method for pcie, mapped from YANG variable /components/component/state/pcie (container)
+
+    YANG Description: Components that are connected to the system over the Peripheral
+Component Interconnect Express (PCIe), report the fatal, non-fatal
+and correctable PCIe error counts.
+    """
+    return self.__pcie
+      
+  def _set_pcie(self, v, load=False):
+    """
+    Setter method for pcie, mapped from YANG variable /components/component/state/pcie (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_pcie is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_pcie() directly.
+
+    YANG Description: Components that are connected to the system over the Peripheral
+Component Interconnect Express (PCIe), report the fatal, non-fatal
+and correctable PCIe error counts.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=pcie.pcie, is_container='container', yang_name="pcie", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """pcie must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=pcie.pcie, is_container='container', yang_name="pcie", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""",
+        })
+
+    self.__pcie = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_pcie(self):
+    self.__pcie = YANGDynClass(base=pcie.pcie, is_container='container', yang_name="pcie", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+
+  name = __builtin__.property(_get_name)
+  type = __builtin__.property(_get_type)
+  id = __builtin__.property(_get_id)
+  location = __builtin__.property(_get_location)
+  description = __builtin__.property(_get_description)
+  mfg_name = __builtin__.property(_get_mfg_name)
+  mfg_date = __builtin__.property(_get_mfg_date)
+  hardware_version = __builtin__.property(_get_hardware_version)
+  firmware_version = __builtin__.property(_get_firmware_version)
+  software_version = __builtin__.property(_get_software_version)
+  serial_no = __builtin__.property(_get_serial_no)
+  part_no = __builtin__.property(_get_part_no)
+  clei_code = __builtin__.property(_get_clei_code)
+  removable = __builtin__.property(_get_removable)
+  oper_status = __builtin__.property(_get_oper_status)
+  empty = __builtin__.property(_get_empty)
+  parent = __builtin__.property(_get_parent)
+  redundant_role = __builtin__.property(_get_redundant_role)
+  last_switchover_reason = __builtin__.property(_get_last_switchover_reason)
+  last_switchover_time = __builtin__.property(_get_last_switchover_time)
+  last_reboot_reason = __builtin__.property(_get_last_reboot_reason)
+  last_reboot_time = __builtin__.property(_get_last_reboot_time)
+  switchover_ready = __builtin__.property(_get_switchover_ready)
+  temperature = __builtin__.property(_get_temperature)
+  memory = __builtin__.property(_get_memory)
+  allocated_power = __builtin__.property(_get_allocated_power)
+  used_power = __builtin__.property(_get_used_power)
+  pcie = __builtin__.property(_get_pcie)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('type', type), ('id', id), ('location', location), ('description', description), ('mfg_name', mfg_name), ('mfg_date', mfg_date), ('hardware_version', hardware_version), ('firmware_version', firmware_version), ('software_version', software_version), ('serial_no', serial_no), ('part_no', part_no), ('clei_code', clei_code), ('removable', removable), ('oper_status', oper_status), ('empty', empty), ('parent', parent), ('redundant_role', redundant_role), ('last_switchover_reason', last_switchover_reason), ('last_switchover_time', last_switchover_time), ('last_reboot_reason', last_reboot_reason), ('last_reboot_time', last_reboot_time), ('switchover_ready', switchover_ready), ('temperature', temperature), ('memory', memory), ('allocated_power', allocated_power), ('used_power', used_power), ('pcie', pcie), ])
+
+
+from . import last_switchover_reason
+from . import temperature
+from . import memory
+from . import pcie
+class state(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/state. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Operational state data for each component
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__type','__id','__location','__description','__mfg_name','__mfg_date','__hardware_version','__firmware_version','__software_version','__serial_no','__part_no','__clei_code','__removable','__oper_status','__empty','__parent','__redundant_role','__last_switchover_reason','__last_switchover_time','__last_reboot_reason','__last_reboot_time','__switchover_ready','__temperature','__memory','__allocated_power','__used_power','__pcie',)
+
+  _yang_name = 'state'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__type = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),], is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False)
+    self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__location = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="location", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__mfg_name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mfg-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__mfg_date = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9]{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[12][0-9]|3[01])'}), is_leaf=True, yang_name="mfg-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:date', is_config=False)
+    self.__hardware_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hardware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__firmware_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="firmware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__software_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__serial_no = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="serial-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__part_no = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="part-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__clei_code = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="clei-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    self.__removable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="removable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+    self.__oper_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)
+    self.__empty = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="empty", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+    self.__parent = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="parent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False)
+    self.__redundant_role = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), is_leaf=True, yang_name="redundant-role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-platform-types:component-redundant-role', is_config=False)
+    self.__last_switchover_reason = YANGDynClass(base=last_switchover_reason.last_switchover_reason, is_container='container', yang_name="last-switchover-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    self.__last_switchover_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-switchover-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+    self.__last_reboot_reason = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="last-reboot-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)
+    self.__last_reboot_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-reboot-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+    self.__switchover_ready = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="switchover-ready", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+    self.__temperature = YANGDynClass(base=temperature.temperature, is_container='container', yang_name="temperature", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    self.__memory = YANGDynClass(base=memory.memory, is_container='container', yang_name="memory", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    self.__allocated_power = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="allocated-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)
+    self.__used_power = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="used-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)
+    self.__pcie = YANGDynClass(base=pcie.pcie, is_container='container', yang_name="pcie", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'state']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/state/name (string)
+
+    YANG Description: Device name for the component -- this may not be a
+configurable parameter on many implementations.  Where
+component preconfiguration is supported, for example,
+the component name may be configurable.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/state/name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: Device name for the component -- this may not be a
+configurable parameter on many implementations.  Where
+component preconfiguration is supported, for example,
+the component name may be configurable.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_type(self):
+    """
+    Getter method for type, mapped from YANG variable /components/component/state/type (union)
+
+    YANG Description: Type of component as identified by the system
+    """
+    return self.__type
+      
+  def _set_type(self, v, load=False):
+    """
+    Setter method for type, mapped from YANG variable /components/component/state/type (union)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_type is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_type() directly.
+
+    YANG Description: Type of component as identified by the system
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),], is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """type must be of a type compatible with union""",
+          'defined-type': "openconfig-platform:union",
+          'generated-type': """YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),], is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False)""",
+        })
+
+    self.__type = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_type(self):
+    self.__type = YANGDynClass(base=[RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CHASSIS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BACKPLANE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FABRIC': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:POWER_SUPPLY': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FAN': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SENSOR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:FRU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:LINECARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CONTROLLER_CARD': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:PORT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:TRANSCEIVER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:CPU': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:STORAGE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INTEGRATED_CIRCUIT': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:OPERATING_SYSTEM_UPDATE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BIOS': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:BOOT_LOADER': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:SOFTWARE_MODULE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},),], is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='union', is_config=False)
+
+
+  def _get_id(self):
+    """
+    Getter method for id, mapped from YANG variable /components/component/state/id (string)
+
+    YANG Description: Unique identifier assigned by the system for the
+component
+    """
+    return self.__id
+      
+  def _set_id(self, v, load=False):
+    """
+    Setter method for id, mapped from YANG variable /components/component/state/id (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_id is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_id() directly.
+
+    YANG Description: Unique identifier assigned by the system for the
+component
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """id must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__id = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_id(self):
+    self.__id = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="id", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_location(self):
+    """
+    Getter method for location, mapped from YANG variable /components/component/state/location (string)
+
+    YANG Description: System-supplied description of the location of the
+component within the system. This could be a bay position,
+slot number, socket location, etc. For component types that
+have an explicit slot-id attribute, such as linecards, the
+system should populate the more specific slot-id.
+    """
+    return self.__location
+      
+  def _set_location(self, v, load=False):
+    """
+    Setter method for location, mapped from YANG variable /components/component/state/location (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_location is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_location() directly.
+
+    YANG Description: System-supplied description of the location of the
+component within the system. This could be a bay position,
+slot number, socket location, etc. For component types that
+have an explicit slot-id attribute, such as linecards, the
+system should populate the more specific slot-id.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="location", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """location must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="location", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__location = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_location(self):
+    self.__location = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="location", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_description(self):
+    """
+    Getter method for description, mapped from YANG variable /components/component/state/description (string)
+
+    YANG Description: System-supplied description of the component
+    """
+    return self.__description
+      
+  def _set_description(self, v, load=False):
+    """
+    Setter method for description, mapped from YANG variable /components/component/state/description (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_description is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_description() directly.
+
+    YANG Description: System-supplied description of the component
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """description must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__description = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_description(self):
+    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_mfg_name(self):
+    """
+    Getter method for mfg_name, mapped from YANG variable /components/component/state/mfg_name (string)
+
+    YANG Description: System-supplied identifier for the manufacturer of the
+component.  This data is particularly useful when a
+component manufacturer is different than the overall
+device vendor.
+    """
+    return self.__mfg_name
+      
+  def _set_mfg_name(self, v, load=False):
+    """
+    Setter method for mfg_name, mapped from YANG variable /components/component/state/mfg_name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_mfg_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_mfg_name() directly.
+
+    YANG Description: System-supplied identifier for the manufacturer of the
+component.  This data is particularly useful when a
+component manufacturer is different than the overall
+device vendor.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="mfg-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """mfg_name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mfg-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__mfg_name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_mfg_name(self):
+    self.__mfg_name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="mfg-name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_mfg_date(self):
+    """
+    Getter method for mfg_date, mapped from YANG variable /components/component/state/mfg_date (oc-yang:date)
+
+    YANG Description: System-supplied representation of the component's
+manufacturing date.
+    """
+    return self.__mfg_date
+      
+  def _set_mfg_date(self, v, load=False):
+    """
+    Setter method for mfg_date, mapped from YANG variable /components/component/state/mfg_date (oc-yang:date)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_mfg_date is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_mfg_date() directly.
+
+    YANG Description: System-supplied representation of the component's
+manufacturing date.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9]{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[12][0-9]|3[01])'}), is_leaf=True, yang_name="mfg-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:date', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """mfg_date must be of a type compatible with oc-yang:date""",
+          'defined-type': "oc-yang:date",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9]{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[12][0-9]|3[01])'}), is_leaf=True, yang_name="mfg-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:date', is_config=False)""",
+        })
+
+    self.__mfg_date = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_mfg_date(self):
+    self.__mfg_date = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9]{4}\\-(0[1-9]|1[0-2])\\-(0[1-9]|[12][0-9]|3[01])'}), is_leaf=True, yang_name="mfg-date", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:date', is_config=False)
+
+
+  def _get_hardware_version(self):
+    """
+    Getter method for hardware_version, mapped from YANG variable /components/component/state/hardware_version (string)
+
+    YANG Description: For hardware components, this is the hardware revision of
+the component.
+    """
+    return self.__hardware_version
+      
+  def _set_hardware_version(self, v, load=False):
+    """
+    Setter method for hardware_version, mapped from YANG variable /components/component/state/hardware_version (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_hardware_version is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_hardware_version() directly.
+
+    YANG Description: For hardware components, this is the hardware revision of
+the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="hardware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """hardware_version must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hardware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__hardware_version = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_hardware_version(self):
+    self.__hardware_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hardware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_firmware_version(self):
+    """
+    Getter method for firmware_version, mapped from YANG variable /components/component/state/firmware_version (string)
+
+    YANG Description: For hardware components, this is the version of associated
+firmware that is running on the component, if applicable.
+    """
+    return self.__firmware_version
+      
+  def _set_firmware_version(self, v, load=False):
+    """
+    Setter method for firmware_version, mapped from YANG variable /components/component/state/firmware_version (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_firmware_version is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_firmware_version() directly.
+
+    YANG Description: For hardware components, this is the version of associated
+firmware that is running on the component, if applicable.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="firmware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """firmware_version must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="firmware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__firmware_version = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_firmware_version(self):
+    self.__firmware_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="firmware-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_software_version(self):
+    """
+    Getter method for software_version, mapped from YANG variable /components/component/state/software_version (string)
+
+    YANG Description: For software components such as operating system or other
+software module, this is the version of the currently
+running software.
+    """
+    return self.__software_version
+      
+  def _set_software_version(self, v, load=False):
+    """
+    Setter method for software_version, mapped from YANG variable /components/component/state/software_version (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_software_version is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_software_version() directly.
+
+    YANG Description: For software components such as operating system or other
+software module, this is the version of the currently
+running software.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """software_version must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__software_version = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_software_version(self):
+    self.__software_version = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="software-version", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_serial_no(self):
+    """
+    Getter method for serial_no, mapped from YANG variable /components/component/state/serial_no (string)
+
+    YANG Description: System-assigned serial number of the component.
+    """
+    return self.__serial_no
+      
+  def _set_serial_no(self, v, load=False):
+    """
+    Setter method for serial_no, mapped from YANG variable /components/component/state/serial_no (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_serial_no is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_serial_no() directly.
+
+    YANG Description: System-assigned serial number of the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="serial-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """serial_no must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="serial-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__serial_no = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_serial_no(self):
+    self.__serial_no = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="serial-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_part_no(self):
+    """
+    Getter method for part_no, mapped from YANG variable /components/component/state/part_no (string)
+
+    YANG Description: System-assigned part number for the component.  This should
+be present in particular if the component is also an FRU
+(field replaceable unit)
+    """
+    return self.__part_no
+      
+  def _set_part_no(self, v, load=False):
+    """
+    Setter method for part_no, mapped from YANG variable /components/component/state/part_no (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_part_no is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_part_no() directly.
+
+    YANG Description: System-assigned part number for the component.  This should
+be present in particular if the component is also an FRU
+(field replaceable unit)
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="part-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """part_no must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="part-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__part_no = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_part_no(self):
+    self.__part_no = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="part-no", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_clei_code(self):
+    """
+    Getter method for clei_code, mapped from YANG variable /components/component/state/clei_code (string)
+
+    YANG Description: Common Language Equipment Identifier (CLEI) code of the
+component.  This should be present in particular if the
+component is also an FRU (field replaceable unit)
+    """
+    return self.__clei_code
+      
+  def _set_clei_code(self, v, load=False):
+    """
+    Setter method for clei_code, mapped from YANG variable /components/component/state/clei_code (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_clei_code is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_clei_code() directly.
+
+    YANG Description: Common Language Equipment Identifier (CLEI) code of the
+component.  This should be present in particular if the
+component is also an FRU (field replaceable unit)
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="clei-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """clei_code must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="clei-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__clei_code = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_clei_code(self):
+    self.__clei_code = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="clei-code", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+
+  def _get_removable(self):
+    """
+    Getter method for removable, mapped from YANG variable /components/component/state/removable (boolean)
+
+    YANG Description: If true, this component is removable or is a field
+replaceable unit
+    """
+    return self.__removable
+      
+  def _set_removable(self, v, load=False):
+    """
+    Setter method for removable, mapped from YANG variable /components/component/state/removable (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_removable is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_removable() directly.
+
+    YANG Description: If true, this component is removable or is a field
+replaceable unit
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="removable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """removable must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="removable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__removable = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_removable(self):
+    self.__removable = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="removable", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+
+
+  def _get_oper_status(self):
+    """
+    Getter method for oper_status, mapped from YANG variable /components/component/state/oper_status (identityref)
+
+    YANG Description: If applicable, this reports the current operational status
+of the component.
+    """
+    return self.__oper_status
+      
+  def _set_oper_status(self, v, load=False):
+    """
+    Setter method for oper_status, mapped from YANG variable /components/component/state/oper_status (identityref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_oper_status is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_oper_status() directly.
+
+    YANG Description: If applicable, this reports the current operational status
+of the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """oper_status must be of a type compatible with identityref""",
+          'defined-type': "openconfig-platform:identityref",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)""",
+        })
+
+    self.__oper_status = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_oper_status(self):
+    self.__oper_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:ACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:INACTIVE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:DISABLED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)
+
+
+  def _get_empty(self):
+    """
+    Getter method for empty, mapped from YANG variable /components/component/state/empty (boolean)
+
+    YANG Description: The empty leaf may be used by the device to indicate that a
+component position exists but is not populated.  Using this
+flag, it is possible for the management system to learn how
+many positions are available (e.g., occupied vs. empty
+linecard slots in a chassis).
+    """
+    return self.__empty
+      
+  def _set_empty(self, v, load=False):
+    """
+    Setter method for empty, mapped from YANG variable /components/component/state/empty (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_empty is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_empty() directly.
+
+    YANG Description: The empty leaf may be used by the device to indicate that a
+component position exists but is not populated.  Using this
+flag, it is possible for the management system to learn how
+many positions are available (e.g., occupied vs. empty
+linecard slots in a chassis).
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="empty", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """empty must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="empty", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__empty = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_empty(self):
+    self.__empty = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="empty", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+
+
+  def _get_parent(self):
+    """
+    Getter method for parent, mapped from YANG variable /components/component/state/parent (leafref)
+
+    YANG Description: Reference to the name of the parent component.  Note that
+this reference must be kept synchronized with the
+corresponding subcomponent reference from the parent
+component.
+    """
+    return self.__parent
+      
+  def _set_parent(self, v, load=False):
+    """
+    Setter method for parent, mapped from YANG variable /components/component/state/parent (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_parent is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_parent() directly.
+
+    YANG Description: Reference to the name of the parent component.  Note that
+this reference must be kept synchronized with the
+corresponding subcomponent reference from the parent
+component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="parent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """parent must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="parent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False)""",
+        })
+
+    self.__parent = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_parent(self):
+    self.__parent = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="parent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False)
+
+
+  def _get_redundant_role(self):
+    """
+    Getter method for redundant_role, mapped from YANG variable /components/component/state/redundant_role (oc-platform-types:component-redundant-role)
+
+    YANG Description: For components that have redundant roles (e.g. two
+supervisors in a device, one as primary the other as secondary),
+this reports the role of the component.
+    """
+    return self.__redundant_role
+      
+  def _set_redundant_role(self, v, load=False):
+    """
+    Setter method for redundant_role, mapped from YANG variable /components/component/state/redundant_role (oc-platform-types:component-redundant-role)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_redundant_role is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_redundant_role() directly.
+
+    YANG Description: For components that have redundant roles (e.g. two
+supervisors in a device, one as primary the other as secondary),
+this reports the role of the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), is_leaf=True, yang_name="redundant-role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-platform-types:component-redundant-role', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """redundant_role must be of a type compatible with oc-platform-types:component-redundant-role""",
+          'defined-type': "oc-platform-types:component-redundant-role",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), is_leaf=True, yang_name="redundant-role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-platform-types:component-redundant-role', is_config=False)""",
+        })
+
+    self.__redundant_role = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_redundant_role(self):
+    self.__redundant_role = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'PRIMARY': {}, 'SECONDARY': {}},), is_leaf=True, yang_name="redundant-role", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-platform-types:component-redundant-role', is_config=False)
+
+
+  def _get_last_switchover_reason(self):
+    """
+    Getter method for last_switchover_reason, mapped from YANG variable /components/component/state/last_switchover_reason (container)
+
+    YANG Description: For components that have redundant roles (e.g. two
+supervisors in a device, one as primary the other as secondary),
+this reports the reason of the last change of the
+component's role.
+    """
+    return self.__last_switchover_reason
+      
+  def _set_last_switchover_reason(self, v, load=False):
+    """
+    Setter method for last_switchover_reason, mapped from YANG variable /components/component/state/last_switchover_reason (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_last_switchover_reason is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_last_switchover_reason() directly.
+
+    YANG Description: For components that have redundant roles (e.g. two
+supervisors in a device, one as primary the other as secondary),
+this reports the reason of the last change of the
+component's role.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=last_switchover_reason.last_switchover_reason, is_container='container', yang_name="last-switchover-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """last_switchover_reason must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=last_switchover_reason.last_switchover_reason, is_container='container', yang_name="last-switchover-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""",
+        })
+
+    self.__last_switchover_reason = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_last_switchover_reason(self):
+    self.__last_switchover_reason = YANGDynClass(base=last_switchover_reason.last_switchover_reason, is_container='container', yang_name="last-switchover-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+
+
+  def _get_last_switchover_time(self):
+    """
+    Getter method for last_switchover_time, mapped from YANG variable /components/component/state/last_switchover_time (oc-types:timeticks64)
+
+    YANG Description: For components that have redundant roles (e.g. two
+supervisors in a device, one as primary the other as
+secondary), this reports the time of the last change of
+the component's role. The value is the timestamp in
+nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+    """
+    return self.__last_switchover_time
+      
+  def _set_last_switchover_time(self, v, load=False):
+    """
+    Setter method for last_switchover_time, mapped from YANG variable /components/component/state/last_switchover_time (oc-types:timeticks64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_last_switchover_time is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_last_switchover_time() directly.
+
+    YANG Description: For components that have redundant roles (e.g. two
+supervisors in a device, one as primary the other as
+secondary), this reports the time of the last change of
+the component's role. The value is the timestamp in
+nanoseconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-switchover-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """last_switchover_time must be of a type compatible with oc-types:timeticks64""",
+          'defined-type': "oc-types:timeticks64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-switchover-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""",
+        })
+
+    self.__last_switchover_time = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_last_switchover_time(self):
+    self.__last_switchover_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-switchover-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+
+
+  def _get_last_reboot_reason(self):
+    """
+    Getter method for last_reboot_reason, mapped from YANG variable /components/component/state/last_reboot_reason (identityref)
+
+    YANG Description: This reports the reason of the last reboot of the component.
+    """
+    return self.__last_reboot_reason
+      
+  def _set_last_reboot_reason(self, v, load=False):
+    """
+    Setter method for last_reboot_reason, mapped from YANG variable /components/component/state/last_reboot_reason (identityref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_last_reboot_reason is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_last_reboot_reason() directly.
+
+    YANG Description: This reports the reason of the last reboot of the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="last-reboot-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """last_reboot_reason must be of a type compatible with identityref""",
+          'defined-type': "openconfig-platform:identityref",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="last-reboot-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)""",
+        })
+
+    self.__last_reboot_reason = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_last_reboot_reason(self):
+    self.__last_reboot_reason = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_USER_INITIATED': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_POWER_FAILURE': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}, 'oc-platform-types:REBOOT_CRITICAL_ERROR': {'@module': 'openconfig-platform-types', '@namespace': 'http://openconfig.net/yang/platform-types'}},), is_leaf=True, yang_name="last-reboot-reason", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)
+
+
+  def _get_last_reboot_time(self):
+    """
+    Getter method for last_reboot_time, mapped from YANG variable /components/component/state/last_reboot_time (oc-types:timeticks64)
+
+    YANG Description: This reports the time of the last reboot of the component. The
+value is the timestamp in nanoseconds relative to the Unix Epoch
+(Jan 1, 1970 00:00:00 UTC).
+    """
+    return self.__last_reboot_time
+      
+  def _set_last_reboot_time(self, v, load=False):
+    """
+    Setter method for last_reboot_time, mapped from YANG variable /components/component/state/last_reboot_time (oc-types:timeticks64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_last_reboot_time is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_last_reboot_time() directly.
+
+    YANG Description: This reports the time of the last reboot of the component. The
+value is the timestamp in nanoseconds relative to the Unix Epoch
+(Jan 1, 1970 00:00:00 UTC).
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-reboot-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """last_reboot_time must be of a type compatible with oc-types:timeticks64""",
+          'defined-type': "oc-types:timeticks64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-reboot-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""",
+        })
+
+    self.__last_reboot_time = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_last_reboot_time(self):
+    self.__last_reboot_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-reboot-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+
+
+  def _get_switchover_ready(self):
+    """
+    Getter method for switchover_ready, mapped from YANG variable /components/component/state/switchover_ready (boolean)
+
+    YANG Description: For components that have redundant roles, this reports a value
+that indicates if the component is ready to support failover.
+
+The components with a redundant-role should reflect the overall
+system's switchover status.  For example, two supervisors in a
+device, one as primary and the other as secondary, should both
+report the same value.
+    """
+    return self.__switchover_ready
+      
+  def _set_switchover_ready(self, v, load=False):
+    """
+    Setter method for switchover_ready, mapped from YANG variable /components/component/state/switchover_ready (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_switchover_ready is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_switchover_ready() directly.
+
+    YANG Description: For components that have redundant roles, this reports a value
+that indicates if the component is ready to support failover.
+
+The components with a redundant-role should reflect the overall
+system's switchover status.  For example, two supervisors in a
+device, one as primary and the other as secondary, should both
+report the same value.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="switchover-ready", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """switchover_ready must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="switchover-ready", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__switchover_ready = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_switchover_ready(self):
+    self.__switchover_ready = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="switchover-ready", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+
+
+  def _get_temperature(self):
+    """
+    Getter method for temperature, mapped from YANG variable /components/component/state/temperature (container)
+
+    YANG Description: Temperature in degrees Celsius of the component. Values include
+the instantaneous, average, minimum, and maximum statistics. If
+avg/min/max statistics are not supported, the target is expected
+to just supply the instant value
+    """
+    return self.__temperature
+      
+  def _set_temperature(self, v, load=False):
+    """
+    Setter method for temperature, mapped from YANG variable /components/component/state/temperature (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_temperature is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_temperature() directly.
+
+    YANG Description: Temperature in degrees Celsius of the component. Values include
+the instantaneous, average, minimum, and maximum statistics. If
+avg/min/max statistics are not supported, the target is expected
+to just supply the instant value
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=temperature.temperature, is_container='container', yang_name="temperature", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """temperature must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=temperature.temperature, is_container='container', yang_name="temperature", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""",
+        })
+
+    self.__temperature = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_temperature(self):
+    self.__temperature = YANGDynClass(base=temperature.temperature, is_container='container', yang_name="temperature", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+
+
+  def _get_memory(self):
+    """
+    Getter method for memory, mapped from YANG variable /components/component/state/memory (container)
+
+    YANG Description: For components that have associated memory, these values
+report information about available and utilized memory.
+    """
+    return self.__memory
+      
+  def _set_memory(self, v, load=False):
+    """
+    Setter method for memory, mapped from YANG variable /components/component/state/memory (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_memory is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_memory() directly.
+
+    YANG Description: For components that have associated memory, these values
+report information about available and utilized memory.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=memory.memory, is_container='container', yang_name="memory", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """memory must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=memory.memory, is_container='container', yang_name="memory", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""",
+        })
+
+    self.__memory = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_memory(self):
+    self.__memory = YANGDynClass(base=memory.memory, is_container='container', yang_name="memory", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+
+
+  def _get_allocated_power(self):
+    """
+    Getter method for allocated_power, mapped from YANG variable /components/component/state/allocated_power (uint32)
+
+    YANG Description: Power allocated by the system for the component.
+    """
+    return self.__allocated_power
+      
+  def _set_allocated_power(self, v, load=False):
+    """
+    Setter method for allocated_power, mapped from YANG variable /components/component/state/allocated_power (uint32)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_allocated_power is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_allocated_power() directly.
+
+    YANG Description: Power allocated by the system for the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="allocated-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """allocated_power must be of a type compatible with uint32""",
+          'defined-type': "uint32",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="allocated-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)""",
+        })
+
+    self.__allocated_power = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_allocated_power(self):
+    self.__allocated_power = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="allocated-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)
+
+
+  def _get_used_power(self):
+    """
+    Getter method for used_power, mapped from YANG variable /components/component/state/used_power (uint32)
+
+    YANG Description: Actual power used by the component.
+    """
+    return self.__used_power
+      
+  def _set_used_power(self, v, load=False):
+    """
+    Setter method for used_power, mapped from YANG variable /components/component/state/used_power (uint32)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_used_power is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_used_power() directly.
+
+    YANG Description: Actual power used by the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="used-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """used_power must be of a type compatible with uint32""",
+          'defined-type': "uint32",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="used-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)""",
+        })
+
+    self.__used_power = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_used_power(self):
+    self.__used_power = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="used-power", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)
+
+
+  def _get_pcie(self):
+    """
+    Getter method for pcie, mapped from YANG variable /components/component/state/pcie (container)
+
+    YANG Description: Components that are connected to the system over the Peripheral
+Component Interconnect Express (PCIe), report the fatal, non-fatal
+and correctable PCIe error counts.
+    """
+    return self.__pcie
+      
+  def _set_pcie(self, v, load=False):
+    """
+    Setter method for pcie, mapped from YANG variable /components/component/state/pcie (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_pcie is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_pcie() directly.
+
+    YANG Description: Components that are connected to the system over the Peripheral
+Component Interconnect Express (PCIe), report the fatal, non-fatal
+and correctable PCIe error counts.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=pcie.pcie, is_container='container', yang_name="pcie", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """pcie must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=pcie.pcie, is_container='container', yang_name="pcie", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""",
+        })
+
+    self.__pcie = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_pcie(self):
+    self.__pcie = YANGDynClass(base=pcie.pcie, is_container='container', yang_name="pcie", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+
+  name = __builtin__.property(_get_name)
+  type = __builtin__.property(_get_type)
+  id = __builtin__.property(_get_id)
+  location = __builtin__.property(_get_location)
+  description = __builtin__.property(_get_description)
+  mfg_name = __builtin__.property(_get_mfg_name)
+  mfg_date = __builtin__.property(_get_mfg_date)
+  hardware_version = __builtin__.property(_get_hardware_version)
+  firmware_version = __builtin__.property(_get_firmware_version)
+  software_version = __builtin__.property(_get_software_version)
+  serial_no = __builtin__.property(_get_serial_no)
+  part_no = __builtin__.property(_get_part_no)
+  clei_code = __builtin__.property(_get_clei_code)
+  removable = __builtin__.property(_get_removable)
+  oper_status = __builtin__.property(_get_oper_status)
+  empty = __builtin__.property(_get_empty)
+  parent = __builtin__.property(_get_parent)
+  redundant_role = __builtin__.property(_get_redundant_role)
+  last_switchover_reason = __builtin__.property(_get_last_switchover_reason)
+  last_switchover_time = __builtin__.property(_get_last_switchover_time)
+  last_reboot_reason = __builtin__.property(_get_last_reboot_reason)
+  last_reboot_time = __builtin__.property(_get_last_reboot_time)
+  switchover_ready = __builtin__.property(_get_switchover_ready)
+  temperature = __builtin__.property(_get_temperature)
+  memory = __builtin__.property(_get_memory)
+  allocated_power = __builtin__.property(_get_allocated_power)
+  used_power = __builtin__.property(_get_used_power)
+  pcie = __builtin__.property(_get_pcie)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('type', type), ('id', id), ('location', location), ('description', description), ('mfg_name', mfg_name), ('mfg_date', mfg_date), ('hardware_version', hardware_version), ('firmware_version', firmware_version), ('software_version', software_version), ('serial_no', serial_no), ('part_no', part_no), ('clei_code', clei_code), ('removable', removable), ('oper_status', oper_status), ('empty', empty), ('parent', parent), ('redundant_role', redundant_role), ('last_switchover_reason', last_switchover_reason), ('last_switchover_time', last_switchover_time), ('last_reboot_reason', last_reboot_reason), ('last_reboot_time', last_reboot_time), ('switchover_ready', switchover_ready), ('temperature', temperature), ('memory', memory), ('allocated_power', allocated_power), ('used_power', used_power), ('pcie', pcie), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/state/last_switchover_reason/__init__.py b/hackfest/netconf-oc/openconfig/components/component/state/last_switchover_reason/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..0786fb99cde68f9b4e23aa280f7a17e3fe280383
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/state/last_switchover_reason/__init__.py
@@ -0,0 +1,306 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class last_switchover_reason(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/state/last-switchover-reason. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: For components that have redundant roles (e.g. two
+supervisors in a device, one as primary the other as secondary),
+this reports the reason of the last change of the
+component's role.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__trigger','__details',)
+
+  _yang_name = 'last-switchover-reason'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__trigger = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'USER_INITIATED': {}, 'SYSTEM_INITIATED': {}},), is_leaf=True, yang_name="trigger", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='component-redundant-role-switchover-reason-trigger', is_config=False)
+    self.__details = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="details", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'state', 'last-switchover-reason']
+
+  def _get_trigger(self):
+    """
+    Getter method for trigger, mapped from YANG variable /components/component/state/last_switchover_reason/trigger (component-redundant-role-switchover-reason-trigger)
+
+    YANG Description: Records the generic triggers, e.g. user or system
+initiated the switchover.
+    """
+    return self.__trigger
+      
+  def _set_trigger(self, v, load=False):
+    """
+    Setter method for trigger, mapped from YANG variable /components/component/state/last_switchover_reason/trigger (component-redundant-role-switchover-reason-trigger)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_trigger is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_trigger() directly.
+
+    YANG Description: Records the generic triggers, e.g. user or system
+initiated the switchover.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'USER_INITIATED': {}, 'SYSTEM_INITIATED': {}},), is_leaf=True, yang_name="trigger", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='component-redundant-role-switchover-reason-trigger', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """trigger must be of a type compatible with component-redundant-role-switchover-reason-trigger""",
+          'defined-type': "openconfig-platform:component-redundant-role-switchover-reason-trigger",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'USER_INITIATED': {}, 'SYSTEM_INITIATED': {}},), is_leaf=True, yang_name="trigger", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='component-redundant-role-switchover-reason-trigger', is_config=False)""",
+        })
+
+    self.__trigger = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_trigger(self):
+    self.__trigger = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'USER_INITIATED': {}, 'SYSTEM_INITIATED': {}},), is_leaf=True, yang_name="trigger", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='component-redundant-role-switchover-reason-trigger', is_config=False)
+
+
+  def _get_details(self):
+    """
+    Getter method for details, mapped from YANG variable /components/component/state/last_switchover_reason/details (string)
+
+    YANG Description: Records detailed description of why the switchover happens.
+For example, when system initiated the switchover, this leaf
+can be used to record the specific reason, e.g. due to critical
+errors of the routing daemon in the primary role.
+    """
+    return self.__details
+      
+  def _set_details(self, v, load=False):
+    """
+    Setter method for details, mapped from YANG variable /components/component/state/last_switchover_reason/details (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_details is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_details() directly.
+
+    YANG Description: Records detailed description of why the switchover happens.
+For example, when system initiated the switchover, this leaf
+can be used to record the specific reason, e.g. due to critical
+errors of the routing daemon in the primary role.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="details", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """details must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="details", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__details = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_details(self):
+    self.__details = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="details", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+  trigger = __builtin__.property(_get_trigger)
+  details = __builtin__.property(_get_details)
+
+
+  _pyangbind_elements = OrderedDict([('trigger', trigger), ('details', details), ])
+
+
+class last_switchover_reason(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/state/last-switchover-reason. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: For components that have redundant roles (e.g. two
+supervisors in a device, one as primary the other as secondary),
+this reports the reason of the last change of the
+component's role.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__trigger','__details',)
+
+  _yang_name = 'last-switchover-reason'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__trigger = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'USER_INITIATED': {}, 'SYSTEM_INITIATED': {}},), is_leaf=True, yang_name="trigger", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='component-redundant-role-switchover-reason-trigger', is_config=False)
+    self.__details = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="details", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'state', 'last-switchover-reason']
+
+  def _get_trigger(self):
+    """
+    Getter method for trigger, mapped from YANG variable /components/component/state/last_switchover_reason/trigger (component-redundant-role-switchover-reason-trigger)
+
+    YANG Description: Records the generic triggers, e.g. user or system
+initiated the switchover.
+    """
+    return self.__trigger
+      
+  def _set_trigger(self, v, load=False):
+    """
+    Setter method for trigger, mapped from YANG variable /components/component/state/last_switchover_reason/trigger (component-redundant-role-switchover-reason-trigger)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_trigger is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_trigger() directly.
+
+    YANG Description: Records the generic triggers, e.g. user or system
+initiated the switchover.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'USER_INITIATED': {}, 'SYSTEM_INITIATED': {}},), is_leaf=True, yang_name="trigger", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='component-redundant-role-switchover-reason-trigger', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """trigger must be of a type compatible with component-redundant-role-switchover-reason-trigger""",
+          'defined-type': "openconfig-platform:component-redundant-role-switchover-reason-trigger",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'USER_INITIATED': {}, 'SYSTEM_INITIATED': {}},), is_leaf=True, yang_name="trigger", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='component-redundant-role-switchover-reason-trigger', is_config=False)""",
+        })
+
+    self.__trigger = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_trigger(self):
+    self.__trigger = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'USER_INITIATED': {}, 'SYSTEM_INITIATED': {}},), is_leaf=True, yang_name="trigger", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='component-redundant-role-switchover-reason-trigger', is_config=False)
+
+
+  def _get_details(self):
+    """
+    Getter method for details, mapped from YANG variable /components/component/state/last_switchover_reason/details (string)
+
+    YANG Description: Records detailed description of why the switchover happens.
+For example, when system initiated the switchover, this leaf
+can be used to record the specific reason, e.g. due to critical
+errors of the routing daemon in the primary role.
+    """
+    return self.__details
+      
+  def _set_details(self, v, load=False):
+    """
+    Setter method for details, mapped from YANG variable /components/component/state/last_switchover_reason/details (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_details is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_details() directly.
+
+    YANG Description: Records detailed description of why the switchover happens.
+For example, when system initiated the switchover, this leaf
+can be used to record the specific reason, e.g. due to critical
+errors of the routing daemon in the primary role.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="details", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """details must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="details", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)""",
+        })
+
+    self.__details = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_details(self):
+    self.__details = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="details", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='string', is_config=False)
+
+  trigger = __builtin__.property(_get_trigger)
+  details = __builtin__.property(_get_details)
+
+
+  _pyangbind_elements = OrderedDict([('trigger', trigger), ('details', details), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/state/memory/__init__.py b/hackfest/netconf-oc/openconfig/components/component/state/memory/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..9a153eaf65f4eaef08cb2cef68057aa114183d8b
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/state/memory/__init__.py
@@ -0,0 +1,298 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class memory(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/state/memory. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: For components that have associated memory, these values
+report information about available and utilized memory.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__available','__utilized',)
+
+  _yang_name = 'memory'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__available = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="available", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__utilized = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="utilized", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'state', 'memory']
+
+  def _get_available(self):
+    """
+    Getter method for available, mapped from YANG variable /components/component/state/memory/available (uint64)
+
+    YANG Description: The available memory physically installed, or logically
+allocated to the component.
+    """
+    return self.__available
+      
+  def _set_available(self, v, load=False):
+    """
+    Setter method for available, mapped from YANG variable /components/component/state/memory/available (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_available is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_available() directly.
+
+    YANG Description: The available memory physically installed, or logically
+allocated to the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="available", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """available must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="available", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__available = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_available(self):
+    self.__available = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="available", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_utilized(self):
+    """
+    Getter method for utilized, mapped from YANG variable /components/component/state/memory/utilized (uint64)
+
+    YANG Description: The memory currently in use by processes running on
+the component, not considering reserved memory that is
+not available for use.
+    """
+    return self.__utilized
+      
+  def _set_utilized(self, v, load=False):
+    """
+    Setter method for utilized, mapped from YANG variable /components/component/state/memory/utilized (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_utilized is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_utilized() directly.
+
+    YANG Description: The memory currently in use by processes running on
+the component, not considering reserved memory that is
+not available for use.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="utilized", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """utilized must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="utilized", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__utilized = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_utilized(self):
+    self.__utilized = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="utilized", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+  available = __builtin__.property(_get_available)
+  utilized = __builtin__.property(_get_utilized)
+
+
+  _pyangbind_elements = OrderedDict([('available', available), ('utilized', utilized), ])
+
+
+class memory(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/state/memory. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: For components that have associated memory, these values
+report information about available and utilized memory.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__available','__utilized',)
+
+  _yang_name = 'memory'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__available = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="available", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    self.__utilized = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="utilized", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'state', 'memory']
+
+  def _get_available(self):
+    """
+    Getter method for available, mapped from YANG variable /components/component/state/memory/available (uint64)
+
+    YANG Description: The available memory physically installed, or logically
+allocated to the component.
+    """
+    return self.__available
+      
+  def _set_available(self, v, load=False):
+    """
+    Setter method for available, mapped from YANG variable /components/component/state/memory/available (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_available is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_available() directly.
+
+    YANG Description: The available memory physically installed, or logically
+allocated to the component.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="available", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """available must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="available", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__available = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_available(self):
+    self.__available = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="available", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+
+  def _get_utilized(self):
+    """
+    Getter method for utilized, mapped from YANG variable /components/component/state/memory/utilized (uint64)
+
+    YANG Description: The memory currently in use by processes running on
+the component, not considering reserved memory that is
+not available for use.
+    """
+    return self.__utilized
+      
+  def _set_utilized(self, v, load=False):
+    """
+    Setter method for utilized, mapped from YANG variable /components/component/state/memory/utilized (uint64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_utilized is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_utilized() directly.
+
+    YANG Description: The memory currently in use by processes running on
+the component, not considering reserved memory that is
+not available for use.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="utilized", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """utilized must be of a type compatible with uint64""",
+          'defined-type': "uint64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="utilized", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)""",
+        })
+
+    self.__utilized = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_utilized(self):
+    self.__utilized = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="utilized", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint64', is_config=False)
+
+  available = __builtin__.property(_get_available)
+  utilized = __builtin__.property(_get_utilized)
+
+
+  _pyangbind_elements = OrderedDict([('available', available), ('utilized', utilized), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/state/pcie/__init__.py b/hackfest/netconf-oc/openconfig/components/component/state/pcie/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..aae99fcd62370ff7596b1401df999fe6a2a4ec0c
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/state/pcie/__init__.py
@@ -0,0 +1,372 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import fatal_errors
+from . import non_fatal_errors
+from . import correctable_errors
+class pcie(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/state/pcie. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Components that are connected to the system over the Peripheral
+Component Interconnect Express (PCIe), report the fatal, non-fatal
+and correctable PCIe error counts.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__fatal_errors','__non_fatal_errors','__correctable_errors',)
+
+  _yang_name = 'pcie'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__fatal_errors = YANGDynClass(base=fatal_errors.fatal_errors, is_container='container', yang_name="fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    self.__non_fatal_errors = YANGDynClass(base=non_fatal_errors.non_fatal_errors, is_container='container', yang_name="non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    self.__correctable_errors = YANGDynClass(base=correctable_errors.correctable_errors, is_container='container', yang_name="correctable-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'state', 'pcie']
+
+  def _get_fatal_errors(self):
+    """
+    Getter method for fatal_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors (container)
+
+    YANG Description: The count of the fatal PCIe errors.
+    """
+    return self.__fatal_errors
+      
+  def _set_fatal_errors(self, v, load=False):
+    """
+    Setter method for fatal_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_fatal_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_fatal_errors() directly.
+
+    YANG Description: The count of the fatal PCIe errors.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=fatal_errors.fatal_errors, is_container='container', yang_name="fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """fatal_errors must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=fatal_errors.fatal_errors, is_container='container', yang_name="fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""",
+        })
+
+    self.__fatal_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_fatal_errors(self):
+    self.__fatal_errors = YANGDynClass(base=fatal_errors.fatal_errors, is_container='container', yang_name="fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+
+
+  def _get_non_fatal_errors(self):
+    """
+    Getter method for non_fatal_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors (container)
+
+    YANG Description: The count of the non-fatal PCIe errors.
+    """
+    return self.__non_fatal_errors
+      
+  def _set_non_fatal_errors(self, v, load=False):
+    """
+    Setter method for non_fatal_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_non_fatal_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_non_fatal_errors() directly.
+
+    YANG Description: The count of the non-fatal PCIe errors.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=non_fatal_errors.non_fatal_errors, is_container='container', yang_name="non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """non_fatal_errors must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=non_fatal_errors.non_fatal_errors, is_container='container', yang_name="non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""",
+        })
+
+    self.__non_fatal_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_non_fatal_errors(self):
+    self.__non_fatal_errors = YANGDynClass(base=non_fatal_errors.non_fatal_errors, is_container='container', yang_name="non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+
+
+  def _get_correctable_errors(self):
+    """
+    Getter method for correctable_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors (container)
+
+    YANG Description: The count of the correctable PCIe errors.
+    """
+    return self.__correctable_errors
+      
+  def _set_correctable_errors(self, v, load=False):
+    """
+    Setter method for correctable_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_correctable_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_correctable_errors() directly.
+
+    YANG Description: The count of the correctable PCIe errors.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=correctable_errors.correctable_errors, is_container='container', yang_name="correctable-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """correctable_errors must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=correctable_errors.correctable_errors, is_container='container', yang_name="correctable-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""",
+        })
+
+    self.__correctable_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_correctable_errors(self):
+    self.__correctable_errors = YANGDynClass(base=correctable_errors.correctable_errors, is_container='container', yang_name="correctable-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+
+  fatal_errors = __builtin__.property(_get_fatal_errors)
+  non_fatal_errors = __builtin__.property(_get_non_fatal_errors)
+  correctable_errors = __builtin__.property(_get_correctable_errors)
+
+
+  _pyangbind_elements = OrderedDict([('fatal_errors', fatal_errors), ('non_fatal_errors', non_fatal_errors), ('correctable_errors', correctable_errors), ])
+
+
+from . import fatal_errors
+from . import non_fatal_errors
+from . import correctable_errors
+class pcie(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/state/pcie. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Components that are connected to the system over the Peripheral
+Component Interconnect Express (PCIe), report the fatal, non-fatal
+and correctable PCIe error counts.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__fatal_errors','__non_fatal_errors','__correctable_errors',)
+
+  _yang_name = 'pcie'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__fatal_errors = YANGDynClass(base=fatal_errors.fatal_errors, is_container='container', yang_name="fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    self.__non_fatal_errors = YANGDynClass(base=non_fatal_errors.non_fatal_errors, is_container='container', yang_name="non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    self.__correctable_errors = YANGDynClass(base=correctable_errors.correctable_errors, is_container='container', yang_name="correctable-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'state', 'pcie']
+
+  def _get_fatal_errors(self):
+    """
+    Getter method for fatal_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors (container)
+
+    YANG Description: The count of the fatal PCIe errors.
+    """
+    return self.__fatal_errors
+      
+  def _set_fatal_errors(self, v, load=False):
+    """
+    Setter method for fatal_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_fatal_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_fatal_errors() directly.
+
+    YANG Description: The count of the fatal PCIe errors.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=fatal_errors.fatal_errors, is_container='container', yang_name="fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """fatal_errors must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=fatal_errors.fatal_errors, is_container='container', yang_name="fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""",
+        })
+
+    self.__fatal_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_fatal_errors(self):
+    self.__fatal_errors = YANGDynClass(base=fatal_errors.fatal_errors, is_container='container', yang_name="fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+
+
+  def _get_non_fatal_errors(self):
+    """
+    Getter method for non_fatal_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors (container)
+
+    YANG Description: The count of the non-fatal PCIe errors.
+    """
+    return self.__non_fatal_errors
+      
+  def _set_non_fatal_errors(self, v, load=False):
+    """
+    Setter method for non_fatal_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_non_fatal_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_non_fatal_errors() directly.
+
+    YANG Description: The count of the non-fatal PCIe errors.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=non_fatal_errors.non_fatal_errors, is_container='container', yang_name="non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """non_fatal_errors must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=non_fatal_errors.non_fatal_errors, is_container='container', yang_name="non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""",
+        })
+
+    self.__non_fatal_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_non_fatal_errors(self):
+    self.__non_fatal_errors = YANGDynClass(base=non_fatal_errors.non_fatal_errors, is_container='container', yang_name="non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+
+
+  def _get_correctable_errors(self):
+    """
+    Getter method for correctable_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors (container)
+
+    YANG Description: The count of the correctable PCIe errors.
+    """
+    return self.__correctable_errors
+      
+  def _set_correctable_errors(self, v, load=False):
+    """
+    Setter method for correctable_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_correctable_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_correctable_errors() directly.
+
+    YANG Description: The count of the correctable PCIe errors.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=correctable_errors.correctable_errors, is_container='container', yang_name="correctable-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """correctable_errors must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=correctable_errors.correctable_errors, is_container='container', yang_name="correctable-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)""",
+        })
+
+    self.__correctable_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_correctable_errors(self):
+    self.__correctable_errors = YANGDynClass(base=correctable_errors.correctable_errors, is_container='container', yang_name="correctable-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=False)
+
+  fatal_errors = __builtin__.property(_get_fatal_errors)
+  non_fatal_errors = __builtin__.property(_get_non_fatal_errors)
+  correctable_errors = __builtin__.property(_get_correctable_errors)
+
+
+  _pyangbind_elements = OrderedDict([('fatal_errors', fatal_errors), ('non_fatal_errors', non_fatal_errors), ('correctable_errors', correctable_errors), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/state/pcie/correctable_errors/__init__.py b/hackfest/netconf-oc/openconfig/components/component/state/pcie/correctable_errors/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..bbef37323ba6b26d689f1575ce9afcd1ffbb9a7e
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/state/pcie/correctable_errors/__init__.py
@@ -0,0 +1,866 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class correctable_errors(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/state/pcie/correctable-errors. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: The count of the correctable PCIe errors.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__total_errors','__receiver_errors','__bad_tlp_errors','__bad_dllp_errors','__relay_rollover_errors','__replay_timeout_errors','__advisory_non_fatal_errors','__internal_errors','__hdr_log_overflow_errors',)
+
+  _yang_name = 'correctable-errors'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__receiver_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__bad_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__bad_dllp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-dllp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__relay_rollover_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="relay-rollover-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__replay_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="replay-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__advisory_non_fatal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="advisory-non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__hdr_log_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="hdr-log-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'state', 'pcie', 'correctable-errors']
+
+  def _get_total_errors(self):
+    """
+    Getter method for total_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/total_errors (oc-yang:counter64)
+
+    YANG Description: Total number of correctable errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__total_errors
+      
+  def _set_total_errors(self, v, load=False):
+    """
+    Setter method for total_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/total_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_total_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_total_errors() directly.
+
+    YANG Description: Total number of correctable errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """total_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__total_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_total_errors(self):
+    self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_receiver_errors(self):
+    """
+    Getter method for receiver_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/receiver_errors (oc-yang:counter64)
+
+    YANG Description: Number of receiver errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__receiver_errors
+      
+  def _set_receiver_errors(self, v, load=False):
+    """
+    Setter method for receiver_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/receiver_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_receiver_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_receiver_errors() directly.
+
+    YANG Description: Number of receiver errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """receiver_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__receiver_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_receiver_errors(self):
+    self.__receiver_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_bad_tlp_errors(self):
+    """
+    Getter method for bad_tlp_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/bad_tlp_errors (oc-yang:counter64)
+
+    YANG Description: Number of TLPs with bad LCRC detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__bad_tlp_errors
+      
+  def _set_bad_tlp_errors(self, v, load=False):
+    """
+    Setter method for bad_tlp_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/bad_tlp_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_bad_tlp_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_bad_tlp_errors() directly.
+
+    YANG Description: Number of TLPs with bad LCRC detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """bad_tlp_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__bad_tlp_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_bad_tlp_errors(self):
+    self.__bad_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_bad_dllp_errors(self):
+    """
+    Getter method for bad_dllp_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/bad_dllp_errors (oc-yang:counter64)
+
+    YANG Description: Number of DLLPs with bad LCRC detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__bad_dllp_errors
+      
+  def _set_bad_dllp_errors(self, v, load=False):
+    """
+    Setter method for bad_dllp_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/bad_dllp_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_bad_dllp_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_bad_dllp_errors() directly.
+
+    YANG Description: Number of DLLPs with bad LCRC detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-dllp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """bad_dllp_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-dllp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__bad_dllp_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_bad_dllp_errors(self):
+    self.__bad_dllp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-dllp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_relay_rollover_errors(self):
+    """
+    Getter method for relay_rollover_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/relay_rollover_errors (oc-yang:counter64)
+
+    YANG Description: Number of relay rollover errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__relay_rollover_errors
+      
+  def _set_relay_rollover_errors(self, v, load=False):
+    """
+    Setter method for relay_rollover_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/relay_rollover_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_relay_rollover_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_relay_rollover_errors() directly.
+
+    YANG Description: Number of relay rollover errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="relay-rollover-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """relay_rollover_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="relay-rollover-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__relay_rollover_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_relay_rollover_errors(self):
+    self.__relay_rollover_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="relay-rollover-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_replay_timeout_errors(self):
+    """
+    Getter method for replay_timeout_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/replay_timeout_errors (oc-yang:counter64)
+
+    YANG Description: Number of replay timeout errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__replay_timeout_errors
+      
+  def _set_replay_timeout_errors(self, v, load=False):
+    """
+    Setter method for replay_timeout_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/replay_timeout_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_replay_timeout_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_replay_timeout_errors() directly.
+
+    YANG Description: Number of replay timeout errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="replay-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """replay_timeout_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="replay-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__replay_timeout_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_replay_timeout_errors(self):
+    self.__replay_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="replay-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_advisory_non_fatal_errors(self):
+    """
+    Getter method for advisory_non_fatal_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/advisory_non_fatal_errors (oc-yang:counter64)
+
+    YANG Description: Number of advisory non fatal errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    return self.__advisory_non_fatal_errors
+      
+  def _set_advisory_non_fatal_errors(self, v, load=False):
+    """
+    Setter method for advisory_non_fatal_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/advisory_non_fatal_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_advisory_non_fatal_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_advisory_non_fatal_errors() directly.
+
+    YANG Description: Number of advisory non fatal errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="advisory-non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """advisory_non_fatal_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="advisory-non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__advisory_non_fatal_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_advisory_non_fatal_errors(self):
+    self.__advisory_non_fatal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="advisory-non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_internal_errors(self):
+    """
+    Getter method for internal_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/internal_errors (oc-yang:counter64)
+
+    YANG Description: Number of internal errors detected by PCIe device since the system
+booted, according to PCIe AER driver.
+    """
+    return self.__internal_errors
+      
+  def _set_internal_errors(self, v, load=False):
+    """
+    Setter method for internal_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/internal_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_internal_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_internal_errors() directly.
+
+    YANG Description: Number of internal errors detected by PCIe device since the system
+booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """internal_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__internal_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_internal_errors(self):
+    self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_hdr_log_overflow_errors(self):
+    """
+    Getter method for hdr_log_overflow_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/hdr_log_overflow_errors (oc-yang:counter64)
+
+    YANG Description: Number of header log overflow errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    return self.__hdr_log_overflow_errors
+      
+  def _set_hdr_log_overflow_errors(self, v, load=False):
+    """
+    Setter method for hdr_log_overflow_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/hdr_log_overflow_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_hdr_log_overflow_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_hdr_log_overflow_errors() directly.
+
+    YANG Description: Number of header log overflow errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="hdr-log-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """hdr_log_overflow_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="hdr-log-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__hdr_log_overflow_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_hdr_log_overflow_errors(self):
+    self.__hdr_log_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="hdr-log-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+  total_errors = __builtin__.property(_get_total_errors)
+  receiver_errors = __builtin__.property(_get_receiver_errors)
+  bad_tlp_errors = __builtin__.property(_get_bad_tlp_errors)
+  bad_dllp_errors = __builtin__.property(_get_bad_dllp_errors)
+  relay_rollover_errors = __builtin__.property(_get_relay_rollover_errors)
+  replay_timeout_errors = __builtin__.property(_get_replay_timeout_errors)
+  advisory_non_fatal_errors = __builtin__.property(_get_advisory_non_fatal_errors)
+  internal_errors = __builtin__.property(_get_internal_errors)
+  hdr_log_overflow_errors = __builtin__.property(_get_hdr_log_overflow_errors)
+
+
+  _pyangbind_elements = OrderedDict([('total_errors', total_errors), ('receiver_errors', receiver_errors), ('bad_tlp_errors', bad_tlp_errors), ('bad_dllp_errors', bad_dllp_errors), ('relay_rollover_errors', relay_rollover_errors), ('replay_timeout_errors', replay_timeout_errors), ('advisory_non_fatal_errors', advisory_non_fatal_errors), ('internal_errors', internal_errors), ('hdr_log_overflow_errors', hdr_log_overflow_errors), ])
+
+
+class correctable_errors(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/state/pcie/correctable-errors. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: The count of the correctable PCIe errors.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__total_errors','__receiver_errors','__bad_tlp_errors','__bad_dllp_errors','__relay_rollover_errors','__replay_timeout_errors','__advisory_non_fatal_errors','__internal_errors','__hdr_log_overflow_errors',)
+
+  _yang_name = 'correctable-errors'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__receiver_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__bad_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__bad_dllp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-dllp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__relay_rollover_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="relay-rollover-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__replay_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="replay-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__advisory_non_fatal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="advisory-non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__hdr_log_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="hdr-log-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'state', 'pcie', 'correctable-errors']
+
+  def _get_total_errors(self):
+    """
+    Getter method for total_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/total_errors (oc-yang:counter64)
+
+    YANG Description: Total number of correctable errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__total_errors
+      
+  def _set_total_errors(self, v, load=False):
+    """
+    Setter method for total_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/total_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_total_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_total_errors() directly.
+
+    YANG Description: Total number of correctable errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """total_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__total_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_total_errors(self):
+    self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_receiver_errors(self):
+    """
+    Getter method for receiver_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/receiver_errors (oc-yang:counter64)
+
+    YANG Description: Number of receiver errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__receiver_errors
+      
+  def _set_receiver_errors(self, v, load=False):
+    """
+    Setter method for receiver_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/receiver_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_receiver_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_receiver_errors() directly.
+
+    YANG Description: Number of receiver errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """receiver_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__receiver_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_receiver_errors(self):
+    self.__receiver_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_bad_tlp_errors(self):
+    """
+    Getter method for bad_tlp_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/bad_tlp_errors (oc-yang:counter64)
+
+    YANG Description: Number of TLPs with bad LCRC detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__bad_tlp_errors
+      
+  def _set_bad_tlp_errors(self, v, load=False):
+    """
+    Setter method for bad_tlp_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/bad_tlp_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_bad_tlp_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_bad_tlp_errors() directly.
+
+    YANG Description: Number of TLPs with bad LCRC detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """bad_tlp_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__bad_tlp_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_bad_tlp_errors(self):
+    self.__bad_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_bad_dllp_errors(self):
+    """
+    Getter method for bad_dllp_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/bad_dllp_errors (oc-yang:counter64)
+
+    YANG Description: Number of DLLPs with bad LCRC detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__bad_dllp_errors
+      
+  def _set_bad_dllp_errors(self, v, load=False):
+    """
+    Setter method for bad_dllp_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/bad_dllp_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_bad_dllp_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_bad_dllp_errors() directly.
+
+    YANG Description: Number of DLLPs with bad LCRC detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-dllp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """bad_dllp_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-dllp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__bad_dllp_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_bad_dllp_errors(self):
+    self.__bad_dllp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="bad-dllp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_relay_rollover_errors(self):
+    """
+    Getter method for relay_rollover_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/relay_rollover_errors (oc-yang:counter64)
+
+    YANG Description: Number of relay rollover errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__relay_rollover_errors
+      
+  def _set_relay_rollover_errors(self, v, load=False):
+    """
+    Setter method for relay_rollover_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/relay_rollover_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_relay_rollover_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_relay_rollover_errors() directly.
+
+    YANG Description: Number of relay rollover errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="relay-rollover-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """relay_rollover_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="relay-rollover-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__relay_rollover_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_relay_rollover_errors(self):
+    self.__relay_rollover_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="relay-rollover-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_replay_timeout_errors(self):
+    """
+    Getter method for replay_timeout_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/replay_timeout_errors (oc-yang:counter64)
+
+    YANG Description: Number of replay timeout errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__replay_timeout_errors
+      
+  def _set_replay_timeout_errors(self, v, load=False):
+    """
+    Setter method for replay_timeout_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/replay_timeout_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_replay_timeout_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_replay_timeout_errors() directly.
+
+    YANG Description: Number of replay timeout errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="replay-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """replay_timeout_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="replay-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__replay_timeout_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_replay_timeout_errors(self):
+    self.__replay_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="replay-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_advisory_non_fatal_errors(self):
+    """
+    Getter method for advisory_non_fatal_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/advisory_non_fatal_errors (oc-yang:counter64)
+
+    YANG Description: Number of advisory non fatal errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    return self.__advisory_non_fatal_errors
+      
+  def _set_advisory_non_fatal_errors(self, v, load=False):
+    """
+    Setter method for advisory_non_fatal_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/advisory_non_fatal_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_advisory_non_fatal_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_advisory_non_fatal_errors() directly.
+
+    YANG Description: Number of advisory non fatal errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="advisory-non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """advisory_non_fatal_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="advisory-non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__advisory_non_fatal_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_advisory_non_fatal_errors(self):
+    self.__advisory_non_fatal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="advisory-non-fatal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_internal_errors(self):
+    """
+    Getter method for internal_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/internal_errors (oc-yang:counter64)
+
+    YANG Description: Number of internal errors detected by PCIe device since the system
+booted, according to PCIe AER driver.
+    """
+    return self.__internal_errors
+      
+  def _set_internal_errors(self, v, load=False):
+    """
+    Setter method for internal_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/internal_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_internal_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_internal_errors() directly.
+
+    YANG Description: Number of internal errors detected by PCIe device since the system
+booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """internal_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__internal_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_internal_errors(self):
+    self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_hdr_log_overflow_errors(self):
+    """
+    Getter method for hdr_log_overflow_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/hdr_log_overflow_errors (oc-yang:counter64)
+
+    YANG Description: Number of header log overflow errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    return self.__hdr_log_overflow_errors
+      
+  def _set_hdr_log_overflow_errors(self, v, load=False):
+    """
+    Setter method for hdr_log_overflow_errors, mapped from YANG variable /components/component/state/pcie/correctable_errors/hdr_log_overflow_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_hdr_log_overflow_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_hdr_log_overflow_errors() directly.
+
+    YANG Description: Number of header log overflow errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="hdr-log-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """hdr_log_overflow_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="hdr-log-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__hdr_log_overflow_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_hdr_log_overflow_errors(self):
+    self.__hdr_log_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="hdr-log-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+  total_errors = __builtin__.property(_get_total_errors)
+  receiver_errors = __builtin__.property(_get_receiver_errors)
+  bad_tlp_errors = __builtin__.property(_get_bad_tlp_errors)
+  bad_dllp_errors = __builtin__.property(_get_bad_dllp_errors)
+  relay_rollover_errors = __builtin__.property(_get_relay_rollover_errors)
+  replay_timeout_errors = __builtin__.property(_get_replay_timeout_errors)
+  advisory_non_fatal_errors = __builtin__.property(_get_advisory_non_fatal_errors)
+  internal_errors = __builtin__.property(_get_internal_errors)
+  hdr_log_overflow_errors = __builtin__.property(_get_hdr_log_overflow_errors)
+
+
+  _pyangbind_elements = OrderedDict([('total_errors', total_errors), ('receiver_errors', receiver_errors), ('bad_tlp_errors', bad_tlp_errors), ('bad_dllp_errors', bad_dllp_errors), ('relay_rollover_errors', relay_rollover_errors), ('replay_timeout_errors', replay_timeout_errors), ('advisory_non_fatal_errors', advisory_non_fatal_errors), ('internal_errors', internal_errors), ('hdr_log_overflow_errors', hdr_log_overflow_errors), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/state/pcie/fatal_errors/__init__.py b/hackfest/netconf-oc/openconfig/components/component/state/pcie/fatal_errors/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..12185542ccc99155d1fd1bd22407db0421a753c0
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/state/pcie/fatal_errors/__init__.py
@@ -0,0 +1,1604 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class fatal_errors(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/state/pcie/fatal-errors. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: The count of the fatal PCIe errors.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__total_errors','__undefined_errors','__data_link_errors','__surprise_down_errors','__poisoned_tlp_errors','__flow_control_protocol_errors','__completion_timeout_errors','__completion_abort_errors','__unexpected_completion_errors','__receiver_overflow_errors','__malformed_tlp_errors','__ecrc_errors','__unsupported_request_errors','__acs_violation_errors','__internal_errors','__blocked_tlp_errors','__atomic_op_blocked_errors','__tlp_prefix_blocked_errors',)
+
+  _yang_name = 'fatal-errors'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__undefined_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__data_link_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__surprise_down_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__poisoned_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__flow_control_protocol_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__completion_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__completion_abort_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__unexpected_completion_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__receiver_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__malformed_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__ecrc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__unsupported_request_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__acs_violation_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__blocked_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__atomic_op_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__tlp_prefix_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'state', 'pcie', 'fatal-errors']
+
+  def _get_total_errors(self):
+    """
+    Getter method for total_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/total_errors (oc-yang:counter64)
+
+    YANG Description: Total number of uncorrectable errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__total_errors
+      
+  def _set_total_errors(self, v, load=False):
+    """
+    Setter method for total_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/total_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_total_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_total_errors() directly.
+
+    YANG Description: Total number of uncorrectable errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """total_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__total_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_total_errors(self):
+    self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_undefined_errors(self):
+    """
+    Getter method for undefined_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/undefined_errors (oc-yang:counter64)
+
+    YANG Description: Number of undefined errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__undefined_errors
+      
+  def _set_undefined_errors(self, v, load=False):
+    """
+    Setter method for undefined_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/undefined_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_undefined_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_undefined_errors() directly.
+
+    YANG Description: Number of undefined errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """undefined_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__undefined_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_undefined_errors(self):
+    self.__undefined_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_data_link_errors(self):
+    """
+    Getter method for data_link_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/data_link_errors (oc-yang:counter64)
+
+    YANG Description: Number of data-link errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__data_link_errors
+      
+  def _set_data_link_errors(self, v, load=False):
+    """
+    Setter method for data_link_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/data_link_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_data_link_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_data_link_errors() directly.
+
+    YANG Description: Number of data-link errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """data_link_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__data_link_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_data_link_errors(self):
+    self.__data_link_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_surprise_down_errors(self):
+    """
+    Getter method for surprise_down_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/surprise_down_errors (oc-yang:counter64)
+
+    YANG Description: Number of unexpected link down errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__surprise_down_errors
+      
+  def _set_surprise_down_errors(self, v, load=False):
+    """
+    Setter method for surprise_down_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/surprise_down_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_surprise_down_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_surprise_down_errors() directly.
+
+    YANG Description: Number of unexpected link down errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """surprise_down_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__surprise_down_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_surprise_down_errors(self):
+    self.__surprise_down_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_poisoned_tlp_errors(self):
+    """
+    Getter method for poisoned_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/poisoned_tlp_errors (oc-yang:counter64)
+
+    YANG Description: Number of poisoned TLP errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__poisoned_tlp_errors
+      
+  def _set_poisoned_tlp_errors(self, v, load=False):
+    """
+    Setter method for poisoned_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/poisoned_tlp_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_poisoned_tlp_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_poisoned_tlp_errors() directly.
+
+    YANG Description: Number of poisoned TLP errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """poisoned_tlp_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__poisoned_tlp_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_poisoned_tlp_errors(self):
+    self.__poisoned_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_flow_control_protocol_errors(self):
+    """
+    Getter method for flow_control_protocol_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/flow_control_protocol_errors (oc-yang:counter64)
+
+    YANG Description: Number of flow control protocol errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__flow_control_protocol_errors
+      
+  def _set_flow_control_protocol_errors(self, v, load=False):
+    """
+    Setter method for flow_control_protocol_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/flow_control_protocol_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_flow_control_protocol_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_flow_control_protocol_errors() directly.
+
+    YANG Description: Number of flow control protocol errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """flow_control_protocol_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__flow_control_protocol_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_flow_control_protocol_errors(self):
+    self.__flow_control_protocol_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_completion_timeout_errors(self):
+    """
+    Getter method for completion_timeout_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/completion_timeout_errors (oc-yang:counter64)
+
+    YANG Description: Number of completion timeout errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__completion_timeout_errors
+      
+  def _set_completion_timeout_errors(self, v, load=False):
+    """
+    Setter method for completion_timeout_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/completion_timeout_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_completion_timeout_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_completion_timeout_errors() directly.
+
+    YANG Description: Number of completion timeout errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """completion_timeout_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__completion_timeout_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_completion_timeout_errors(self):
+    self.__completion_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_completion_abort_errors(self):
+    """
+    Getter method for completion_abort_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/completion_abort_errors (oc-yang:counter64)
+
+    YANG Description: Number of completion abort errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__completion_abort_errors
+      
+  def _set_completion_abort_errors(self, v, load=False):
+    """
+    Setter method for completion_abort_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/completion_abort_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_completion_abort_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_completion_abort_errors() directly.
+
+    YANG Description: Number of completion abort errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """completion_abort_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__completion_abort_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_completion_abort_errors(self):
+    self.__completion_abort_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_unexpected_completion_errors(self):
+    """
+    Getter method for unexpected_completion_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/unexpected_completion_errors (oc-yang:counter64)
+
+    YANG Description: Number of unexpected completion errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__unexpected_completion_errors
+      
+  def _set_unexpected_completion_errors(self, v, load=False):
+    """
+    Setter method for unexpected_completion_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/unexpected_completion_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_unexpected_completion_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_unexpected_completion_errors() directly.
+
+    YANG Description: Number of unexpected completion errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """unexpected_completion_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__unexpected_completion_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_unexpected_completion_errors(self):
+    self.__unexpected_completion_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_receiver_overflow_errors(self):
+    """
+    Getter method for receiver_overflow_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/receiver_overflow_errors (oc-yang:counter64)
+
+    YANG Description: Number of receiver overflow errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__receiver_overflow_errors
+      
+  def _set_receiver_overflow_errors(self, v, load=False):
+    """
+    Setter method for receiver_overflow_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/receiver_overflow_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_receiver_overflow_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_receiver_overflow_errors() directly.
+
+    YANG Description: Number of receiver overflow errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """receiver_overflow_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__receiver_overflow_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_receiver_overflow_errors(self):
+    self.__receiver_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_malformed_tlp_errors(self):
+    """
+    Getter method for malformed_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/malformed_tlp_errors (oc-yang:counter64)
+
+    YANG Description: Number of malformed TLP errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__malformed_tlp_errors
+      
+  def _set_malformed_tlp_errors(self, v, load=False):
+    """
+    Setter method for malformed_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/malformed_tlp_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_malformed_tlp_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_malformed_tlp_errors() directly.
+
+    YANG Description: Number of malformed TLP errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """malformed_tlp_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__malformed_tlp_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_malformed_tlp_errors(self):
+    self.__malformed_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_ecrc_errors(self):
+    """
+    Getter method for ecrc_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/ecrc_errors (oc-yang:counter64)
+
+    YANG Description: Number of ECRC errors detected by PCIe device since the system
+booted, according to PCIe AER driver.
+    """
+    return self.__ecrc_errors
+      
+  def _set_ecrc_errors(self, v, load=False):
+    """
+    Setter method for ecrc_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/ecrc_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_ecrc_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_ecrc_errors() directly.
+
+    YANG Description: Number of ECRC errors detected by PCIe device since the system
+booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """ecrc_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__ecrc_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_ecrc_errors(self):
+    self.__ecrc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_unsupported_request_errors(self):
+    """
+    Getter method for unsupported_request_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/unsupported_request_errors (oc-yang:counter64)
+
+    YANG Description: Number of unsupported request errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__unsupported_request_errors
+      
+  def _set_unsupported_request_errors(self, v, load=False):
+    """
+    Setter method for unsupported_request_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/unsupported_request_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_unsupported_request_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_unsupported_request_errors() directly.
+
+    YANG Description: Number of unsupported request errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """unsupported_request_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__unsupported_request_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_unsupported_request_errors(self):
+    self.__unsupported_request_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_acs_violation_errors(self):
+    """
+    Getter method for acs_violation_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/acs_violation_errors (oc-yang:counter64)
+
+    YANG Description: Number of access control errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    return self.__acs_violation_errors
+      
+  def _set_acs_violation_errors(self, v, load=False):
+    """
+    Setter method for acs_violation_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/acs_violation_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_acs_violation_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_acs_violation_errors() directly.
+
+    YANG Description: Number of access control errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """acs_violation_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__acs_violation_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_acs_violation_errors(self):
+    self.__acs_violation_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_internal_errors(self):
+    """
+    Getter method for internal_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/internal_errors (oc-yang:counter64)
+
+    YANG Description: Number of internal errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__internal_errors
+      
+  def _set_internal_errors(self, v, load=False):
+    """
+    Setter method for internal_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/internal_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_internal_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_internal_errors() directly.
+
+    YANG Description: Number of internal errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """internal_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__internal_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_internal_errors(self):
+    self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_blocked_tlp_errors(self):
+    """
+    Getter method for blocked_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/blocked_tlp_errors (oc-yang:counter64)
+
+    YANG Description: Number of blocked TLP errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    return self.__blocked_tlp_errors
+      
+  def _set_blocked_tlp_errors(self, v, load=False):
+    """
+    Setter method for blocked_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/blocked_tlp_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_blocked_tlp_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_blocked_tlp_errors() directly.
+
+    YANG Description: Number of blocked TLP errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """blocked_tlp_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__blocked_tlp_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_blocked_tlp_errors(self):
+    self.__blocked_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_atomic_op_blocked_errors(self):
+    """
+    Getter method for atomic_op_blocked_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/atomic_op_blocked_errors (oc-yang:counter64)
+
+    YANG Description: Number of atomic operation blocked errors detected by PCIe
+device since the system booted, according to PCIe AER driver.
+    """
+    return self.__atomic_op_blocked_errors
+      
+  def _set_atomic_op_blocked_errors(self, v, load=False):
+    """
+    Setter method for atomic_op_blocked_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/atomic_op_blocked_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_atomic_op_blocked_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_atomic_op_blocked_errors() directly.
+
+    YANG Description: Number of atomic operation blocked errors detected by PCIe
+device since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """atomic_op_blocked_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__atomic_op_blocked_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_atomic_op_blocked_errors(self):
+    self.__atomic_op_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_tlp_prefix_blocked_errors(self):
+    """
+    Getter method for tlp_prefix_blocked_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/tlp_prefix_blocked_errors (oc-yang:counter64)
+
+    YANG Description: Number of TLP prefix blocked errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__tlp_prefix_blocked_errors
+      
+  def _set_tlp_prefix_blocked_errors(self, v, load=False):
+    """
+    Setter method for tlp_prefix_blocked_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/tlp_prefix_blocked_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_tlp_prefix_blocked_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_tlp_prefix_blocked_errors() directly.
+
+    YANG Description: Number of TLP prefix blocked errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """tlp_prefix_blocked_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__tlp_prefix_blocked_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_tlp_prefix_blocked_errors(self):
+    self.__tlp_prefix_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+  total_errors = __builtin__.property(_get_total_errors)
+  undefined_errors = __builtin__.property(_get_undefined_errors)
+  data_link_errors = __builtin__.property(_get_data_link_errors)
+  surprise_down_errors = __builtin__.property(_get_surprise_down_errors)
+  poisoned_tlp_errors = __builtin__.property(_get_poisoned_tlp_errors)
+  flow_control_protocol_errors = __builtin__.property(_get_flow_control_protocol_errors)
+  completion_timeout_errors = __builtin__.property(_get_completion_timeout_errors)
+  completion_abort_errors = __builtin__.property(_get_completion_abort_errors)
+  unexpected_completion_errors = __builtin__.property(_get_unexpected_completion_errors)
+  receiver_overflow_errors = __builtin__.property(_get_receiver_overflow_errors)
+  malformed_tlp_errors = __builtin__.property(_get_malformed_tlp_errors)
+  ecrc_errors = __builtin__.property(_get_ecrc_errors)
+  unsupported_request_errors = __builtin__.property(_get_unsupported_request_errors)
+  acs_violation_errors = __builtin__.property(_get_acs_violation_errors)
+  internal_errors = __builtin__.property(_get_internal_errors)
+  blocked_tlp_errors = __builtin__.property(_get_blocked_tlp_errors)
+  atomic_op_blocked_errors = __builtin__.property(_get_atomic_op_blocked_errors)
+  tlp_prefix_blocked_errors = __builtin__.property(_get_tlp_prefix_blocked_errors)
+
+
+  _pyangbind_elements = OrderedDict([('total_errors', total_errors), ('undefined_errors', undefined_errors), ('data_link_errors', data_link_errors), ('surprise_down_errors', surprise_down_errors), ('poisoned_tlp_errors', poisoned_tlp_errors), ('flow_control_protocol_errors', flow_control_protocol_errors), ('completion_timeout_errors', completion_timeout_errors), ('completion_abort_errors', completion_abort_errors), ('unexpected_completion_errors', unexpected_completion_errors), ('receiver_overflow_errors', receiver_overflow_errors), ('malformed_tlp_errors', malformed_tlp_errors), ('ecrc_errors', ecrc_errors), ('unsupported_request_errors', unsupported_request_errors), ('acs_violation_errors', acs_violation_errors), ('internal_errors', internal_errors), ('blocked_tlp_errors', blocked_tlp_errors), ('atomic_op_blocked_errors', atomic_op_blocked_errors), ('tlp_prefix_blocked_errors', tlp_prefix_blocked_errors), ])
+
+
+class fatal_errors(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/state/pcie/fatal-errors. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: The count of the fatal PCIe errors.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__total_errors','__undefined_errors','__data_link_errors','__surprise_down_errors','__poisoned_tlp_errors','__flow_control_protocol_errors','__completion_timeout_errors','__completion_abort_errors','__unexpected_completion_errors','__receiver_overflow_errors','__malformed_tlp_errors','__ecrc_errors','__unsupported_request_errors','__acs_violation_errors','__internal_errors','__blocked_tlp_errors','__atomic_op_blocked_errors','__tlp_prefix_blocked_errors',)
+
+  _yang_name = 'fatal-errors'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__undefined_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__data_link_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__surprise_down_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__poisoned_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__flow_control_protocol_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__completion_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__completion_abort_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__unexpected_completion_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__receiver_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__malformed_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__ecrc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__unsupported_request_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__acs_violation_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__blocked_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__atomic_op_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__tlp_prefix_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'state', 'pcie', 'fatal-errors']
+
+  def _get_total_errors(self):
+    """
+    Getter method for total_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/total_errors (oc-yang:counter64)
+
+    YANG Description: Total number of uncorrectable errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__total_errors
+      
+  def _set_total_errors(self, v, load=False):
+    """
+    Setter method for total_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/total_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_total_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_total_errors() directly.
+
+    YANG Description: Total number of uncorrectable errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """total_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__total_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_total_errors(self):
+    self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_undefined_errors(self):
+    """
+    Getter method for undefined_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/undefined_errors (oc-yang:counter64)
+
+    YANG Description: Number of undefined errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__undefined_errors
+      
+  def _set_undefined_errors(self, v, load=False):
+    """
+    Setter method for undefined_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/undefined_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_undefined_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_undefined_errors() directly.
+
+    YANG Description: Number of undefined errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """undefined_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__undefined_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_undefined_errors(self):
+    self.__undefined_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_data_link_errors(self):
+    """
+    Getter method for data_link_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/data_link_errors (oc-yang:counter64)
+
+    YANG Description: Number of data-link errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__data_link_errors
+      
+  def _set_data_link_errors(self, v, load=False):
+    """
+    Setter method for data_link_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/data_link_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_data_link_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_data_link_errors() directly.
+
+    YANG Description: Number of data-link errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """data_link_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__data_link_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_data_link_errors(self):
+    self.__data_link_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_surprise_down_errors(self):
+    """
+    Getter method for surprise_down_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/surprise_down_errors (oc-yang:counter64)
+
+    YANG Description: Number of unexpected link down errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__surprise_down_errors
+      
+  def _set_surprise_down_errors(self, v, load=False):
+    """
+    Setter method for surprise_down_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/surprise_down_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_surprise_down_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_surprise_down_errors() directly.
+
+    YANG Description: Number of unexpected link down errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """surprise_down_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__surprise_down_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_surprise_down_errors(self):
+    self.__surprise_down_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_poisoned_tlp_errors(self):
+    """
+    Getter method for poisoned_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/poisoned_tlp_errors (oc-yang:counter64)
+
+    YANG Description: Number of poisoned TLP errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__poisoned_tlp_errors
+      
+  def _set_poisoned_tlp_errors(self, v, load=False):
+    """
+    Setter method for poisoned_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/poisoned_tlp_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_poisoned_tlp_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_poisoned_tlp_errors() directly.
+
+    YANG Description: Number of poisoned TLP errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """poisoned_tlp_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__poisoned_tlp_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_poisoned_tlp_errors(self):
+    self.__poisoned_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_flow_control_protocol_errors(self):
+    """
+    Getter method for flow_control_protocol_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/flow_control_protocol_errors (oc-yang:counter64)
+
+    YANG Description: Number of flow control protocol errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__flow_control_protocol_errors
+      
+  def _set_flow_control_protocol_errors(self, v, load=False):
+    """
+    Setter method for flow_control_protocol_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/flow_control_protocol_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_flow_control_protocol_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_flow_control_protocol_errors() directly.
+
+    YANG Description: Number of flow control protocol errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """flow_control_protocol_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__flow_control_protocol_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_flow_control_protocol_errors(self):
+    self.__flow_control_protocol_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_completion_timeout_errors(self):
+    """
+    Getter method for completion_timeout_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/completion_timeout_errors (oc-yang:counter64)
+
+    YANG Description: Number of completion timeout errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__completion_timeout_errors
+      
+  def _set_completion_timeout_errors(self, v, load=False):
+    """
+    Setter method for completion_timeout_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/completion_timeout_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_completion_timeout_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_completion_timeout_errors() directly.
+
+    YANG Description: Number of completion timeout errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """completion_timeout_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__completion_timeout_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_completion_timeout_errors(self):
+    self.__completion_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_completion_abort_errors(self):
+    """
+    Getter method for completion_abort_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/completion_abort_errors (oc-yang:counter64)
+
+    YANG Description: Number of completion abort errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__completion_abort_errors
+      
+  def _set_completion_abort_errors(self, v, load=False):
+    """
+    Setter method for completion_abort_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/completion_abort_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_completion_abort_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_completion_abort_errors() directly.
+
+    YANG Description: Number of completion abort errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """completion_abort_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__completion_abort_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_completion_abort_errors(self):
+    self.__completion_abort_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_unexpected_completion_errors(self):
+    """
+    Getter method for unexpected_completion_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/unexpected_completion_errors (oc-yang:counter64)
+
+    YANG Description: Number of unexpected completion errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__unexpected_completion_errors
+      
+  def _set_unexpected_completion_errors(self, v, load=False):
+    """
+    Setter method for unexpected_completion_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/unexpected_completion_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_unexpected_completion_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_unexpected_completion_errors() directly.
+
+    YANG Description: Number of unexpected completion errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """unexpected_completion_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__unexpected_completion_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_unexpected_completion_errors(self):
+    self.__unexpected_completion_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_receiver_overflow_errors(self):
+    """
+    Getter method for receiver_overflow_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/receiver_overflow_errors (oc-yang:counter64)
+
+    YANG Description: Number of receiver overflow errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__receiver_overflow_errors
+      
+  def _set_receiver_overflow_errors(self, v, load=False):
+    """
+    Setter method for receiver_overflow_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/receiver_overflow_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_receiver_overflow_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_receiver_overflow_errors() directly.
+
+    YANG Description: Number of receiver overflow errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """receiver_overflow_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__receiver_overflow_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_receiver_overflow_errors(self):
+    self.__receiver_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_malformed_tlp_errors(self):
+    """
+    Getter method for malformed_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/malformed_tlp_errors (oc-yang:counter64)
+
+    YANG Description: Number of malformed TLP errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__malformed_tlp_errors
+      
+  def _set_malformed_tlp_errors(self, v, load=False):
+    """
+    Setter method for malformed_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/malformed_tlp_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_malformed_tlp_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_malformed_tlp_errors() directly.
+
+    YANG Description: Number of malformed TLP errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """malformed_tlp_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__malformed_tlp_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_malformed_tlp_errors(self):
+    self.__malformed_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_ecrc_errors(self):
+    """
+    Getter method for ecrc_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/ecrc_errors (oc-yang:counter64)
+
+    YANG Description: Number of ECRC errors detected by PCIe device since the system
+booted, according to PCIe AER driver.
+    """
+    return self.__ecrc_errors
+      
+  def _set_ecrc_errors(self, v, load=False):
+    """
+    Setter method for ecrc_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/ecrc_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_ecrc_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_ecrc_errors() directly.
+
+    YANG Description: Number of ECRC errors detected by PCIe device since the system
+booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """ecrc_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__ecrc_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_ecrc_errors(self):
+    self.__ecrc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_unsupported_request_errors(self):
+    """
+    Getter method for unsupported_request_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/unsupported_request_errors (oc-yang:counter64)
+
+    YANG Description: Number of unsupported request errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__unsupported_request_errors
+      
+  def _set_unsupported_request_errors(self, v, load=False):
+    """
+    Setter method for unsupported_request_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/unsupported_request_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_unsupported_request_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_unsupported_request_errors() directly.
+
+    YANG Description: Number of unsupported request errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """unsupported_request_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__unsupported_request_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_unsupported_request_errors(self):
+    self.__unsupported_request_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_acs_violation_errors(self):
+    """
+    Getter method for acs_violation_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/acs_violation_errors (oc-yang:counter64)
+
+    YANG Description: Number of access control errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    return self.__acs_violation_errors
+      
+  def _set_acs_violation_errors(self, v, load=False):
+    """
+    Setter method for acs_violation_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/acs_violation_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_acs_violation_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_acs_violation_errors() directly.
+
+    YANG Description: Number of access control errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """acs_violation_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__acs_violation_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_acs_violation_errors(self):
+    self.__acs_violation_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_internal_errors(self):
+    """
+    Getter method for internal_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/internal_errors (oc-yang:counter64)
+
+    YANG Description: Number of internal errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__internal_errors
+      
+  def _set_internal_errors(self, v, load=False):
+    """
+    Setter method for internal_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/internal_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_internal_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_internal_errors() directly.
+
+    YANG Description: Number of internal errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """internal_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__internal_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_internal_errors(self):
+    self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_blocked_tlp_errors(self):
+    """
+    Getter method for blocked_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/blocked_tlp_errors (oc-yang:counter64)
+
+    YANG Description: Number of blocked TLP errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    return self.__blocked_tlp_errors
+      
+  def _set_blocked_tlp_errors(self, v, load=False):
+    """
+    Setter method for blocked_tlp_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/blocked_tlp_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_blocked_tlp_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_blocked_tlp_errors() directly.
+
+    YANG Description: Number of blocked TLP errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """blocked_tlp_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__blocked_tlp_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_blocked_tlp_errors(self):
+    self.__blocked_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_atomic_op_blocked_errors(self):
+    """
+    Getter method for atomic_op_blocked_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/atomic_op_blocked_errors (oc-yang:counter64)
+
+    YANG Description: Number of atomic operation blocked errors detected by PCIe
+device since the system booted, according to PCIe AER driver.
+    """
+    return self.__atomic_op_blocked_errors
+      
+  def _set_atomic_op_blocked_errors(self, v, load=False):
+    """
+    Setter method for atomic_op_blocked_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/atomic_op_blocked_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_atomic_op_blocked_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_atomic_op_blocked_errors() directly.
+
+    YANG Description: Number of atomic operation blocked errors detected by PCIe
+device since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """atomic_op_blocked_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__atomic_op_blocked_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_atomic_op_blocked_errors(self):
+    self.__atomic_op_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_tlp_prefix_blocked_errors(self):
+    """
+    Getter method for tlp_prefix_blocked_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/tlp_prefix_blocked_errors (oc-yang:counter64)
+
+    YANG Description: Number of TLP prefix blocked errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__tlp_prefix_blocked_errors
+      
+  def _set_tlp_prefix_blocked_errors(self, v, load=False):
+    """
+    Setter method for tlp_prefix_blocked_errors, mapped from YANG variable /components/component/state/pcie/fatal_errors/tlp_prefix_blocked_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_tlp_prefix_blocked_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_tlp_prefix_blocked_errors() directly.
+
+    YANG Description: Number of TLP prefix blocked errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """tlp_prefix_blocked_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__tlp_prefix_blocked_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_tlp_prefix_blocked_errors(self):
+    self.__tlp_prefix_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+  total_errors = __builtin__.property(_get_total_errors)
+  undefined_errors = __builtin__.property(_get_undefined_errors)
+  data_link_errors = __builtin__.property(_get_data_link_errors)
+  surprise_down_errors = __builtin__.property(_get_surprise_down_errors)
+  poisoned_tlp_errors = __builtin__.property(_get_poisoned_tlp_errors)
+  flow_control_protocol_errors = __builtin__.property(_get_flow_control_protocol_errors)
+  completion_timeout_errors = __builtin__.property(_get_completion_timeout_errors)
+  completion_abort_errors = __builtin__.property(_get_completion_abort_errors)
+  unexpected_completion_errors = __builtin__.property(_get_unexpected_completion_errors)
+  receiver_overflow_errors = __builtin__.property(_get_receiver_overflow_errors)
+  malformed_tlp_errors = __builtin__.property(_get_malformed_tlp_errors)
+  ecrc_errors = __builtin__.property(_get_ecrc_errors)
+  unsupported_request_errors = __builtin__.property(_get_unsupported_request_errors)
+  acs_violation_errors = __builtin__.property(_get_acs_violation_errors)
+  internal_errors = __builtin__.property(_get_internal_errors)
+  blocked_tlp_errors = __builtin__.property(_get_blocked_tlp_errors)
+  atomic_op_blocked_errors = __builtin__.property(_get_atomic_op_blocked_errors)
+  tlp_prefix_blocked_errors = __builtin__.property(_get_tlp_prefix_blocked_errors)
+
+
+  _pyangbind_elements = OrderedDict([('total_errors', total_errors), ('undefined_errors', undefined_errors), ('data_link_errors', data_link_errors), ('surprise_down_errors', surprise_down_errors), ('poisoned_tlp_errors', poisoned_tlp_errors), ('flow_control_protocol_errors', flow_control_protocol_errors), ('completion_timeout_errors', completion_timeout_errors), ('completion_abort_errors', completion_abort_errors), ('unexpected_completion_errors', unexpected_completion_errors), ('receiver_overflow_errors', receiver_overflow_errors), ('malformed_tlp_errors', malformed_tlp_errors), ('ecrc_errors', ecrc_errors), ('unsupported_request_errors', unsupported_request_errors), ('acs_violation_errors', acs_violation_errors), ('internal_errors', internal_errors), ('blocked_tlp_errors', blocked_tlp_errors), ('atomic_op_blocked_errors', atomic_op_blocked_errors), ('tlp_prefix_blocked_errors', tlp_prefix_blocked_errors), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/state/pcie/non_fatal_errors/__init__.py b/hackfest/netconf-oc/openconfig/components/component/state/pcie/non_fatal_errors/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..02674f40f1f19a8023fc756bb1b2225f7750e645
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/state/pcie/non_fatal_errors/__init__.py
@@ -0,0 +1,1604 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class non_fatal_errors(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/state/pcie/non-fatal-errors. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: The count of the non-fatal PCIe errors.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__total_errors','__undefined_errors','__data_link_errors','__surprise_down_errors','__poisoned_tlp_errors','__flow_control_protocol_errors','__completion_timeout_errors','__completion_abort_errors','__unexpected_completion_errors','__receiver_overflow_errors','__malformed_tlp_errors','__ecrc_errors','__unsupported_request_errors','__acs_violation_errors','__internal_errors','__blocked_tlp_errors','__atomic_op_blocked_errors','__tlp_prefix_blocked_errors',)
+
+  _yang_name = 'non-fatal-errors'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__undefined_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__data_link_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__surprise_down_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__poisoned_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__flow_control_protocol_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__completion_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__completion_abort_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__unexpected_completion_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__receiver_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__malformed_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__ecrc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__unsupported_request_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__acs_violation_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__blocked_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__atomic_op_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__tlp_prefix_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'state', 'pcie', 'non-fatal-errors']
+
+  def _get_total_errors(self):
+    """
+    Getter method for total_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/total_errors (oc-yang:counter64)
+
+    YANG Description: Total number of uncorrectable errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__total_errors
+      
+  def _set_total_errors(self, v, load=False):
+    """
+    Setter method for total_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/total_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_total_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_total_errors() directly.
+
+    YANG Description: Total number of uncorrectable errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """total_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__total_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_total_errors(self):
+    self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_undefined_errors(self):
+    """
+    Getter method for undefined_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/undefined_errors (oc-yang:counter64)
+
+    YANG Description: Number of undefined errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__undefined_errors
+      
+  def _set_undefined_errors(self, v, load=False):
+    """
+    Setter method for undefined_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/undefined_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_undefined_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_undefined_errors() directly.
+
+    YANG Description: Number of undefined errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """undefined_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__undefined_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_undefined_errors(self):
+    self.__undefined_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_data_link_errors(self):
+    """
+    Getter method for data_link_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/data_link_errors (oc-yang:counter64)
+
+    YANG Description: Number of data-link errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__data_link_errors
+      
+  def _set_data_link_errors(self, v, load=False):
+    """
+    Setter method for data_link_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/data_link_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_data_link_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_data_link_errors() directly.
+
+    YANG Description: Number of data-link errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """data_link_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__data_link_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_data_link_errors(self):
+    self.__data_link_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_surprise_down_errors(self):
+    """
+    Getter method for surprise_down_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/surprise_down_errors (oc-yang:counter64)
+
+    YANG Description: Number of unexpected link down errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__surprise_down_errors
+      
+  def _set_surprise_down_errors(self, v, load=False):
+    """
+    Setter method for surprise_down_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/surprise_down_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_surprise_down_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_surprise_down_errors() directly.
+
+    YANG Description: Number of unexpected link down errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """surprise_down_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__surprise_down_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_surprise_down_errors(self):
+    self.__surprise_down_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_poisoned_tlp_errors(self):
+    """
+    Getter method for poisoned_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/poisoned_tlp_errors (oc-yang:counter64)
+
+    YANG Description: Number of poisoned TLP errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__poisoned_tlp_errors
+      
+  def _set_poisoned_tlp_errors(self, v, load=False):
+    """
+    Setter method for poisoned_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/poisoned_tlp_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_poisoned_tlp_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_poisoned_tlp_errors() directly.
+
+    YANG Description: Number of poisoned TLP errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """poisoned_tlp_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__poisoned_tlp_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_poisoned_tlp_errors(self):
+    self.__poisoned_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_flow_control_protocol_errors(self):
+    """
+    Getter method for flow_control_protocol_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/flow_control_protocol_errors (oc-yang:counter64)
+
+    YANG Description: Number of flow control protocol errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__flow_control_protocol_errors
+      
+  def _set_flow_control_protocol_errors(self, v, load=False):
+    """
+    Setter method for flow_control_protocol_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/flow_control_protocol_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_flow_control_protocol_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_flow_control_protocol_errors() directly.
+
+    YANG Description: Number of flow control protocol errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """flow_control_protocol_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__flow_control_protocol_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_flow_control_protocol_errors(self):
+    self.__flow_control_protocol_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_completion_timeout_errors(self):
+    """
+    Getter method for completion_timeout_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/completion_timeout_errors (oc-yang:counter64)
+
+    YANG Description: Number of completion timeout errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__completion_timeout_errors
+      
+  def _set_completion_timeout_errors(self, v, load=False):
+    """
+    Setter method for completion_timeout_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/completion_timeout_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_completion_timeout_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_completion_timeout_errors() directly.
+
+    YANG Description: Number of completion timeout errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """completion_timeout_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__completion_timeout_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_completion_timeout_errors(self):
+    self.__completion_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_completion_abort_errors(self):
+    """
+    Getter method for completion_abort_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/completion_abort_errors (oc-yang:counter64)
+
+    YANG Description: Number of completion abort errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__completion_abort_errors
+      
+  def _set_completion_abort_errors(self, v, load=False):
+    """
+    Setter method for completion_abort_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/completion_abort_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_completion_abort_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_completion_abort_errors() directly.
+
+    YANG Description: Number of completion abort errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """completion_abort_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__completion_abort_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_completion_abort_errors(self):
+    self.__completion_abort_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_unexpected_completion_errors(self):
+    """
+    Getter method for unexpected_completion_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/unexpected_completion_errors (oc-yang:counter64)
+
+    YANG Description: Number of unexpected completion errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__unexpected_completion_errors
+      
+  def _set_unexpected_completion_errors(self, v, load=False):
+    """
+    Setter method for unexpected_completion_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/unexpected_completion_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_unexpected_completion_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_unexpected_completion_errors() directly.
+
+    YANG Description: Number of unexpected completion errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """unexpected_completion_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__unexpected_completion_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_unexpected_completion_errors(self):
+    self.__unexpected_completion_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_receiver_overflow_errors(self):
+    """
+    Getter method for receiver_overflow_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/receiver_overflow_errors (oc-yang:counter64)
+
+    YANG Description: Number of receiver overflow errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__receiver_overflow_errors
+      
+  def _set_receiver_overflow_errors(self, v, load=False):
+    """
+    Setter method for receiver_overflow_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/receiver_overflow_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_receiver_overflow_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_receiver_overflow_errors() directly.
+
+    YANG Description: Number of receiver overflow errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """receiver_overflow_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__receiver_overflow_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_receiver_overflow_errors(self):
+    self.__receiver_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_malformed_tlp_errors(self):
+    """
+    Getter method for malformed_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/malformed_tlp_errors (oc-yang:counter64)
+
+    YANG Description: Number of malformed TLP errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__malformed_tlp_errors
+      
+  def _set_malformed_tlp_errors(self, v, load=False):
+    """
+    Setter method for malformed_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/malformed_tlp_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_malformed_tlp_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_malformed_tlp_errors() directly.
+
+    YANG Description: Number of malformed TLP errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """malformed_tlp_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__malformed_tlp_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_malformed_tlp_errors(self):
+    self.__malformed_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_ecrc_errors(self):
+    """
+    Getter method for ecrc_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/ecrc_errors (oc-yang:counter64)
+
+    YANG Description: Number of ECRC errors detected by PCIe device since the system
+booted, according to PCIe AER driver.
+    """
+    return self.__ecrc_errors
+      
+  def _set_ecrc_errors(self, v, load=False):
+    """
+    Setter method for ecrc_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/ecrc_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_ecrc_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_ecrc_errors() directly.
+
+    YANG Description: Number of ECRC errors detected by PCIe device since the system
+booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """ecrc_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__ecrc_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_ecrc_errors(self):
+    self.__ecrc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_unsupported_request_errors(self):
+    """
+    Getter method for unsupported_request_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/unsupported_request_errors (oc-yang:counter64)
+
+    YANG Description: Number of unsupported request errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__unsupported_request_errors
+      
+  def _set_unsupported_request_errors(self, v, load=False):
+    """
+    Setter method for unsupported_request_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/unsupported_request_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_unsupported_request_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_unsupported_request_errors() directly.
+
+    YANG Description: Number of unsupported request errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """unsupported_request_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__unsupported_request_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_unsupported_request_errors(self):
+    self.__unsupported_request_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_acs_violation_errors(self):
+    """
+    Getter method for acs_violation_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/acs_violation_errors (oc-yang:counter64)
+
+    YANG Description: Number of access control errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    return self.__acs_violation_errors
+      
+  def _set_acs_violation_errors(self, v, load=False):
+    """
+    Setter method for acs_violation_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/acs_violation_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_acs_violation_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_acs_violation_errors() directly.
+
+    YANG Description: Number of access control errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """acs_violation_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__acs_violation_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_acs_violation_errors(self):
+    self.__acs_violation_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_internal_errors(self):
+    """
+    Getter method for internal_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/internal_errors (oc-yang:counter64)
+
+    YANG Description: Number of internal errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__internal_errors
+      
+  def _set_internal_errors(self, v, load=False):
+    """
+    Setter method for internal_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/internal_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_internal_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_internal_errors() directly.
+
+    YANG Description: Number of internal errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """internal_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__internal_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_internal_errors(self):
+    self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_blocked_tlp_errors(self):
+    """
+    Getter method for blocked_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/blocked_tlp_errors (oc-yang:counter64)
+
+    YANG Description: Number of blocked TLP errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    return self.__blocked_tlp_errors
+      
+  def _set_blocked_tlp_errors(self, v, load=False):
+    """
+    Setter method for blocked_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/blocked_tlp_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_blocked_tlp_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_blocked_tlp_errors() directly.
+
+    YANG Description: Number of blocked TLP errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """blocked_tlp_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__blocked_tlp_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_blocked_tlp_errors(self):
+    self.__blocked_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_atomic_op_blocked_errors(self):
+    """
+    Getter method for atomic_op_blocked_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/atomic_op_blocked_errors (oc-yang:counter64)
+
+    YANG Description: Number of atomic operation blocked errors detected by PCIe
+device since the system booted, according to PCIe AER driver.
+    """
+    return self.__atomic_op_blocked_errors
+      
+  def _set_atomic_op_blocked_errors(self, v, load=False):
+    """
+    Setter method for atomic_op_blocked_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/atomic_op_blocked_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_atomic_op_blocked_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_atomic_op_blocked_errors() directly.
+
+    YANG Description: Number of atomic operation blocked errors detected by PCIe
+device since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """atomic_op_blocked_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__atomic_op_blocked_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_atomic_op_blocked_errors(self):
+    self.__atomic_op_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_tlp_prefix_blocked_errors(self):
+    """
+    Getter method for tlp_prefix_blocked_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/tlp_prefix_blocked_errors (oc-yang:counter64)
+
+    YANG Description: Number of TLP prefix blocked errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__tlp_prefix_blocked_errors
+      
+  def _set_tlp_prefix_blocked_errors(self, v, load=False):
+    """
+    Setter method for tlp_prefix_blocked_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/tlp_prefix_blocked_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_tlp_prefix_blocked_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_tlp_prefix_blocked_errors() directly.
+
+    YANG Description: Number of TLP prefix blocked errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """tlp_prefix_blocked_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__tlp_prefix_blocked_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_tlp_prefix_blocked_errors(self):
+    self.__tlp_prefix_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+  total_errors = __builtin__.property(_get_total_errors)
+  undefined_errors = __builtin__.property(_get_undefined_errors)
+  data_link_errors = __builtin__.property(_get_data_link_errors)
+  surprise_down_errors = __builtin__.property(_get_surprise_down_errors)
+  poisoned_tlp_errors = __builtin__.property(_get_poisoned_tlp_errors)
+  flow_control_protocol_errors = __builtin__.property(_get_flow_control_protocol_errors)
+  completion_timeout_errors = __builtin__.property(_get_completion_timeout_errors)
+  completion_abort_errors = __builtin__.property(_get_completion_abort_errors)
+  unexpected_completion_errors = __builtin__.property(_get_unexpected_completion_errors)
+  receiver_overflow_errors = __builtin__.property(_get_receiver_overflow_errors)
+  malformed_tlp_errors = __builtin__.property(_get_malformed_tlp_errors)
+  ecrc_errors = __builtin__.property(_get_ecrc_errors)
+  unsupported_request_errors = __builtin__.property(_get_unsupported_request_errors)
+  acs_violation_errors = __builtin__.property(_get_acs_violation_errors)
+  internal_errors = __builtin__.property(_get_internal_errors)
+  blocked_tlp_errors = __builtin__.property(_get_blocked_tlp_errors)
+  atomic_op_blocked_errors = __builtin__.property(_get_atomic_op_blocked_errors)
+  tlp_prefix_blocked_errors = __builtin__.property(_get_tlp_prefix_blocked_errors)
+
+
+  _pyangbind_elements = OrderedDict([('total_errors', total_errors), ('undefined_errors', undefined_errors), ('data_link_errors', data_link_errors), ('surprise_down_errors', surprise_down_errors), ('poisoned_tlp_errors', poisoned_tlp_errors), ('flow_control_protocol_errors', flow_control_protocol_errors), ('completion_timeout_errors', completion_timeout_errors), ('completion_abort_errors', completion_abort_errors), ('unexpected_completion_errors', unexpected_completion_errors), ('receiver_overflow_errors', receiver_overflow_errors), ('malformed_tlp_errors', malformed_tlp_errors), ('ecrc_errors', ecrc_errors), ('unsupported_request_errors', unsupported_request_errors), ('acs_violation_errors', acs_violation_errors), ('internal_errors', internal_errors), ('blocked_tlp_errors', blocked_tlp_errors), ('atomic_op_blocked_errors', atomic_op_blocked_errors), ('tlp_prefix_blocked_errors', tlp_prefix_blocked_errors), ])
+
+
+class non_fatal_errors(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/state/pcie/non-fatal-errors. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: The count of the non-fatal PCIe errors.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__total_errors','__undefined_errors','__data_link_errors','__surprise_down_errors','__poisoned_tlp_errors','__flow_control_protocol_errors','__completion_timeout_errors','__completion_abort_errors','__unexpected_completion_errors','__receiver_overflow_errors','__malformed_tlp_errors','__ecrc_errors','__unsupported_request_errors','__acs_violation_errors','__internal_errors','__blocked_tlp_errors','__atomic_op_blocked_errors','__tlp_prefix_blocked_errors',)
+
+  _yang_name = 'non-fatal-errors'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__undefined_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__data_link_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__surprise_down_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__poisoned_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__flow_control_protocol_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__completion_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__completion_abort_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__unexpected_completion_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__receiver_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__malformed_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__ecrc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__unsupported_request_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__acs_violation_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__blocked_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__atomic_op_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    self.__tlp_prefix_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'state', 'pcie', 'non-fatal-errors']
+
+  def _get_total_errors(self):
+    """
+    Getter method for total_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/total_errors (oc-yang:counter64)
+
+    YANG Description: Total number of uncorrectable errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__total_errors
+      
+  def _set_total_errors(self, v, load=False):
+    """
+    Setter method for total_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/total_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_total_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_total_errors() directly.
+
+    YANG Description: Total number of uncorrectable errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """total_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__total_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_total_errors(self):
+    self.__total_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="total-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_undefined_errors(self):
+    """
+    Getter method for undefined_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/undefined_errors (oc-yang:counter64)
+
+    YANG Description: Number of undefined errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__undefined_errors
+      
+  def _set_undefined_errors(self, v, load=False):
+    """
+    Setter method for undefined_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/undefined_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_undefined_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_undefined_errors() directly.
+
+    YANG Description: Number of undefined errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """undefined_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__undefined_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_undefined_errors(self):
+    self.__undefined_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="undefined-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_data_link_errors(self):
+    """
+    Getter method for data_link_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/data_link_errors (oc-yang:counter64)
+
+    YANG Description: Number of data-link errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__data_link_errors
+      
+  def _set_data_link_errors(self, v, load=False):
+    """
+    Setter method for data_link_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/data_link_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_data_link_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_data_link_errors() directly.
+
+    YANG Description: Number of data-link errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """data_link_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__data_link_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_data_link_errors(self):
+    self.__data_link_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="data-link-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_surprise_down_errors(self):
+    """
+    Getter method for surprise_down_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/surprise_down_errors (oc-yang:counter64)
+
+    YANG Description: Number of unexpected link down errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__surprise_down_errors
+      
+  def _set_surprise_down_errors(self, v, load=False):
+    """
+    Setter method for surprise_down_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/surprise_down_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_surprise_down_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_surprise_down_errors() directly.
+
+    YANG Description: Number of unexpected link down errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """surprise_down_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__surprise_down_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_surprise_down_errors(self):
+    self.__surprise_down_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="surprise-down-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_poisoned_tlp_errors(self):
+    """
+    Getter method for poisoned_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/poisoned_tlp_errors (oc-yang:counter64)
+
+    YANG Description: Number of poisoned TLP errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__poisoned_tlp_errors
+      
+  def _set_poisoned_tlp_errors(self, v, load=False):
+    """
+    Setter method for poisoned_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/poisoned_tlp_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_poisoned_tlp_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_poisoned_tlp_errors() directly.
+
+    YANG Description: Number of poisoned TLP errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """poisoned_tlp_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__poisoned_tlp_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_poisoned_tlp_errors(self):
+    self.__poisoned_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="poisoned-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_flow_control_protocol_errors(self):
+    """
+    Getter method for flow_control_protocol_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/flow_control_protocol_errors (oc-yang:counter64)
+
+    YANG Description: Number of flow control protocol errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__flow_control_protocol_errors
+      
+  def _set_flow_control_protocol_errors(self, v, load=False):
+    """
+    Setter method for flow_control_protocol_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/flow_control_protocol_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_flow_control_protocol_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_flow_control_protocol_errors() directly.
+
+    YANG Description: Number of flow control protocol errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """flow_control_protocol_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__flow_control_protocol_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_flow_control_protocol_errors(self):
+    self.__flow_control_protocol_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="flow-control-protocol-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_completion_timeout_errors(self):
+    """
+    Getter method for completion_timeout_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/completion_timeout_errors (oc-yang:counter64)
+
+    YANG Description: Number of completion timeout errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__completion_timeout_errors
+      
+  def _set_completion_timeout_errors(self, v, load=False):
+    """
+    Setter method for completion_timeout_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/completion_timeout_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_completion_timeout_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_completion_timeout_errors() directly.
+
+    YANG Description: Number of completion timeout errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """completion_timeout_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__completion_timeout_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_completion_timeout_errors(self):
+    self.__completion_timeout_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-timeout-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_completion_abort_errors(self):
+    """
+    Getter method for completion_abort_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/completion_abort_errors (oc-yang:counter64)
+
+    YANG Description: Number of completion abort errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__completion_abort_errors
+      
+  def _set_completion_abort_errors(self, v, load=False):
+    """
+    Setter method for completion_abort_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/completion_abort_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_completion_abort_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_completion_abort_errors() directly.
+
+    YANG Description: Number of completion abort errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """completion_abort_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__completion_abort_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_completion_abort_errors(self):
+    self.__completion_abort_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="completion-abort-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_unexpected_completion_errors(self):
+    """
+    Getter method for unexpected_completion_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/unexpected_completion_errors (oc-yang:counter64)
+
+    YANG Description: Number of unexpected completion errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__unexpected_completion_errors
+      
+  def _set_unexpected_completion_errors(self, v, load=False):
+    """
+    Setter method for unexpected_completion_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/unexpected_completion_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_unexpected_completion_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_unexpected_completion_errors() directly.
+
+    YANG Description: Number of unexpected completion errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """unexpected_completion_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__unexpected_completion_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_unexpected_completion_errors(self):
+    self.__unexpected_completion_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unexpected-completion-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_receiver_overflow_errors(self):
+    """
+    Getter method for receiver_overflow_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/receiver_overflow_errors (oc-yang:counter64)
+
+    YANG Description: Number of receiver overflow errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__receiver_overflow_errors
+      
+  def _set_receiver_overflow_errors(self, v, load=False):
+    """
+    Setter method for receiver_overflow_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/receiver_overflow_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_receiver_overflow_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_receiver_overflow_errors() directly.
+
+    YANG Description: Number of receiver overflow errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """receiver_overflow_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__receiver_overflow_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_receiver_overflow_errors(self):
+    self.__receiver_overflow_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="receiver-overflow-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_malformed_tlp_errors(self):
+    """
+    Getter method for malformed_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/malformed_tlp_errors (oc-yang:counter64)
+
+    YANG Description: Number of malformed TLP errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__malformed_tlp_errors
+      
+  def _set_malformed_tlp_errors(self, v, load=False):
+    """
+    Setter method for malformed_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/malformed_tlp_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_malformed_tlp_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_malformed_tlp_errors() directly.
+
+    YANG Description: Number of malformed TLP errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """malformed_tlp_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__malformed_tlp_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_malformed_tlp_errors(self):
+    self.__malformed_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="malformed-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_ecrc_errors(self):
+    """
+    Getter method for ecrc_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/ecrc_errors (oc-yang:counter64)
+
+    YANG Description: Number of ECRC errors detected by PCIe device since the system
+booted, according to PCIe AER driver.
+    """
+    return self.__ecrc_errors
+      
+  def _set_ecrc_errors(self, v, load=False):
+    """
+    Setter method for ecrc_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/ecrc_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_ecrc_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_ecrc_errors() directly.
+
+    YANG Description: Number of ECRC errors detected by PCIe device since the system
+booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """ecrc_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__ecrc_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_ecrc_errors(self):
+    self.__ecrc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="ecrc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_unsupported_request_errors(self):
+    """
+    Getter method for unsupported_request_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/unsupported_request_errors (oc-yang:counter64)
+
+    YANG Description: Number of unsupported request errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__unsupported_request_errors
+      
+  def _set_unsupported_request_errors(self, v, load=False):
+    """
+    Setter method for unsupported_request_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/unsupported_request_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_unsupported_request_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_unsupported_request_errors() directly.
+
+    YANG Description: Number of unsupported request errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """unsupported_request_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__unsupported_request_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_unsupported_request_errors(self):
+    self.__unsupported_request_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="unsupported-request-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_acs_violation_errors(self):
+    """
+    Getter method for acs_violation_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/acs_violation_errors (oc-yang:counter64)
+
+    YANG Description: Number of access control errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    return self.__acs_violation_errors
+      
+  def _set_acs_violation_errors(self, v, load=False):
+    """
+    Setter method for acs_violation_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/acs_violation_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_acs_violation_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_acs_violation_errors() directly.
+
+    YANG Description: Number of access control errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """acs_violation_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__acs_violation_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_acs_violation_errors(self):
+    self.__acs_violation_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="acs-violation-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_internal_errors(self):
+    """
+    Getter method for internal_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/internal_errors (oc-yang:counter64)
+
+    YANG Description: Number of internal errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    return self.__internal_errors
+      
+  def _set_internal_errors(self, v, load=False):
+    """
+    Setter method for internal_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/internal_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_internal_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_internal_errors() directly.
+
+    YANG Description: Number of internal errors detected by PCIe device since the
+system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """internal_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__internal_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_internal_errors(self):
+    self.__internal_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="internal-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_blocked_tlp_errors(self):
+    """
+    Getter method for blocked_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/blocked_tlp_errors (oc-yang:counter64)
+
+    YANG Description: Number of blocked TLP errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    return self.__blocked_tlp_errors
+      
+  def _set_blocked_tlp_errors(self, v, load=False):
+    """
+    Setter method for blocked_tlp_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/blocked_tlp_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_blocked_tlp_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_blocked_tlp_errors() directly.
+
+    YANG Description: Number of blocked TLP errors detected by PCIe device since
+the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """blocked_tlp_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__blocked_tlp_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_blocked_tlp_errors(self):
+    self.__blocked_tlp_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="blocked-tlp-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_atomic_op_blocked_errors(self):
+    """
+    Getter method for atomic_op_blocked_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/atomic_op_blocked_errors (oc-yang:counter64)
+
+    YANG Description: Number of atomic operation blocked errors detected by PCIe
+device since the system booted, according to PCIe AER driver.
+    """
+    return self.__atomic_op_blocked_errors
+      
+  def _set_atomic_op_blocked_errors(self, v, load=False):
+    """
+    Setter method for atomic_op_blocked_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/atomic_op_blocked_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_atomic_op_blocked_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_atomic_op_blocked_errors() directly.
+
+    YANG Description: Number of atomic operation blocked errors detected by PCIe
+device since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """atomic_op_blocked_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__atomic_op_blocked_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_atomic_op_blocked_errors(self):
+    self.__atomic_op_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="atomic-op-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_tlp_prefix_blocked_errors(self):
+    """
+    Getter method for tlp_prefix_blocked_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/tlp_prefix_blocked_errors (oc-yang:counter64)
+
+    YANG Description: Number of TLP prefix blocked errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    return self.__tlp_prefix_blocked_errors
+      
+  def _set_tlp_prefix_blocked_errors(self, v, load=False):
+    """
+    Setter method for tlp_prefix_blocked_errors, mapped from YANG variable /components/component/state/pcie/non_fatal_errors/tlp_prefix_blocked_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_tlp_prefix_blocked_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_tlp_prefix_blocked_errors() directly.
+
+    YANG Description: Number of TLP prefix blocked errors detected by PCIe device
+since the system booted, according to PCIe AER driver.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """tlp_prefix_blocked_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__tlp_prefix_blocked_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_tlp_prefix_blocked_errors(self):
+    self.__tlp_prefix_blocked_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="tlp-prefix-blocked-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-yang:counter64', is_config=False)
+
+  total_errors = __builtin__.property(_get_total_errors)
+  undefined_errors = __builtin__.property(_get_undefined_errors)
+  data_link_errors = __builtin__.property(_get_data_link_errors)
+  surprise_down_errors = __builtin__.property(_get_surprise_down_errors)
+  poisoned_tlp_errors = __builtin__.property(_get_poisoned_tlp_errors)
+  flow_control_protocol_errors = __builtin__.property(_get_flow_control_protocol_errors)
+  completion_timeout_errors = __builtin__.property(_get_completion_timeout_errors)
+  completion_abort_errors = __builtin__.property(_get_completion_abort_errors)
+  unexpected_completion_errors = __builtin__.property(_get_unexpected_completion_errors)
+  receiver_overflow_errors = __builtin__.property(_get_receiver_overflow_errors)
+  malformed_tlp_errors = __builtin__.property(_get_malformed_tlp_errors)
+  ecrc_errors = __builtin__.property(_get_ecrc_errors)
+  unsupported_request_errors = __builtin__.property(_get_unsupported_request_errors)
+  acs_violation_errors = __builtin__.property(_get_acs_violation_errors)
+  internal_errors = __builtin__.property(_get_internal_errors)
+  blocked_tlp_errors = __builtin__.property(_get_blocked_tlp_errors)
+  atomic_op_blocked_errors = __builtin__.property(_get_atomic_op_blocked_errors)
+  tlp_prefix_blocked_errors = __builtin__.property(_get_tlp_prefix_blocked_errors)
+
+
+  _pyangbind_elements = OrderedDict([('total_errors', total_errors), ('undefined_errors', undefined_errors), ('data_link_errors', data_link_errors), ('surprise_down_errors', surprise_down_errors), ('poisoned_tlp_errors', poisoned_tlp_errors), ('flow_control_protocol_errors', flow_control_protocol_errors), ('completion_timeout_errors', completion_timeout_errors), ('completion_abort_errors', completion_abort_errors), ('unexpected_completion_errors', unexpected_completion_errors), ('receiver_overflow_errors', receiver_overflow_errors), ('malformed_tlp_errors', malformed_tlp_errors), ('ecrc_errors', ecrc_errors), ('unsupported_request_errors', unsupported_request_errors), ('acs_violation_errors', acs_violation_errors), ('internal_errors', internal_errors), ('blocked_tlp_errors', blocked_tlp_errors), ('atomic_op_blocked_errors', atomic_op_blocked_errors), ('tlp_prefix_blocked_errors', tlp_prefix_blocked_errors), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/state/temperature/__init__.py b/hackfest/netconf-oc/openconfig/components/component/state/temperature/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..426d8a1d75604540a04fc92ab9494d9cd330434e
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/state/temperature/__init__.py
@@ -0,0 +1,958 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class temperature(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/state/temperature. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Temperature in degrees Celsius of the component. Values include
+the instantaneous, average, minimum, and maximum statistics. If
+avg/min/max statistics are not supported, the target is expected
+to just supply the instant value
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__instant','__avg','__min_','__max_','__interval','__min_time','__max_time','__alarm_status','__alarm_threshold','__alarm_severity',)
+
+  _yang_name = 'temperature'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__instant = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+    self.__avg = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+    self.__min_ = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+    self.__max_ = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:stat-interval', is_config=False)
+    self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+    self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+    self.__alarm_status = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="alarm-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+    self.__alarm_threshold = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="alarm-threshold", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)
+    self.__alarm_severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},), is_leaf=True, yang_name="alarm-severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'state', 'temperature']
+
+  def _get_instant(self):
+    """
+    Getter method for instant, mapped from YANG variable /components/component/state/temperature/instant (decimal64)
+
+    YANG Description: The instantaneous value of the statistic.
+    """
+    return self.__instant
+      
+  def _set_instant(self, v, load=False):
+    """
+    Setter method for instant, mapped from YANG variable /components/component/state/temperature/instant (decimal64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_instant is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_instant() directly.
+
+    YANG Description: The instantaneous value of the statistic.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """instant must be of a type compatible with decimal64""",
+          'defined-type': "decimal64",
+          'generated-type': """YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)""",
+        })
+
+    self.__instant = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_instant(self):
+    self.__instant = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+
+
+  def _get_avg(self):
+    """
+    Getter method for avg, mapped from YANG variable /components/component/state/temperature/avg (decimal64)
+
+    YANG Description: The arithmetic mean value of the statistic over the
+sampling period.
+    """
+    return self.__avg
+      
+  def _set_avg(self, v, load=False):
+    """
+    Setter method for avg, mapped from YANG variable /components/component/state/temperature/avg (decimal64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_avg is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_avg() directly.
+
+    YANG Description: The arithmetic mean value of the statistic over the
+sampling period.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """avg must be of a type compatible with decimal64""",
+          'defined-type': "decimal64",
+          'generated-type': """YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)""",
+        })
+
+    self.__avg = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_avg(self):
+    self.__avg = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+
+
+  def _get_min_(self):
+    """
+    Getter method for min_, mapped from YANG variable /components/component/state/temperature/min (decimal64)
+
+    YANG Description: The minimum value of the statistic over the sampling
+period
+    """
+    return self.__min_
+      
+  def _set_min_(self, v, load=False):
+    """
+    Setter method for min_, mapped from YANG variable /components/component/state/temperature/min (decimal64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_min_ is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_min_() directly.
+
+    YANG Description: The minimum value of the statistic over the sampling
+period
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """min_ must be of a type compatible with decimal64""",
+          'defined-type': "decimal64",
+          'generated-type': """YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)""",
+        })
+
+    self.__min_ = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_min_(self):
+    self.__min_ = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+
+
+  def _get_max_(self):
+    """
+    Getter method for max_, mapped from YANG variable /components/component/state/temperature/max (decimal64)
+
+    YANG Description: The maximum value of the statistic over the sampling
+period
+    """
+    return self.__max_
+      
+  def _set_max_(self, v, load=False):
+    """
+    Setter method for max_, mapped from YANG variable /components/component/state/temperature/max (decimal64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_max_ is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_max_() directly.
+
+    YANG Description: The maximum value of the statistic over the sampling
+period
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """max_ must be of a type compatible with decimal64""",
+          'defined-type': "decimal64",
+          'generated-type': """YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)""",
+        })
+
+    self.__max_ = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_max_(self):
+    self.__max_ = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+
+
+  def _get_interval(self):
+    """
+    Getter method for interval, mapped from YANG variable /components/component/state/temperature/interval (oc-types:stat-interval)
+
+    YANG Description: If supported by the system, this reports the time interval
+over which the min/max/average statistics are computed by
+the system.
+    """
+    return self.__interval
+      
+  def _set_interval(self, v, load=False):
+    """
+    Setter method for interval, mapped from YANG variable /components/component/state/temperature/interval (oc-types:stat-interval)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_interval is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_interval() directly.
+
+    YANG Description: If supported by the system, this reports the time interval
+over which the min/max/average statistics are computed by
+the system.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:stat-interval', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """interval must be of a type compatible with oc-types:stat-interval""",
+          'defined-type': "oc-types:stat-interval",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:stat-interval', is_config=False)""",
+        })
+
+    self.__interval = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_interval(self):
+    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:stat-interval', is_config=False)
+
+
+  def _get_min_time(self):
+    """
+    Getter method for min_time, mapped from YANG variable /components/component/state/temperature/min_time (oc-types:timeticks64)
+
+    YANG Description: The absolute time at which the minimum value occurred.
+The value is the timestamp in nanoseconds relative to
+ the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+    """
+    return self.__min_time
+      
+  def _set_min_time(self, v, load=False):
+    """
+    Setter method for min_time, mapped from YANG variable /components/component/state/temperature/min_time (oc-types:timeticks64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_min_time is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_min_time() directly.
+
+    YANG Description: The absolute time at which the minimum value occurred.
+The value is the timestamp in nanoseconds relative to
+ the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """min_time must be of a type compatible with oc-types:timeticks64""",
+          'defined-type': "oc-types:timeticks64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""",
+        })
+
+    self.__min_time = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_min_time(self):
+    self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+
+
+  def _get_max_time(self):
+    """
+    Getter method for max_time, mapped from YANG variable /components/component/state/temperature/max_time (oc-types:timeticks64)
+
+    YANG Description: The absolute time at which the maximum value occurred.
+The value is the timestamp in nanoseconds relative to
+ the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+    """
+    return self.__max_time
+      
+  def _set_max_time(self, v, load=False):
+    """
+    Setter method for max_time, mapped from YANG variable /components/component/state/temperature/max_time (oc-types:timeticks64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_max_time is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_max_time() directly.
+
+    YANG Description: The absolute time at which the maximum value occurred.
+The value is the timestamp in nanoseconds relative to
+ the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """max_time must be of a type compatible with oc-types:timeticks64""",
+          'defined-type': "oc-types:timeticks64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""",
+        })
+
+    self.__max_time = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_max_time(self):
+    self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+
+
+  def _get_alarm_status(self):
+    """
+    Getter method for alarm_status, mapped from YANG variable /components/component/state/temperature/alarm_status (boolean)
+
+    YANG Description: A value of true indicates the alarm has been raised or
+asserted.  The value should be false when the alarm is
+cleared.
+    """
+    return self.__alarm_status
+      
+  def _set_alarm_status(self, v, load=False):
+    """
+    Setter method for alarm_status, mapped from YANG variable /components/component/state/temperature/alarm_status (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_alarm_status is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_alarm_status() directly.
+
+    YANG Description: A value of true indicates the alarm has been raised or
+asserted.  The value should be false when the alarm is
+cleared.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="alarm-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """alarm_status must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="alarm-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__alarm_status = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_alarm_status(self):
+    self.__alarm_status = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="alarm-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+
+
+  def _get_alarm_threshold(self):
+    """
+    Getter method for alarm_threshold, mapped from YANG variable /components/component/state/temperature/alarm_threshold (uint32)
+
+    YANG Description: The threshold value that was crossed for this alarm.
+    """
+    return self.__alarm_threshold
+      
+  def _set_alarm_threshold(self, v, load=False):
+    """
+    Setter method for alarm_threshold, mapped from YANG variable /components/component/state/temperature/alarm_threshold (uint32)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_alarm_threshold is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_alarm_threshold() directly.
+
+    YANG Description: The threshold value that was crossed for this alarm.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="alarm-threshold", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """alarm_threshold must be of a type compatible with uint32""",
+          'defined-type': "uint32",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="alarm-threshold", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)""",
+        })
+
+    self.__alarm_threshold = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_alarm_threshold(self):
+    self.__alarm_threshold = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="alarm-threshold", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)
+
+
+  def _get_alarm_severity(self):
+    """
+    Getter method for alarm_severity, mapped from YANG variable /components/component/state/temperature/alarm_severity (identityref)
+
+    YANG Description: The severity of the current alarm.
+    """
+    return self.__alarm_severity
+      
+  def _set_alarm_severity(self, v, load=False):
+    """
+    Setter method for alarm_severity, mapped from YANG variable /components/component/state/temperature/alarm_severity (identityref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_alarm_severity is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_alarm_severity() directly.
+
+    YANG Description: The severity of the current alarm.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},), is_leaf=True, yang_name="alarm-severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """alarm_severity must be of a type compatible with identityref""",
+          'defined-type': "openconfig-platform:identityref",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},), is_leaf=True, yang_name="alarm-severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)""",
+        })
+
+    self.__alarm_severity = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_alarm_severity(self):
+    self.__alarm_severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},), is_leaf=True, yang_name="alarm-severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)
+
+  instant = __builtin__.property(_get_instant)
+  avg = __builtin__.property(_get_avg)
+  min_ = __builtin__.property(_get_min_)
+  max_ = __builtin__.property(_get_max_)
+  interval = __builtin__.property(_get_interval)
+  min_time = __builtin__.property(_get_min_time)
+  max_time = __builtin__.property(_get_max_time)
+  alarm_status = __builtin__.property(_get_alarm_status)
+  alarm_threshold = __builtin__.property(_get_alarm_threshold)
+  alarm_severity = __builtin__.property(_get_alarm_severity)
+
+
+  _pyangbind_elements = OrderedDict([('instant', instant), ('avg', avg), ('min_', min_), ('max_', max_), ('interval', interval), ('min_time', min_time), ('max_time', max_time), ('alarm_status', alarm_status), ('alarm_threshold', alarm_threshold), ('alarm_severity', alarm_severity), ])
+
+
+class temperature(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/state/temperature. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Temperature in degrees Celsius of the component. Values include
+the instantaneous, average, minimum, and maximum statistics. If
+avg/min/max statistics are not supported, the target is expected
+to just supply the instant value
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__instant','__avg','__min_','__max_','__interval','__min_time','__max_time','__alarm_status','__alarm_threshold','__alarm_severity',)
+
+  _yang_name = 'temperature'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__instant = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+    self.__avg = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+    self.__min_ = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+    self.__max_ = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:stat-interval', is_config=False)
+    self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+    self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+    self.__alarm_status = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="alarm-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+    self.__alarm_threshold = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="alarm-threshold", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)
+    self.__alarm_severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},), is_leaf=True, yang_name="alarm-severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'state', 'temperature']
+
+  def _get_instant(self):
+    """
+    Getter method for instant, mapped from YANG variable /components/component/state/temperature/instant (decimal64)
+
+    YANG Description: The instantaneous value of the statistic.
+    """
+    return self.__instant
+      
+  def _set_instant(self, v, load=False):
+    """
+    Setter method for instant, mapped from YANG variable /components/component/state/temperature/instant (decimal64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_instant is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_instant() directly.
+
+    YANG Description: The instantaneous value of the statistic.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """instant must be of a type compatible with decimal64""",
+          'defined-type': "decimal64",
+          'generated-type': """YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)""",
+        })
+
+    self.__instant = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_instant(self):
+    self.__instant = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="instant", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+
+
+  def _get_avg(self):
+    """
+    Getter method for avg, mapped from YANG variable /components/component/state/temperature/avg (decimal64)
+
+    YANG Description: The arithmetic mean value of the statistic over the
+sampling period.
+    """
+    return self.__avg
+      
+  def _set_avg(self, v, load=False):
+    """
+    Setter method for avg, mapped from YANG variable /components/component/state/temperature/avg (decimal64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_avg is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_avg() directly.
+
+    YANG Description: The arithmetic mean value of the statistic over the
+sampling period.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """avg must be of a type compatible with decimal64""",
+          'defined-type': "decimal64",
+          'generated-type': """YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)""",
+        })
+
+    self.__avg = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_avg(self):
+    self.__avg = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="avg", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+
+
+  def _get_min_(self):
+    """
+    Getter method for min_, mapped from YANG variable /components/component/state/temperature/min (decimal64)
+
+    YANG Description: The minimum value of the statistic over the sampling
+period
+    """
+    return self.__min_
+      
+  def _set_min_(self, v, load=False):
+    """
+    Setter method for min_, mapped from YANG variable /components/component/state/temperature/min (decimal64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_min_ is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_min_() directly.
+
+    YANG Description: The minimum value of the statistic over the sampling
+period
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """min_ must be of a type compatible with decimal64""",
+          'defined-type': "decimal64",
+          'generated-type': """YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)""",
+        })
+
+    self.__min_ = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_min_(self):
+    self.__min_ = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="min", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+
+
+  def _get_max_(self):
+    """
+    Getter method for max_, mapped from YANG variable /components/component/state/temperature/max (decimal64)
+
+    YANG Description: The maximum value of the statistic over the sampling
+period
+    """
+    return self.__max_
+      
+  def _set_max_(self, v, load=False):
+    """
+    Setter method for max_, mapped from YANG variable /components/component/state/temperature/max (decimal64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_max_ is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_max_() directly.
+
+    YANG Description: The maximum value of the statistic over the sampling
+period
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """max_ must be of a type compatible with decimal64""",
+          'defined-type': "decimal64",
+          'generated-type': """YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)""",
+        })
+
+    self.__max_ = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_max_(self):
+    self.__max_ = YANGDynClass(base=RestrictedPrecisionDecimalType(precision=1), is_leaf=True, yang_name="max", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='decimal64', is_config=False)
+
+
+  def _get_interval(self):
+    """
+    Getter method for interval, mapped from YANG variable /components/component/state/temperature/interval (oc-types:stat-interval)
+
+    YANG Description: If supported by the system, this reports the time interval
+over which the min/max/average statistics are computed by
+the system.
+    """
+    return self.__interval
+      
+  def _set_interval(self, v, load=False):
+    """
+    Setter method for interval, mapped from YANG variable /components/component/state/temperature/interval (oc-types:stat-interval)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_interval is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_interval() directly.
+
+    YANG Description: If supported by the system, this reports the time interval
+over which the min/max/average statistics are computed by
+the system.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:stat-interval', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """interval must be of a type compatible with oc-types:stat-interval""",
+          'defined-type': "oc-types:stat-interval",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:stat-interval', is_config=False)""",
+        })
+
+    self.__interval = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_interval(self):
+    self.__interval = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="interval", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:stat-interval', is_config=False)
+
+
+  def _get_min_time(self):
+    """
+    Getter method for min_time, mapped from YANG variable /components/component/state/temperature/min_time (oc-types:timeticks64)
+
+    YANG Description: The absolute time at which the minimum value occurred.
+The value is the timestamp in nanoseconds relative to
+ the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+    """
+    return self.__min_time
+      
+  def _set_min_time(self, v, load=False):
+    """
+    Setter method for min_time, mapped from YANG variable /components/component/state/temperature/min_time (oc-types:timeticks64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_min_time is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_min_time() directly.
+
+    YANG Description: The absolute time at which the minimum value occurred.
+The value is the timestamp in nanoseconds relative to
+ the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """min_time must be of a type compatible with oc-types:timeticks64""",
+          'defined-type': "oc-types:timeticks64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""",
+        })
+
+    self.__min_time = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_min_time(self):
+    self.__min_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="min-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+
+
+  def _get_max_time(self):
+    """
+    Getter method for max_time, mapped from YANG variable /components/component/state/temperature/max_time (oc-types:timeticks64)
+
+    YANG Description: The absolute time at which the maximum value occurred.
+The value is the timestamp in nanoseconds relative to
+ the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+    """
+    return self.__max_time
+      
+  def _set_max_time(self, v, load=False):
+    """
+    Setter method for max_time, mapped from YANG variable /components/component/state/temperature/max_time (oc-types:timeticks64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_max_time is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_max_time() directly.
+
+    YANG Description: The absolute time at which the maximum value occurred.
+The value is the timestamp in nanoseconds relative to
+ the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """max_time must be of a type compatible with oc-types:timeticks64""",
+          'defined-type': "oc-types:timeticks64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)""",
+        })
+
+    self.__max_time = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_max_time(self):
+    self.__max_time = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="max-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='oc-types:timeticks64', is_config=False)
+
+
+  def _get_alarm_status(self):
+    """
+    Getter method for alarm_status, mapped from YANG variable /components/component/state/temperature/alarm_status (boolean)
+
+    YANG Description: A value of true indicates the alarm has been raised or
+asserted.  The value should be false when the alarm is
+cleared.
+    """
+    return self.__alarm_status
+      
+  def _set_alarm_status(self, v, load=False):
+    """
+    Setter method for alarm_status, mapped from YANG variable /components/component/state/temperature/alarm_status (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_alarm_status is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_alarm_status() directly.
+
+    YANG Description: A value of true indicates the alarm has been raised or
+asserted.  The value should be false when the alarm is
+cleared.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="alarm-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """alarm_status must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="alarm-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__alarm_status = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_alarm_status(self):
+    self.__alarm_status = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="alarm-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='boolean', is_config=False)
+
+
+  def _get_alarm_threshold(self):
+    """
+    Getter method for alarm_threshold, mapped from YANG variable /components/component/state/temperature/alarm_threshold (uint32)
+
+    YANG Description: The threshold value that was crossed for this alarm.
+    """
+    return self.__alarm_threshold
+      
+  def _set_alarm_threshold(self, v, load=False):
+    """
+    Setter method for alarm_threshold, mapped from YANG variable /components/component/state/temperature/alarm_threshold (uint32)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_alarm_threshold is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_alarm_threshold() directly.
+
+    YANG Description: The threshold value that was crossed for this alarm.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="alarm-threshold", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """alarm_threshold must be of a type compatible with uint32""",
+          'defined-type': "uint32",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="alarm-threshold", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)""",
+        })
+
+    self.__alarm_threshold = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_alarm_threshold(self):
+    self.__alarm_threshold = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="alarm-threshold", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='uint32', is_config=False)
+
+
+  def _get_alarm_severity(self):
+    """
+    Getter method for alarm_severity, mapped from YANG variable /components/component/state/temperature/alarm_severity (identityref)
+
+    YANG Description: The severity of the current alarm.
+    """
+    return self.__alarm_severity
+      
+  def _set_alarm_severity(self, v, load=False):
+    """
+    Setter method for alarm_severity, mapped from YANG variable /components/component/state/temperature/alarm_severity (identityref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_alarm_severity is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_alarm_severity() directly.
+
+    YANG Description: The severity of the current alarm.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},), is_leaf=True, yang_name="alarm-severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """alarm_severity must be of a type compatible with identityref""",
+          'defined-type': "openconfig-platform:identityref",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},), is_leaf=True, yang_name="alarm-severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)""",
+        })
+
+    self.__alarm_severity = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_alarm_severity(self):
+    self.__alarm_severity = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:UNKNOWN': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MINOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:WARNING': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:MAJOR': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}, 'oc-alarm-types:CRITICAL': {'@module': 'openconfig-alarm-types', '@namespace': 'http://openconfig.net/yang/alarms/types'}},), is_leaf=True, yang_name="alarm-severity", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='identityref', is_config=False)
+
+  instant = __builtin__.property(_get_instant)
+  avg = __builtin__.property(_get_avg)
+  min_ = __builtin__.property(_get_min_)
+  max_ = __builtin__.property(_get_max_)
+  interval = __builtin__.property(_get_interval)
+  min_time = __builtin__.property(_get_min_time)
+  max_time = __builtin__.property(_get_max_time)
+  alarm_status = __builtin__.property(_get_alarm_status)
+  alarm_threshold = __builtin__.property(_get_alarm_threshold)
+  alarm_severity = __builtin__.property(_get_alarm_severity)
+
+
+  _pyangbind_elements = OrderedDict([('instant', instant), ('avg', avg), ('min_', min_), ('max_', max_), ('interval', interval), ('min_time', min_time), ('max_time', max_time), ('alarm_status', alarm_status), ('alarm_threshold', alarm_threshold), ('alarm_severity', alarm_severity), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/storage/__init__.py b/hackfest/netconf-oc/openconfig/components/component/storage/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..84f152b6c379edb6eb7c78e7b8e66f36dd47f23a
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/storage/__init__.py
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class storage(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/storage. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for storage components
+  """
+  _pyangbind_elements = {}
+
+  
+
+class storage(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/storage. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Data for storage components
+  """
+  _pyangbind_elements = {}
+
+  
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/subcomponents/__init__.py b/hackfest/netconf-oc/openconfig/components/component/subcomponents/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..5c5d7cdc87ebbb50448438f8725da5b81848b3f7
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/subcomponents/__init__.py
@@ -0,0 +1,208 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import subcomponent
+class subcomponents(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/subcomponents. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Enclosing container for subcomponent references
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__subcomponent',)
+
+  _yang_name = 'subcomponents'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__subcomponent = YANGDynClass(base=YANGListType("name",subcomponent.subcomponent, yang_name="subcomponent", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="subcomponent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'subcomponents']
+
+  def _get_subcomponent(self):
+    """
+    Getter method for subcomponent, mapped from YANG variable /components/component/subcomponents/subcomponent (list)
+
+    YANG Description: List of subcomponent references
+    """
+    return self.__subcomponent
+      
+  def _set_subcomponent(self, v, load=False):
+    """
+    Setter method for subcomponent, mapped from YANG variable /components/component/subcomponents/subcomponent (list)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_subcomponent is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_subcomponent() directly.
+
+    YANG Description: List of subcomponent references
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGListType("name",subcomponent.subcomponent, yang_name="subcomponent", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="subcomponent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """subcomponent must be of a type compatible with list""",
+          'defined-type': "list",
+          'generated-type': """YANGDynClass(base=YANGListType("name",subcomponent.subcomponent, yang_name="subcomponent", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="subcomponent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)""",
+        })
+
+    self.__subcomponent = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_subcomponent(self):
+    self.__subcomponent = YANGDynClass(base=YANGListType("name",subcomponent.subcomponent, yang_name="subcomponent", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="subcomponent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+
+  subcomponent = __builtin__.property(_get_subcomponent, _set_subcomponent)
+
+
+  _pyangbind_elements = OrderedDict([('subcomponent', subcomponent), ])
+
+
+from . import subcomponent
+class subcomponents(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/subcomponents. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Enclosing container for subcomponent references
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__subcomponent',)
+
+  _yang_name = 'subcomponents'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__subcomponent = YANGDynClass(base=YANGListType("name",subcomponent.subcomponent, yang_name="subcomponent", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="subcomponent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'subcomponents']
+
+  def _get_subcomponent(self):
+    """
+    Getter method for subcomponent, mapped from YANG variable /components/component/subcomponents/subcomponent (list)
+
+    YANG Description: List of subcomponent references
+    """
+    return self.__subcomponent
+      
+  def _set_subcomponent(self, v, load=False):
+    """
+    Setter method for subcomponent, mapped from YANG variable /components/component/subcomponents/subcomponent (list)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_subcomponent is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_subcomponent() directly.
+
+    YANG Description: List of subcomponent references
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGListType("name",subcomponent.subcomponent, yang_name="subcomponent", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="subcomponent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """subcomponent must be of a type compatible with list""",
+          'defined-type': "list",
+          'generated-type': """YANGDynClass(base=YANGListType("name",subcomponent.subcomponent, yang_name="subcomponent", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="subcomponent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)""",
+        })
+
+    self.__subcomponent = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_subcomponent(self):
+    self.__subcomponent = YANGDynClass(base=YANGListType("name",subcomponent.subcomponent, yang_name="subcomponent", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="subcomponent", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='list', is_config=True)
+
+  subcomponent = __builtin__.property(_get_subcomponent, _set_subcomponent)
+
+
+  _pyangbind_elements = OrderedDict([('subcomponent', subcomponent), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/subcomponents/subcomponent/__init__.py b/hackfest/netconf-oc/openconfig/components/component/subcomponents/subcomponent/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..8f187809f977bd6fa9cc12bc81196dca7d51b9a1
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/subcomponents/subcomponent/__init__.py
@@ -0,0 +1,376 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import config
+from . import state
+class subcomponent(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/subcomponents/subcomponent. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: List of subcomponent references
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state',)
+
+  _yang_name = 'subcomponent'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'subcomponents', 'subcomponent']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/name (leafref)
+
+    YANG Description: Reference to the name list key
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/name (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: Reference to the name list key
+    """
+    parent = getattr(self, "_parent", None)
+    if parent is not None and load is False:
+      raise AttributeError("Cannot set keys directly when" +
+                             " within an instantiated list")
+
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+
+
+  def _get_config(self):
+    """
+    Getter method for config, mapped from YANG variable /components/component/subcomponents/subcomponent/config (container)
+
+    YANG Description: Configuration data for the subcomponent
+    """
+    return self.__config
+      
+  def _set_config(self, v, load=False):
+    """
+    Setter method for config, mapped from YANG variable /components/component/subcomponents/subcomponent/config (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_config is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_config() directly.
+
+    YANG Description: Configuration data for the subcomponent
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """config must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__config = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_config(self):
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_state(self):
+    """
+    Getter method for state, mapped from YANG variable /components/component/subcomponents/subcomponent/state (container)
+
+    YANG Description: Operational state data for the subcomponent
+    """
+    return self.__state
+      
+  def _set_state(self, v, load=False):
+    """
+    Setter method for state, mapped from YANG variable /components/component/subcomponents/subcomponent/state (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_state is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_state() directly.
+
+    YANG Description: Operational state data for the subcomponent
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """state must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__state = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_state(self):
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+  config = __builtin__.property(_get_config, _set_config)
+  state = __builtin__.property(_get_state, _set_state)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ])
+
+
+from . import config
+from . import state
+class subcomponent(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/subcomponents/subcomponent. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: List of subcomponent references
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state',)
+
+  _yang_name = 'subcomponent'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'subcomponents', 'subcomponent']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/name (leafref)
+
+    YANG Description: Reference to the name list key
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/name (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: Reference to the name list key
+    """
+    parent = getattr(self, "_parent", None)
+    if parent is not None and load is False:
+      raise AttributeError("Cannot set keys directly when" +
+                             " within an instantiated list")
+
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+
+
+  def _get_config(self):
+    """
+    Getter method for config, mapped from YANG variable /components/component/subcomponents/subcomponent/config (container)
+
+    YANG Description: Configuration data for the subcomponent
+    """
+    return self.__config
+      
+  def _set_config(self, v, load=False):
+    """
+    Setter method for config, mapped from YANG variable /components/component/subcomponents/subcomponent/config (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_config is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_config() directly.
+
+    YANG Description: Configuration data for the subcomponent
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """config must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__config = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_config(self):
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+
+  def _get_state(self):
+    """
+    Getter method for state, mapped from YANG variable /components/component/subcomponents/subcomponent/state (container)
+
+    YANG Description: Operational state data for the subcomponent
+    """
+    return self.__state
+      
+  def _set_state(self, v, load=False):
+    """
+    Setter method for state, mapped from YANG variable /components/component/subcomponents/subcomponent/state (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_state is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_state() directly.
+
+    YANG Description: Operational state data for the subcomponent
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """state must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)""",
+        })
+
+    self.__state = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_state(self):
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='container', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+  config = __builtin__.property(_get_config, _set_config)
+  state = __builtin__.property(_get_state, _set_state)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/subcomponents/subcomponent/config/__init__.py b/hackfest/netconf-oc/openconfig/components/component/subcomponents/subcomponent/config/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..97f1e2adc9782da13a0285f91ca6a8662578c718
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/subcomponents/subcomponent/config/__init__.py
@@ -0,0 +1,206 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class config(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/subcomponents/subcomponent/config. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Configuration data for the subcomponent
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name',)
+
+  _yang_name = 'config'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'subcomponents', 'subcomponent', 'config']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/config/name (leafref)
+
+    YANG Description: Reference to the name of the subcomponent
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/config/name (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: Reference to the name of the subcomponent
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ])
+
+
+class config(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/subcomponents/subcomponent/config. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Configuration data for the subcomponent
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name',)
+
+  _yang_name = 'config'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'subcomponents', 'subcomponent', 'config']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/config/name (leafref)
+
+    YANG Description: Reference to the name of the subcomponent
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/config/name (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: Reference to the name of the subcomponent
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/components/component/subcomponents/subcomponent/state/__init__.py b/hackfest/netconf-oc/openconfig/components/component/subcomponents/subcomponent/state/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..fe204b7573784e4b542a53eac6c3ad9fbe15e89f
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/components/component/subcomponents/subcomponent/state/__init__.py
@@ -0,0 +1,206 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class state(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform - based on the path /components/component/subcomponents/subcomponent/state. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Operational state data for the subcomponent
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name',)
+
+  _yang_name = 'state'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'subcomponents', 'subcomponent', 'state']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/state/name (leafref)
+
+    YANG Description: Reference to the name of the subcomponent
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/state/name (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: Reference to the name of the subcomponent
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False)
+
+  name = __builtin__.property(_get_name)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ])
+
+
+class state(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-platform-common - based on the path /components/component/subcomponents/subcomponent/state. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Operational state data for the subcomponent
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name',)
+
+  _yang_name = 'state'
+  _yang_namespace = 'http://openconfig.net/yang/platform'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['components', 'component', 'subcomponents', 'subcomponent', 'state']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/state/name (leafref)
+
+    YANG Description: Reference to the name of the subcomponent
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /components/component/subcomponents/subcomponent/state/name (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: Reference to the name of the subcomponent
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform', defining_module='openconfig-platform', yang_type='leafref', is_config=False)
+
+  name = __builtin__.property(_get_name)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/interfaces/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..af0371e3f1870194ab8abd48a8a57773453e59ac
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/interfaces/__init__.py
@@ -0,0 +1,116 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import interface
+class interfaces(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-interfaces - based on the path /interfaces. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Top level container for interfaces, including configuration
+and state data.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__interface',)
+
+  _yang_name = 'interfaces'
+  _yang_namespace = 'http://openconfig.net/yang/interfaces'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__interface = YANGDynClass(base=YANGListType("name",interface.interface, yang_name="interface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='list', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['interfaces']
+
+  def _get_interface(self):
+    """
+    Getter method for interface, mapped from YANG variable /interfaces/interface (list)
+
+    YANG Description: The list of named interfaces on the device.
+    """
+    return self.__interface
+      
+  def _set_interface(self, v, load=False):
+    """
+    Setter method for interface, mapped from YANG variable /interfaces/interface (list)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_interface is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_interface() directly.
+
+    YANG Description: The list of named interfaces on the device.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGListType("name",interface.interface, yang_name="interface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='list', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """interface must be of a type compatible with list""",
+          'defined-type': "list",
+          'generated-type': """YANGDynClass(base=YANGListType("name",interface.interface, yang_name="interface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='list', is_config=True)""",
+        })
+
+    self.__interface = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_interface(self):
+    self.__interface = YANGDynClass(base=YANGListType("name",interface.interface, yang_name="interface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='name', extensions=None), is_container='list', yang_name="interface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='list', is_config=True)
+
+  interface = __builtin__.property(_get_interface, _set_interface)
+
+
+  _pyangbind_elements = OrderedDict([('interface', interface), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..7850395040d98f3431c7faa94fbeaedbf55e5b32
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/interfaces/interface/__init__.py
@@ -0,0 +1,327 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import config
+from . import state
+from . import hold_time
+from . import subinterfaces
+from . import ethernet
+class interface(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-interfaces - based on the path /interfaces/interface. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: The list of named interfaces on the device.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__config','__state','__hold_time','__subinterfaces','__ethernet',)
+
+  _yang_name = 'interface'
+  _yang_namespace = 'http://openconfig.net/yang/interfaces'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='leafref', is_config=True)
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+    self.__hold_time = YANGDynClass(base=hold_time.hold_time, is_container='container', yang_name="hold-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+    self.__subinterfaces = YANGDynClass(base=subinterfaces.subinterfaces, is_container='container', yang_name="subinterfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+    self.__ethernet = YANGDynClass(base=ethernet.ethernet, is_container='container', yang_name="ethernet", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['interfaces', 'interface']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /interfaces/interface/name (leafref)
+
+    YANG Description: References the name of the interface
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /interfaces/interface/name (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: References the name of the interface
+    """
+    parent = getattr(self, "_parent", None)
+    if parent is not None and load is False:
+      raise AttributeError("Cannot set keys directly when" +
+                             " within an instantiated list")
+
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='leafref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='leafref', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='leafref', is_config=True)
+
+
+  def _get_config(self):
+    """
+    Getter method for config, mapped from YANG variable /interfaces/interface/config (container)
+
+    YANG Description: Configurable items at the global, physical interface
+level
+    """
+    return self.__config
+      
+  def _set_config(self, v, load=False):
+    """
+    Setter method for config, mapped from YANG variable /interfaces/interface/config (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_config is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_config() directly.
+
+    YANG Description: Configurable items at the global, physical interface
+level
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """config must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)""",
+        })
+
+    self.__config = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_config(self):
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+
+
+  def _get_state(self):
+    """
+    Getter method for state, mapped from YANG variable /interfaces/interface/state (container)
+
+    YANG Description: Operational state data at the global interface level
+    """
+    return self.__state
+      
+  def _set_state(self, v, load=False):
+    """
+    Setter method for state, mapped from YANG variable /interfaces/interface/state (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_state is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_state() directly.
+
+    YANG Description: Operational state data at the global interface level
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """state must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)""",
+        })
+
+    self.__state = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_state(self):
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+
+
+  def _get_hold_time(self):
+    """
+    Getter method for hold_time, mapped from YANG variable /interfaces/interface/hold_time (container)
+
+    YANG Description: Top-level container for hold-time settings to enable
+dampening advertisements of interface transitions.
+    """
+    return self.__hold_time
+      
+  def _set_hold_time(self, v, load=False):
+    """
+    Setter method for hold_time, mapped from YANG variable /interfaces/interface/hold_time (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_hold_time is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_hold_time() directly.
+
+    YANG Description: Top-level container for hold-time settings to enable
+dampening advertisements of interface transitions.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=hold_time.hold_time, is_container='container', yang_name="hold-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """hold_time must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=hold_time.hold_time, is_container='container', yang_name="hold-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)""",
+        })
+
+    self.__hold_time = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_hold_time(self):
+    self.__hold_time = YANGDynClass(base=hold_time.hold_time, is_container='container', yang_name="hold-time", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+
+
+  def _get_subinterfaces(self):
+    """
+    Getter method for subinterfaces, mapped from YANG variable /interfaces/interface/subinterfaces (container)
+
+    YANG Description: Enclosing container for the list of subinterfaces associated
+with a physical interface
+    """
+    return self.__subinterfaces
+      
+  def _set_subinterfaces(self, v, load=False):
+    """
+    Setter method for subinterfaces, mapped from YANG variable /interfaces/interface/subinterfaces (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_subinterfaces is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_subinterfaces() directly.
+
+    YANG Description: Enclosing container for the list of subinterfaces associated
+with a physical interface
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=subinterfaces.subinterfaces, is_container='container', yang_name="subinterfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """subinterfaces must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=subinterfaces.subinterfaces, is_container='container', yang_name="subinterfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)""",
+        })
+
+    self.__subinterfaces = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_subinterfaces(self):
+    self.__subinterfaces = YANGDynClass(base=subinterfaces.subinterfaces, is_container='container', yang_name="subinterfaces", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+
+
+  def _get_ethernet(self):
+    """
+    Getter method for ethernet, mapped from YANG variable /interfaces/interface/ethernet (container)
+
+    YANG Description: Top-level container for ethernet configuration
+and state
+    """
+    return self.__ethernet
+      
+  def _set_ethernet(self, v, load=False):
+    """
+    Setter method for ethernet, mapped from YANG variable /interfaces/interface/ethernet (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_ethernet is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_ethernet() directly.
+
+    YANG Description: Top-level container for ethernet configuration
+and state
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=ethernet.ethernet, is_container='container', yang_name="ethernet", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """ethernet must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=ethernet.ethernet, is_container='container', yang_name="ethernet", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True)""",
+        })
+
+    self.__ethernet = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_ethernet(self):
+    self.__ethernet = YANGDynClass(base=ethernet.ethernet, is_container='container', yang_name="ethernet", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+  config = __builtin__.property(_get_config, _set_config)
+  state = __builtin__.property(_get_state, _set_state)
+  hold_time = __builtin__.property(_get_hold_time, _set_hold_time)
+  subinterfaces = __builtin__.property(_get_subinterfaces, _set_subinterfaces)
+  ethernet = __builtin__.property(_get_ethernet, _set_ethernet)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('config', config), ('state', state), ('hold_time', hold_time), ('subinterfaces', subinterfaces), ('ethernet', ethernet), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/config/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/config/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..84dbcfaec66e765d244886bc83622aee2e31c7f4
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/interfaces/interface/config/__init__.py
@@ -0,0 +1,476 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class config(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-interfaces - based on the path /interfaces/interface/config. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Configurable items at the global, physical interface
+level
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__type','__mtu','__loopback_mode','__description','__enabled',)
+
+  _yang_name = 'config'
+  _yang_namespace = 'http://openconfig.net/yang/interfaces'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True)
+    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='identityref', is_config=True)
+    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint16', is_config=True)
+    self.__loopback_mode = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True)
+    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True)
+    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['interfaces', 'interface', 'config']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /interfaces/interface/config/name (string)
+
+    YANG Description: The name of the interface.
+
+A device MAY restrict the allowed values for this leaf,
+possibly depending on the type of the interface.
+For system-controlled interfaces, this leaf is the
+device-specific name of the interface.  The 'config false'
+list interfaces/interface[name]/state contains the currently
+existing interfaces on the device.
+
+If a client tries to create configuration for a
+system-controlled interface that is not present in the
+corresponding state list, the server MAY reject
+the request if the implementation does not support
+pre-provisioning of interfaces or if the name refers to
+an interface that can never exist in the system.  A
+NETCONF server MUST reply with an rpc-error with the
+error-tag 'invalid-value' in this case.
+
+The IETF model in RFC 7223 provides YANG features for the
+following (i.e., pre-provisioning and arbitrary-names),
+however they are omitted here:
+
+ If the device supports pre-provisioning of interface
+ configuration, the 'pre-provisioning' feature is
+ advertised.
+
+ If the device allows arbitrarily named user-controlled
+ interfaces, the 'arbitrary-names' feature is advertised.
+
+When a configured user-controlled interface is created by
+the system, it is instantiated with the same name in the
+/interfaces/interface[name]/state list.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /interfaces/interface/config/name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: The name of the interface.
+
+A device MAY restrict the allowed values for this leaf,
+possibly depending on the type of the interface.
+For system-controlled interfaces, this leaf is the
+device-specific name of the interface.  The 'config false'
+list interfaces/interface[name]/state contains the currently
+existing interfaces on the device.
+
+If a client tries to create configuration for a
+system-controlled interface that is not present in the
+corresponding state list, the server MAY reject
+the request if the implementation does not support
+pre-provisioning of interfaces or if the name refers to
+an interface that can never exist in the system.  A
+NETCONF server MUST reply with an rpc-error with the
+error-tag 'invalid-value' in this case.
+
+The IETF model in RFC 7223 provides YANG features for the
+following (i.e., pre-provisioning and arbitrary-names),
+however they are omitted here:
+
+ If the device supports pre-provisioning of interface
+ configuration, the 'pre-provisioning' feature is
+ advertised.
+
+ If the device allows arbitrarily named user-controlled
+ interfaces, the 'arbitrary-names' feature is advertised.
+
+When a configured user-controlled interface is created by
+the system, it is instantiated with the same name in the
+/interfaces/interface[name]/state list.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True)
+
+
+  def _get_type(self):
+    """
+    Getter method for type, mapped from YANG variable /interfaces/interface/config/type (identityref)
+
+    YANG Description: The type of the interface.
+
+When an interface entry is created, a server MAY
+initialize the type leaf with a valid value, e.g., if it
+is possible to derive the type from the name of the
+interface.
+
+If a client tries to set the type of an interface to a
+value that can never be used by the system, e.g., if the
+type is not supported or if the type does not match the
+name of the interface, the server MUST reject the request.
+A NETCONF server MUST reply with an rpc-error with the
+error-tag 'invalid-value' in this case.
+    """
+    return self.__type
+      
+  def _set_type(self, v, load=False):
+    """
+    Setter method for type, mapped from YANG variable /interfaces/interface/config/type (identityref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_type is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_type() directly.
+
+    YANG Description: The type of the interface.
+
+When an interface entry is created, a server MAY
+initialize the type leaf with a valid value, e.g., if it
+is possible to derive the type from the name of the
+interface.
+
+If a client tries to set the type of an interface to a
+value that can never be used by the system, e.g., if the
+type is not supported or if the type does not match the
+name of the interface, the server MUST reject the request.
+A NETCONF server MUST reply with an rpc-error with the
+error-tag 'invalid-value' in this case.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='identityref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """type must be of a type compatible with identityref""",
+          'defined-type': "openconfig-interfaces:identityref",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='identityref', is_config=True)""",
+        })
+
+    self.__type = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_type(self):
+    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='identityref', is_config=True)
+
+
+  def _get_mtu(self):
+    """
+    Getter method for mtu, mapped from YANG variable /interfaces/interface/config/mtu (uint16)
+
+    YANG Description: Set the max transmission unit size in octets
+for the physical interface.  If this is not set, the mtu is
+set to the operational default -- e.g., 1514 bytes on an
+Ethernet interface.
+    """
+    return self.__mtu
+      
+  def _set_mtu(self, v, load=False):
+    """
+    Setter method for mtu, mapped from YANG variable /interfaces/interface/config/mtu (uint16)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_mtu is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_mtu() directly.
+
+    YANG Description: Set the max transmission unit size in octets
+for the physical interface.  If this is not set, the mtu is
+set to the operational default -- e.g., 1514 bytes on an
+Ethernet interface.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint16', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """mtu must be of a type compatible with uint16""",
+          'defined-type': "uint16",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint16', is_config=True)""",
+        })
+
+    self.__mtu = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_mtu(self):
+    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint16', is_config=True)
+
+
+  def _get_loopback_mode(self):
+    """
+    Getter method for loopback_mode, mapped from YANG variable /interfaces/interface/config/loopback_mode (boolean)
+
+    YANG Description: When set to true, the interface is logically looped back,
+such that packets that are forwarded via the interface
+are received on the same interface.
+    """
+    return self.__loopback_mode
+      
+  def _set_loopback_mode(self, v, load=False):
+    """
+    Setter method for loopback_mode, mapped from YANG variable /interfaces/interface/config/loopback_mode (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_loopback_mode is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_loopback_mode() directly.
+
+    YANG Description: When set to true, the interface is logically looped back,
+such that packets that are forwarded via the interface
+are received on the same interface.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """loopback_mode must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True)""",
+        })
+
+    self.__loopback_mode = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_loopback_mode(self):
+    self.__loopback_mode = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True)
+
+
+  def _get_description(self):
+    """
+    Getter method for description, mapped from YANG variable /interfaces/interface/config/description (string)
+
+    YANG Description: A textual description of the interface.
+
+A server implementation MAY map this leaf to the ifAlias
+MIB object.  Such an implementation needs to use some
+mechanism to handle the differences in size and characters
+allowed between this leaf and ifAlias.  The definition of
+such a mechanism is outside the scope of this document.
+
+Since ifAlias is defined to be stored in non-volatile
+storage, the MIB implementation MUST map ifAlias to the
+value of 'description' in the persistently stored
+datastore.
+
+Specifically, if the device supports ':startup', when
+ifAlias is read the device MUST return the value of
+'description' in the 'startup' datastore, and when it is
+written, it MUST be written to the 'running' and 'startup'
+datastores.  Note that it is up to the implementation to
+
+decide whether to modify this single leaf in 'startup' or
+perform an implicit copy-config from 'running' to
+'startup'.
+
+If the device does not support ':startup', ifAlias MUST
+be mapped to the 'description' leaf in the 'running'
+datastore.
+    """
+    return self.__description
+      
+  def _set_description(self, v, load=False):
+    """
+    Setter method for description, mapped from YANG variable /interfaces/interface/config/description (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_description is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_description() directly.
+
+    YANG Description: A textual description of the interface.
+
+A server implementation MAY map this leaf to the ifAlias
+MIB object.  Such an implementation needs to use some
+mechanism to handle the differences in size and characters
+allowed between this leaf and ifAlias.  The definition of
+such a mechanism is outside the scope of this document.
+
+Since ifAlias is defined to be stored in non-volatile
+storage, the MIB implementation MUST map ifAlias to the
+value of 'description' in the persistently stored
+datastore.
+
+Specifically, if the device supports ':startup', when
+ifAlias is read the device MUST return the value of
+'description' in the 'startup' datastore, and when it is
+written, it MUST be written to the 'running' and 'startup'
+datastores.  Note that it is up to the implementation to
+
+decide whether to modify this single leaf in 'startup' or
+perform an implicit copy-config from 'running' to
+'startup'.
+
+If the device does not support ':startup', ifAlias MUST
+be mapped to the 'description' leaf in the 'running'
+datastore.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """description must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True)""",
+        })
+
+    self.__description = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_description(self):
+    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True)
+
+
+  def _get_enabled(self):
+    """
+    Getter method for enabled, mapped from YANG variable /interfaces/interface/config/enabled (boolean)
+
+    YANG Description: This leaf contains the configured, desired state of the
+interface.
+
+Systems that implement the IF-MIB use the value of this
+leaf in the 'running' datastore to set
+IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
+has been initialized, as described in RFC 2863.
+
+Changes in this leaf in the 'running' datastore are
+reflected in ifAdminStatus, but if ifAdminStatus is
+changed over SNMP, this leaf is not affected.
+    """
+    return self.__enabled
+      
+  def _set_enabled(self, v, load=False):
+    """
+    Setter method for enabled, mapped from YANG variable /interfaces/interface/config/enabled (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_enabled is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_enabled() directly.
+
+    YANG Description: This leaf contains the configured, desired state of the
+interface.
+
+Systems that implement the IF-MIB use the value of this
+leaf in the 'running' datastore to set
+IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
+has been initialized, as described in RFC 2863.
+
+Changes in this leaf in the 'running' datastore are
+reflected in ifAdminStatus, but if ifAdminStatus is
+changed over SNMP, this leaf is not affected.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """enabled must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True)""",
+        })
+
+    self.__enabled = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_enabled(self):
+    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True)
+
+  name = __builtin__.property(_get_name, _set_name)
+  type = __builtin__.property(_get_type, _set_type)
+  mtu = __builtin__.property(_get_mtu, _set_mtu)
+  loopback_mode = __builtin__.property(_get_loopback_mode, _set_loopback_mode)
+  description = __builtin__.property(_get_description, _set_description)
+  enabled = __builtin__.property(_get_enabled, _set_enabled)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('type', type), ('mtu', mtu), ('loopback_mode', loopback_mode), ('description', description), ('enabled', enabled), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..0d56776a7581d6f16a0059ec7f3909e4aa80c41b
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/__init__.py
@@ -0,0 +1,156 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import config
+from . import state
+class ethernet(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-interfaces - based on the path /interfaces/interface/ethernet. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Top-level container for ethernet configuration
+and state
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)
+
+  _yang_name = 'ethernet'
+  _yang_namespace = 'http://openconfig.net/yang/interfaces'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True)
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['interfaces', 'interface', 'ethernet']
+
+  def _get_config(self):
+    """
+    Getter method for config, mapped from YANG variable /interfaces/interface/ethernet/config (container)
+
+    YANG Description: Configuration data for ethernet interfaces
+    """
+    return self.__config
+      
+  def _set_config(self, v, load=False):
+    """
+    Setter method for config, mapped from YANG variable /interfaces/interface/ethernet/config (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_config is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_config() directly.
+
+    YANG Description: Configuration data for ethernet interfaces
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """config must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True)""",
+        })
+
+    self.__config = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_config(self):
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True)
+
+
+  def _get_state(self):
+    """
+    Getter method for state, mapped from YANG variable /interfaces/interface/ethernet/state (container)
+
+    YANG Description: State variables for Ethernet interfaces
+    """
+    return self.__state
+      
+  def _set_state(self, v, load=False):
+    """
+    Setter method for state, mapped from YANG variable /interfaces/interface/ethernet/state (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_state is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_state() directly.
+
+    YANG Description: State variables for Ethernet interfaces
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """state must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True)""",
+        })
+
+    self.__state = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_state(self):
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=True)
+
+  config = __builtin__.property(_get_config, _set_config)
+  state = __builtin__.property(_get_state, _set_state)
+
+
+  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/config/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/config/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..d07a615a7896c294e004680cc920859df3f80b15
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/config/__init__.py
@@ -0,0 +1,416 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class config(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-interfaces - based on the path /interfaces/interface/ethernet/config. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Configuration data for ethernet interfaces
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__mac_address','__auto_negotiate','__standalone_link_training','__duplex_mode','__port_speed','__enable_flow_control','__fec_mode',)
+
+  _yang_name = 'config'
+  _yang_namespace = 'http://openconfig.net/yang/interfaces'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__mac_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=True)
+    self.__auto_negotiate = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True)
+    self.__standalone_link_training = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True)
+    self.__duplex_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=True)
+    self.__port_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=True)
+    self.__enable_flow_control = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True)
+    self.__fec_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['interfaces', 'interface', 'ethernet', 'config']
+
+  def _get_mac_address(self):
+    """
+    Getter method for mac_address, mapped from YANG variable /interfaces/interface/ethernet/config/mac_address (oc-yang:mac-address)
+
+    YANG Description: Assigns a MAC address to the Ethernet interface.  If not
+specified, the corresponding operational state leaf is
+expected to show the system-assigned MAC address.
+    """
+    return self.__mac_address
+      
+  def _set_mac_address(self, v, load=False):
+    """
+    Setter method for mac_address, mapped from YANG variable /interfaces/interface/ethernet/config/mac_address (oc-yang:mac-address)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_mac_address is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_mac_address() directly.
+
+    YANG Description: Assigns a MAC address to the Ethernet interface.  If not
+specified, the corresponding operational state leaf is
+expected to show the system-assigned MAC address.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """mac_address must be of a type compatible with oc-yang:mac-address""",
+          'defined-type': "oc-yang:mac-address",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=True)""",
+        })
+
+    self.__mac_address = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_mac_address(self):
+    self.__mac_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=True)
+
+
+  def _get_auto_negotiate(self):
+    """
+    Getter method for auto_negotiate, mapped from YANG variable /interfaces/interface/ethernet/config/auto_negotiate (boolean)
+
+    YANG Description: Set to TRUE to request the interface to auto-negotiate
+transmission parameters with its peer interface.  When
+set to FALSE, the transmission parameters are specified
+manually.
+    """
+    return self.__auto_negotiate
+      
+  def _set_auto_negotiate(self, v, load=False):
+    """
+    Setter method for auto_negotiate, mapped from YANG variable /interfaces/interface/ethernet/config/auto_negotiate (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_auto_negotiate is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_auto_negotiate() directly.
+
+    YANG Description: Set to TRUE to request the interface to auto-negotiate
+transmission parameters with its peer interface.  When
+set to FALSE, the transmission parameters are specified
+manually.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """auto_negotiate must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True)""",
+        })
+
+    self.__auto_negotiate = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_auto_negotiate(self):
+    self.__auto_negotiate = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True)
+
+
+  def _get_standalone_link_training(self):
+    """
+    Getter method for standalone_link_training, mapped from YANG variable /interfaces/interface/ethernet/config/standalone_link_training (boolean)
+
+    YANG Description: Link training is automatic tuning of the SerDes transmit and
+receive parameters to ensure an optimal connection over copper
+links. It is normally run as part of the auto negotiation
+sequence as specified in IEEE 802.3 Clause 73.
+
+Standalone link training is used when full auto negotiation is
+not desired on an Ethernet link but link training is needed.
+It is configured by setting the standalone-link-training leaf
+to TRUE and augo-negotiate leaf to FALSE.
+
+Note: If auto-negotiate is true, then the value of standalone
+link training leaf will be ignored.
+    """
+    return self.__standalone_link_training
+      
+  def _set_standalone_link_training(self, v, load=False):
+    """
+    Setter method for standalone_link_training, mapped from YANG variable /interfaces/interface/ethernet/config/standalone_link_training (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_standalone_link_training is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_standalone_link_training() directly.
+
+    YANG Description: Link training is automatic tuning of the SerDes transmit and
+receive parameters to ensure an optimal connection over copper
+links. It is normally run as part of the auto negotiation
+sequence as specified in IEEE 802.3 Clause 73.
+
+Standalone link training is used when full auto negotiation is
+not desired on an Ethernet link but link training is needed.
+It is configured by setting the standalone-link-training leaf
+to TRUE and augo-negotiate leaf to FALSE.
+
+Note: If auto-negotiate is true, then the value of standalone
+link training leaf will be ignored.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """standalone_link_training must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True)""",
+        })
+
+    self.__standalone_link_training = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_standalone_link_training(self):
+    self.__standalone_link_training = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True)
+
+
+  def _get_duplex_mode(self):
+    """
+    Getter method for duplex_mode, mapped from YANG variable /interfaces/interface/ethernet/config/duplex_mode (enumeration)
+
+    YANG Description: When auto-negotiate is TRUE, this optionally sets the
+duplex mode that will be advertised to the peer.  If
+unspecified, the interface should negotiate the duplex mode
+directly (typically full-duplex).  When auto-negotiate is
+FALSE, this sets the duplex mode on the interface directly.
+    """
+    return self.__duplex_mode
+      
+  def _set_duplex_mode(self, v, load=False):
+    """
+    Setter method for duplex_mode, mapped from YANG variable /interfaces/interface/ethernet/config/duplex_mode (enumeration)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_duplex_mode is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_duplex_mode() directly.
+
+    YANG Description: When auto-negotiate is TRUE, this optionally sets the
+duplex mode that will be advertised to the peer.  If
+unspecified, the interface should negotiate the duplex mode
+directly (typically full-duplex).  When auto-negotiate is
+FALSE, this sets the duplex mode on the interface directly.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """duplex_mode must be of a type compatible with enumeration""",
+          'defined-type': "openconfig-if-ethernet:enumeration",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=True)""",
+        })
+
+    self.__duplex_mode = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_duplex_mode(self):
+    self.__duplex_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=True)
+
+
+  def _get_port_speed(self):
+    """
+    Getter method for port_speed, mapped from YANG variable /interfaces/interface/ethernet/config/port_speed (identityref)
+
+    YANG Description: When auto-negotiate is TRUE, this optionally sets the
+port-speed mode that will be advertised to the peer for
+negotiation.  If unspecified, it is expected that the
+interface will select the highest speed available based on
+negotiation.  When auto-negotiate is set to FALSE, sets the
+link speed to a fixed value -- supported values are defined
+by ETHERNET_SPEED identities
+    """
+    return self.__port_speed
+      
+  def _set_port_speed(self, v, load=False):
+    """
+    Setter method for port_speed, mapped from YANG variable /interfaces/interface/ethernet/config/port_speed (identityref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_port_speed is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_port_speed() directly.
+
+    YANG Description: When auto-negotiate is TRUE, this optionally sets the
+port-speed mode that will be advertised to the peer for
+negotiation.  If unspecified, it is expected that the
+interface will select the highest speed available based on
+negotiation.  When auto-negotiate is set to FALSE, sets the
+link speed to a fixed value -- supported values are defined
+by ETHERNET_SPEED identities
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """port_speed must be of a type compatible with identityref""",
+          'defined-type': "openconfig-if-ethernet:identityref",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=True)""",
+        })
+
+    self.__port_speed = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_port_speed(self):
+    self.__port_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=True)
+
+
+  def _get_enable_flow_control(self):
+    """
+    Getter method for enable_flow_control, mapped from YANG variable /interfaces/interface/ethernet/config/enable_flow_control (boolean)
+
+    YANG Description: Enable or disable flow control for this interface.
+Ethernet flow control is a mechanism by which a receiver
+may send PAUSE frames to a sender to stop transmission for
+a specified time.
+
+This setting should override auto-negotiated flow control
+settings.  If left unspecified, and auto-negotiate is TRUE,
+flow control mode is negotiated with the peer interface.
+    """
+    return self.__enable_flow_control
+      
+  def _set_enable_flow_control(self, v, load=False):
+    """
+    Setter method for enable_flow_control, mapped from YANG variable /interfaces/interface/ethernet/config/enable_flow_control (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_enable_flow_control is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_enable_flow_control() directly.
+
+    YANG Description: Enable or disable flow control for this interface.
+Ethernet flow control is a mechanism by which a receiver
+may send PAUSE frames to a sender to stop transmission for
+a specified time.
+
+This setting should override auto-negotiated flow control
+settings.  If left unspecified, and auto-negotiate is TRUE,
+flow control mode is negotiated with the peer interface.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """enable_flow_control must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True)""",
+        })
+
+    self.__enable_flow_control = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_enable_flow_control(self):
+    self.__enable_flow_control = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=True)
+
+
+  def _get_fec_mode(self):
+    """
+    Getter method for fec_mode, mapped from YANG variable /interfaces/interface/ethernet/config/fec_mode (identityref)
+
+    YANG Description: The FEC mode applied to the physical channels associated with
+the interface.
+    """
+    return self.__fec_mode
+      
+  def _set_fec_mode(self, v, load=False):
+    """
+    Setter method for fec_mode, mapped from YANG variable /interfaces/interface/ethernet/config/fec_mode (identityref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_fec_mode is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_fec_mode() directly.
+
+    YANG Description: The FEC mode applied to the physical channels associated with
+the interface.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """fec_mode must be of a type compatible with identityref""",
+          'defined-type': "openconfig-if-ethernet:identityref",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=True)""",
+        })
+
+    self.__fec_mode = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_fec_mode(self):
+    self.__fec_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=True)
+
+  mac_address = __builtin__.property(_get_mac_address, _set_mac_address)
+  auto_negotiate = __builtin__.property(_get_auto_negotiate, _set_auto_negotiate)
+  standalone_link_training = __builtin__.property(_get_standalone_link_training, _set_standalone_link_training)
+  duplex_mode = __builtin__.property(_get_duplex_mode, _set_duplex_mode)
+  port_speed = __builtin__.property(_get_port_speed, _set_port_speed)
+  enable_flow_control = __builtin__.property(_get_enable_flow_control, _set_enable_flow_control)
+  fec_mode = __builtin__.property(_get_fec_mode, _set_fec_mode)
+
+
+  _pyangbind_elements = OrderedDict([('mac_address', mac_address), ('auto_negotiate', auto_negotiate), ('standalone_link_training', standalone_link_training), ('duplex_mode', duplex_mode), ('port_speed', port_speed), ('enable_flow_control', enable_flow_control), ('fec_mode', fec_mode), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/state/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/state/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..07b61c4c08146ce5641faf9efa6188fe84d7d55c
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/state/__init__.py
@@ -0,0 +1,583 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import counters
+class state(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-interfaces - based on the path /interfaces/interface/ethernet/state. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: State variables for Ethernet interfaces
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__mac_address','__auto_negotiate','__standalone_link_training','__duplex_mode','__port_speed','__enable_flow_control','__fec_mode','__hw_mac_address','__negotiated_duplex_mode','__negotiated_port_speed','__counters',)
+
+  _yang_name = 'state'
+  _yang_namespace = 'http://openconfig.net/yang/interfaces'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__mac_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=False)
+    self.__auto_negotiate = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False)
+    self.__standalone_link_training = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False)
+    self.__duplex_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=False)
+    self.__port_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False)
+    self.__enable_flow_control = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False)
+    self.__fec_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False)
+    self.__hw_mac_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="hw-mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=False)
+    self.__negotiated_duplex_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="negotiated-duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=False)
+    self.__negotiated_port_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="negotiated-port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False)
+    self.__counters = YANGDynClass(base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['interfaces', 'interface', 'ethernet', 'state']
+
+  def _get_mac_address(self):
+    """
+    Getter method for mac_address, mapped from YANG variable /interfaces/interface/ethernet/state/mac_address (oc-yang:mac-address)
+
+    YANG Description: Assigns a MAC address to the Ethernet interface.  If not
+specified, the corresponding operational state leaf is
+expected to show the system-assigned MAC address.
+    """
+    return self.__mac_address
+      
+  def _set_mac_address(self, v, load=False):
+    """
+    Setter method for mac_address, mapped from YANG variable /interfaces/interface/ethernet/state/mac_address (oc-yang:mac-address)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_mac_address is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_mac_address() directly.
+
+    YANG Description: Assigns a MAC address to the Ethernet interface.  If not
+specified, the corresponding operational state leaf is
+expected to show the system-assigned MAC address.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """mac_address must be of a type compatible with oc-yang:mac-address""",
+          'defined-type': "oc-yang:mac-address",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=False)""",
+        })
+
+    self.__mac_address = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_mac_address(self):
+    self.__mac_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=False)
+
+
+  def _get_auto_negotiate(self):
+    """
+    Getter method for auto_negotiate, mapped from YANG variable /interfaces/interface/ethernet/state/auto_negotiate (boolean)
+
+    YANG Description: Set to TRUE to request the interface to auto-negotiate
+transmission parameters with its peer interface.  When
+set to FALSE, the transmission parameters are specified
+manually.
+    """
+    return self.__auto_negotiate
+      
+  def _set_auto_negotiate(self, v, load=False):
+    """
+    Setter method for auto_negotiate, mapped from YANG variable /interfaces/interface/ethernet/state/auto_negotiate (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_auto_negotiate is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_auto_negotiate() directly.
+
+    YANG Description: Set to TRUE to request the interface to auto-negotiate
+transmission parameters with its peer interface.  When
+set to FALSE, the transmission parameters are specified
+manually.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """auto_negotiate must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__auto_negotiate = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_auto_negotiate(self):
+    self.__auto_negotiate = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="auto-negotiate", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False)
+
+
+  def _get_standalone_link_training(self):
+    """
+    Getter method for standalone_link_training, mapped from YANG variable /interfaces/interface/ethernet/state/standalone_link_training (boolean)
+
+    YANG Description: Link training is automatic tuning of the SerDes transmit and
+receive parameters to ensure an optimal connection over copper
+links. It is normally run as part of the auto negotiation
+sequence as specified in IEEE 802.3 Clause 73.
+
+Standalone link training is used when full auto negotiation is
+not desired on an Ethernet link but link training is needed.
+It is configured by setting the standalone-link-training leaf
+to TRUE and augo-negotiate leaf to FALSE.
+
+Note: If auto-negotiate is true, then the value of standalone
+link training leaf will be ignored.
+    """
+    return self.__standalone_link_training
+      
+  def _set_standalone_link_training(self, v, load=False):
+    """
+    Setter method for standalone_link_training, mapped from YANG variable /interfaces/interface/ethernet/state/standalone_link_training (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_standalone_link_training is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_standalone_link_training() directly.
+
+    YANG Description: Link training is automatic tuning of the SerDes transmit and
+receive parameters to ensure an optimal connection over copper
+links. It is normally run as part of the auto negotiation
+sequence as specified in IEEE 802.3 Clause 73.
+
+Standalone link training is used when full auto negotiation is
+not desired on an Ethernet link but link training is needed.
+It is configured by setting the standalone-link-training leaf
+to TRUE and augo-negotiate leaf to FALSE.
+
+Note: If auto-negotiate is true, then the value of standalone
+link training leaf will be ignored.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """standalone_link_training must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__standalone_link_training = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_standalone_link_training(self):
+    self.__standalone_link_training = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="standalone-link-training", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False)
+
+
+  def _get_duplex_mode(self):
+    """
+    Getter method for duplex_mode, mapped from YANG variable /interfaces/interface/ethernet/state/duplex_mode (enumeration)
+
+    YANG Description: When auto-negotiate is TRUE, this optionally sets the
+duplex mode that will be advertised to the peer.  If
+unspecified, the interface should negotiate the duplex mode
+directly (typically full-duplex).  When auto-negotiate is
+FALSE, this sets the duplex mode on the interface directly.
+    """
+    return self.__duplex_mode
+      
+  def _set_duplex_mode(self, v, load=False):
+    """
+    Setter method for duplex_mode, mapped from YANG variable /interfaces/interface/ethernet/state/duplex_mode (enumeration)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_duplex_mode is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_duplex_mode() directly.
+
+    YANG Description: When auto-negotiate is TRUE, this optionally sets the
+duplex mode that will be advertised to the peer.  If
+unspecified, the interface should negotiate the duplex mode
+directly (typically full-duplex).  When auto-negotiate is
+FALSE, this sets the duplex mode on the interface directly.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """duplex_mode must be of a type compatible with enumeration""",
+          'defined-type': "openconfig-if-ethernet:enumeration",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=False)""",
+        })
+
+    self.__duplex_mode = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_duplex_mode(self):
+    self.__duplex_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=False)
+
+
+  def _get_port_speed(self):
+    """
+    Getter method for port_speed, mapped from YANG variable /interfaces/interface/ethernet/state/port_speed (identityref)
+
+    YANG Description: When auto-negotiate is TRUE, this optionally sets the
+port-speed mode that will be advertised to the peer for
+negotiation.  If unspecified, it is expected that the
+interface will select the highest speed available based on
+negotiation.  When auto-negotiate is set to FALSE, sets the
+link speed to a fixed value -- supported values are defined
+by ETHERNET_SPEED identities
+    """
+    return self.__port_speed
+      
+  def _set_port_speed(self, v, load=False):
+    """
+    Setter method for port_speed, mapped from YANG variable /interfaces/interface/ethernet/state/port_speed (identityref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_port_speed is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_port_speed() directly.
+
+    YANG Description: When auto-negotiate is TRUE, this optionally sets the
+port-speed mode that will be advertised to the peer for
+negotiation.  If unspecified, it is expected that the
+interface will select the highest speed available based on
+negotiation.  When auto-negotiate is set to FALSE, sets the
+link speed to a fixed value -- supported values are defined
+by ETHERNET_SPEED identities
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """port_speed must be of a type compatible with identityref""",
+          'defined-type': "openconfig-if-ethernet:identityref",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False)""",
+        })
+
+    self.__port_speed = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_port_speed(self):
+    self.__port_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False)
+
+
+  def _get_enable_flow_control(self):
+    """
+    Getter method for enable_flow_control, mapped from YANG variable /interfaces/interface/ethernet/state/enable_flow_control (boolean)
+
+    YANG Description: Enable or disable flow control for this interface.
+Ethernet flow control is a mechanism by which a receiver
+may send PAUSE frames to a sender to stop transmission for
+a specified time.
+
+This setting should override auto-negotiated flow control
+settings.  If left unspecified, and auto-negotiate is TRUE,
+flow control mode is negotiated with the peer interface.
+    """
+    return self.__enable_flow_control
+      
+  def _set_enable_flow_control(self, v, load=False):
+    """
+    Setter method for enable_flow_control, mapped from YANG variable /interfaces/interface/ethernet/state/enable_flow_control (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_enable_flow_control is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_enable_flow_control() directly.
+
+    YANG Description: Enable or disable flow control for this interface.
+Ethernet flow control is a mechanism by which a receiver
+may send PAUSE frames to a sender to stop transmission for
+a specified time.
+
+This setting should override auto-negotiated flow control
+settings.  If left unspecified, and auto-negotiate is TRUE,
+flow control mode is negotiated with the peer interface.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """enable_flow_control must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__enable_flow_control = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_enable_flow_control(self):
+    self.__enable_flow_control = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="enable-flow-control", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='boolean', is_config=False)
+
+
+  def _get_fec_mode(self):
+    """
+    Getter method for fec_mode, mapped from YANG variable /interfaces/interface/ethernet/state/fec_mode (identityref)
+
+    YANG Description: The FEC mode applied to the physical channels associated with
+the interface.
+    """
+    return self.__fec_mode
+      
+  def _set_fec_mode(self, v, load=False):
+    """
+    Setter method for fec_mode, mapped from YANG variable /interfaces/interface/ethernet/state/fec_mode (identityref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_fec_mode is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_fec_mode() directly.
+
+    YANG Description: The FEC mode applied to the physical channels associated with
+the interface.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """fec_mode must be of a type compatible with identityref""",
+          'defined-type': "openconfig-if-ethernet:identityref",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False)""",
+        })
+
+    self.__fec_mode = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_fec_mode(self):
+    self.__fec_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_FC': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS528': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_RS544_2X_INTERLEAVE': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:FEC_DISABLED': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="fec-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False)
+
+
+  def _get_hw_mac_address(self):
+    """
+    Getter method for hw_mac_address, mapped from YANG variable /interfaces/interface/ethernet/state/hw_mac_address (oc-yang:mac-address)
+
+    YANG Description: Represents the 'burned-in', or system-assigned, MAC
+address for the Ethernet interface.
+    """
+    return self.__hw_mac_address
+      
+  def _set_hw_mac_address(self, v, load=False):
+    """
+    Setter method for hw_mac_address, mapped from YANG variable /interfaces/interface/ethernet/state/hw_mac_address (oc-yang:mac-address)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_hw_mac_address is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_hw_mac_address() directly.
+
+    YANG Description: Represents the 'burned-in', or system-assigned, MAC
+address for the Ethernet interface.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="hw-mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """hw_mac_address must be of a type compatible with oc-yang:mac-address""",
+          'defined-type': "oc-yang:mac-address",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="hw-mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=False)""",
+        })
+
+    self.__hw_mac_address = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_hw_mac_address(self):
+    self.__hw_mac_address = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_dict={'pattern': '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'}), is_leaf=True, yang_name="hw-mac-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:mac-address', is_config=False)
+
+
+  def _get_negotiated_duplex_mode(self):
+    """
+    Getter method for negotiated_duplex_mode, mapped from YANG variable /interfaces/interface/ethernet/state/negotiated_duplex_mode (enumeration)
+
+    YANG Description: When auto-negotiate is set to TRUE, and the interface has
+completed auto-negotiation with the remote peer, this value
+shows the duplex mode that has been negotiated.
+    """
+    return self.__negotiated_duplex_mode
+      
+  def _set_negotiated_duplex_mode(self, v, load=False):
+    """
+    Setter method for negotiated_duplex_mode, mapped from YANG variable /interfaces/interface/ethernet/state/negotiated_duplex_mode (enumeration)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_negotiated_duplex_mode is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_negotiated_duplex_mode() directly.
+
+    YANG Description: When auto-negotiate is set to TRUE, and the interface has
+completed auto-negotiation with the remote peer, this value
+shows the duplex mode that has been negotiated.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="negotiated-duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """negotiated_duplex_mode must be of a type compatible with enumeration""",
+          'defined-type': "openconfig-if-ethernet:enumeration",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="negotiated-duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=False)""",
+        })
+
+    self.__negotiated_duplex_mode = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_negotiated_duplex_mode(self):
+    self.__negotiated_duplex_mode = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'FULL': {}, 'HALF': {}},), is_leaf=True, yang_name="negotiated-duplex-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='enumeration', is_config=False)
+
+
+  def _get_negotiated_port_speed(self):
+    """
+    Getter method for negotiated_port_speed, mapped from YANG variable /interfaces/interface/ethernet/state/negotiated_port_speed (identityref)
+
+    YANG Description: When auto-negotiate is set to TRUE, and the interface has
+completed auto-negotiation with the remote peer, this value
+shows the interface speed that has been negotiated.
+    """
+    return self.__negotiated_port_speed
+      
+  def _set_negotiated_port_speed(self, v, load=False):
+    """
+    Setter method for negotiated_port_speed, mapped from YANG variable /interfaces/interface/ethernet/state/negotiated_port_speed (identityref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_negotiated_port_speed is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_negotiated_port_speed() directly.
+
+    YANG Description: When auto-negotiate is set to TRUE, and the interface has
+completed auto-negotiation with the remote peer, this value
+shows the interface speed that has been negotiated.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="negotiated-port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """negotiated_port_speed must be of a type compatible with identityref""",
+          'defined-type': "openconfig-if-ethernet:identityref",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="negotiated-port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False)""",
+        })
+
+    self.__negotiated_port_speed = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_negotiated_port_speed(self):
+    self.__negotiated_port_speed = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_1GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_2500MB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_5GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_10GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_25GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_40GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_50GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_100GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_200GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_400GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_600GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_800GB': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}, 'oc-eth:SPEED_UNKNOWN': {'@module': 'openconfig-if-ethernet', '@namespace': 'http://openconfig.net/yang/interfaces/ethernet'}},), is_leaf=True, yang_name="negotiated-port-speed", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='identityref', is_config=False)
+
+
+  def _get_counters(self):
+    """
+    Getter method for counters, mapped from YANG variable /interfaces/interface/ethernet/state/counters (container)
+
+    YANG Description: Ethernet interface counters
+    """
+    return self.__counters
+      
+  def _set_counters(self, v, load=False):
+    """
+    Setter method for counters, mapped from YANG variable /interfaces/interface/ethernet/state/counters (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_counters is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_counters() directly.
+
+    YANG Description: Ethernet interface counters
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """counters must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=False)""",
+        })
+
+    self.__counters = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_counters(self):
+    self.__counters = YANGDynClass(base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='container', is_config=False)
+
+  mac_address = __builtin__.property(_get_mac_address)
+  auto_negotiate = __builtin__.property(_get_auto_negotiate)
+  standalone_link_training = __builtin__.property(_get_standalone_link_training)
+  duplex_mode = __builtin__.property(_get_duplex_mode)
+  port_speed = __builtin__.property(_get_port_speed)
+  enable_flow_control = __builtin__.property(_get_enable_flow_control)
+  fec_mode = __builtin__.property(_get_fec_mode)
+  hw_mac_address = __builtin__.property(_get_hw_mac_address)
+  negotiated_duplex_mode = __builtin__.property(_get_negotiated_duplex_mode)
+  negotiated_port_speed = __builtin__.property(_get_negotiated_port_speed)
+  counters = __builtin__.property(_get_counters)
+
+
+  _pyangbind_elements = OrderedDict([('mac_address', mac_address), ('auto_negotiate', auto_negotiate), ('standalone_link_training', standalone_link_training), ('duplex_mode', duplex_mode), ('port_speed', port_speed), ('enable_flow_control', enable_flow_control), ('fec_mode', fec_mode), ('hw_mac_address', hw_mac_address), ('negotiated_duplex_mode', negotiated_duplex_mode), ('negotiated_port_speed', negotiated_port_speed), ('counters', counters), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/state/counters/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/state/counters/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..7387174585ced25cd6461839f76702d29e434ceb
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/interfaces/interface/ethernet/state/counters/__init__.py
@@ -0,0 +1,951 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class counters(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-interfaces - based on the path /interfaces/interface/ethernet/state/counters. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Ethernet interface counters
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__in_mac_control_frames','__in_mac_pause_frames','__in_oversize_frames','__in_undersize_frames','__in_jabber_frames','__in_fragment_frames','__in_8021q_frames','__in_crc_errors','__in_block_errors','__in_carrier_errors','__in_interrupted_tx','__in_late_collision','__in_mac_errors_rx','__in_single_collision','__in_symbol_error','__in_maxsize_exceeded','__out_mac_control_frames','__out_mac_pause_frames','__out_8021q_frames','__out_mac_errors_tx',)
+
+  _yang_name = 'counters'
+  _yang_namespace = 'http://openconfig.net/yang/interfaces'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__in_mac_control_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_mac_pause_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_oversize_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-oversize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_undersize_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-undersize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_jabber_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-jabber-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_fragment_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fragment-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_8021q_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_crc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-crc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_block_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-block-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_carrier_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-carrier-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_interrupted_tx = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-interrupted-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_late_collision = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-late-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_mac_errors_rx = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-errors-rx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_single_collision = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-single-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_symbol_error = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-symbol-error", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_maxsize_exceeded = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-maxsize-exceeded", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    self.__out_mac_control_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    self.__out_mac_pause_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    self.__out_8021q_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    self.__out_mac_errors_tx = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-errors-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['interfaces', 'interface', 'ethernet', 'state', 'counters']
+
+  def _get_in_mac_control_frames(self):
+    """
+    Getter method for in_mac_control_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_mac_control_frames (oc-yang:counter64)
+
+    YANG Description: MAC layer control frames received on the interface
+    """
+    return self.__in_mac_control_frames
+      
+  def _set_in_mac_control_frames(self, v, load=False):
+    """
+    Setter method for in_mac_control_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_mac_control_frames (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_mac_control_frames is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_mac_control_frames() directly.
+
+    YANG Description: MAC layer control frames received on the interface
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_mac_control_frames must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_mac_control_frames = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_mac_control_frames(self):
+    self.__in_mac_control_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_mac_pause_frames(self):
+    """
+    Getter method for in_mac_pause_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_mac_pause_frames (oc-yang:counter64)
+
+    YANG Description: MAC layer PAUSE frames received on the interface
+    """
+    return self.__in_mac_pause_frames
+      
+  def _set_in_mac_pause_frames(self, v, load=False):
+    """
+    Setter method for in_mac_pause_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_mac_pause_frames (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_mac_pause_frames is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_mac_pause_frames() directly.
+
+    YANG Description: MAC layer PAUSE frames received on the interface
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_mac_pause_frames must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_mac_pause_frames = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_mac_pause_frames(self):
+    self.__in_mac_pause_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_oversize_frames(self):
+    """
+    Getter method for in_oversize_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_oversize_frames (oc-yang:counter64)
+
+    YANG 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.
+    """
+    return self.__in_oversize_frames
+      
+  def _set_in_oversize_frames(self, v, load=False):
+    """
+    Setter method for in_oversize_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_oversize_frames (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_oversize_frames is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_oversize_frames() directly.
+
+    YANG 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.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-oversize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_oversize_frames must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-oversize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_oversize_frames = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_oversize_frames(self):
+    self.__in_oversize_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-oversize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_undersize_frames(self):
+    """
+    Getter method for in_undersize_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_undersize_frames (oc-yang:counter64)
+
+    YANG 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.
+    """
+    return self.__in_undersize_frames
+      
+  def _set_in_undersize_frames(self, v, load=False):
+    """
+    Setter method for in_undersize_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_undersize_frames (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_undersize_frames is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_undersize_frames() directly.
+
+    YANG 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.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-undersize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_undersize_frames must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-undersize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_undersize_frames = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_undersize_frames(self):
+    self.__in_undersize_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-undersize-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_jabber_frames(self):
+    """
+    Getter method for in_jabber_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_jabber_frames (oc-yang:counter64)
+
+    YANG 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.
+    """
+    return self.__in_jabber_frames
+      
+  def _set_in_jabber_frames(self, v, load=False):
+    """
+    Setter method for in_jabber_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_jabber_frames (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_jabber_frames is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_jabber_frames() directly.
+
+    YANG 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.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-jabber-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_jabber_frames must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-jabber-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_jabber_frames = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_jabber_frames(self):
+    self.__in_jabber_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-jabber-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_fragment_frames(self):
+    """
+    Getter method for in_fragment_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_fragment_frames (oc-yang:counter64)
+
+    YANG 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).
+    """
+    return self.__in_fragment_frames
+      
+  def _set_in_fragment_frames(self, v, load=False):
+    """
+    Setter method for in_fragment_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_fragment_frames (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_fragment_frames is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_fragment_frames() directly.
+
+    YANG 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).
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fragment-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_fragment_frames must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fragment-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_fragment_frames = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_fragment_frames(self):
+    self.__in_fragment_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fragment-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_8021q_frames(self):
+    """
+    Getter method for in_8021q_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_8021q_frames (oc-yang:counter64)
+
+    YANG Description: Number of 802.1q tagged frames received on the interface
+    """
+    return self.__in_8021q_frames
+      
+  def _set_in_8021q_frames(self, v, load=False):
+    """
+    Setter method for in_8021q_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_8021q_frames (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_8021q_frames is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_8021q_frames() directly.
+
+    YANG Description: Number of 802.1q tagged frames received on the interface
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_8021q_frames must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_8021q_frames = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_8021q_frames(self):
+    self.__in_8021q_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_crc_errors(self):
+    """
+    Getter method for in_crc_errors, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_crc_errors (oc-yang:counter64)
+
+    YANG Description: The total number of frames received that
+had a length (excluding framing bits, but
+including FCS octets) of between 64 and 1518
+octets, inclusive, but 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)
+    """
+    return self.__in_crc_errors
+      
+  def _set_in_crc_errors(self, v, load=False):
+    """
+    Setter method for in_crc_errors, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_crc_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_crc_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_crc_errors() directly.
+
+    YANG Description: The total number of frames received that
+had a length (excluding framing bits, but
+including FCS octets) of between 64 and 1518
+octets, inclusive, but 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)
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-crc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_crc_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-crc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_crc_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_crc_errors(self):
+    self.__in_crc_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-crc-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_block_errors(self):
+    """
+    Getter method for in_block_errors, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_block_errors (oc-yang:counter64)
+
+    YANG Description: The number of received errored blocks. Error detection codes
+are capable of detecting whether one or more errors have
+occurred in a given sequence of bits – the block. It is
+normally not possible to determine the exact number of errored
+bits within the block
+    """
+    return self.__in_block_errors
+      
+  def _set_in_block_errors(self, v, load=False):
+    """
+    Setter method for in_block_errors, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_block_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_block_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_block_errors() directly.
+
+    YANG Description: The number of received errored blocks. Error detection codes
+are capable of detecting whether one or more errors have
+occurred in a given sequence of bits – the block. It is
+normally not possible to determine the exact number of errored
+bits within the block
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-block-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_block_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-block-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_block_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_block_errors(self):
+    self.__in_block_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-block-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_carrier_errors(self):
+    """
+    Getter method for in_carrier_errors, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_carrier_errors (oc-yang:counter64)
+
+    YANG Description: The number of received errored frames due to a carrier issue.
+The value refers to MIB counter for
+dot3StatsCarrierSenseErrors
+oid=1.3.6.1.2.1.10.7.2.1.11
+    """
+    return self.__in_carrier_errors
+      
+  def _set_in_carrier_errors(self, v, load=False):
+    """
+    Setter method for in_carrier_errors, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_carrier_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_carrier_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_carrier_errors() directly.
+
+    YANG Description: The number of received errored frames due to a carrier issue.
+The value refers to MIB counter for
+dot3StatsCarrierSenseErrors
+oid=1.3.6.1.2.1.10.7.2.1.11
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-carrier-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_carrier_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-carrier-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_carrier_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_carrier_errors(self):
+    self.__in_carrier_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-carrier-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_interrupted_tx(self):
+    """
+    Getter method for in_interrupted_tx, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_interrupted_tx (oc-yang:counter64)
+
+    YANG Description: The number of received errored frames due to interrupted
+transmission issue. The value refers to MIB counter for
+dot3StatsDeferredTransmissions
+oid=1.3.6.1.2.1.10.7.2.1.7
+    """
+    return self.__in_interrupted_tx
+      
+  def _set_in_interrupted_tx(self, v, load=False):
+    """
+    Setter method for in_interrupted_tx, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_interrupted_tx (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_interrupted_tx is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_interrupted_tx() directly.
+
+    YANG Description: The number of received errored frames due to interrupted
+transmission issue. The value refers to MIB counter for
+dot3StatsDeferredTransmissions
+oid=1.3.6.1.2.1.10.7.2.1.7
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-interrupted-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_interrupted_tx must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-interrupted-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_interrupted_tx = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_interrupted_tx(self):
+    self.__in_interrupted_tx = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-interrupted-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_late_collision(self):
+    """
+    Getter method for in_late_collision, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_late_collision (oc-yang:counter64)
+
+    YANG Description: The number of received errored frames due to late collision
+issue. The value refers to MIB counter for
+dot3StatsLateCollisions
+oid=1.3.6.1.2.1.10.7.2.1.8
+    """
+    return self.__in_late_collision
+      
+  def _set_in_late_collision(self, v, load=False):
+    """
+    Setter method for in_late_collision, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_late_collision (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_late_collision is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_late_collision() directly.
+
+    YANG Description: The number of received errored frames due to late collision
+issue. The value refers to MIB counter for
+dot3StatsLateCollisions
+oid=1.3.6.1.2.1.10.7.2.1.8
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-late-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_late_collision must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-late-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_late_collision = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_late_collision(self):
+    self.__in_late_collision = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-late-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_mac_errors_rx(self):
+    """
+    Getter method for in_mac_errors_rx, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_mac_errors_rx (oc-yang:counter64)
+
+    YANG Description: The number of received errored frames due to MAC errors
+received. The value refers to MIB counter for
+dot3StatsInternalMacReceiveErrors
+oid=1.3.6.1.2.1.10.7.2.1.16
+    """
+    return self.__in_mac_errors_rx
+      
+  def _set_in_mac_errors_rx(self, v, load=False):
+    """
+    Setter method for in_mac_errors_rx, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_mac_errors_rx (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_mac_errors_rx is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_mac_errors_rx() directly.
+
+    YANG Description: The number of received errored frames due to MAC errors
+received. The value refers to MIB counter for
+dot3StatsInternalMacReceiveErrors
+oid=1.3.6.1.2.1.10.7.2.1.16
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-errors-rx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_mac_errors_rx must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-errors-rx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_mac_errors_rx = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_mac_errors_rx(self):
+    self.__in_mac_errors_rx = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-mac-errors-rx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_single_collision(self):
+    """
+    Getter method for in_single_collision, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_single_collision (oc-yang:counter64)
+
+    YANG Description: The number of received errored frames due to single collision
+issue. The value refers to MIB counter for
+dot3StatsSingleCollisionFrames
+oid=1.3.6.1.2.1.10.7.2.1.4
+    """
+    return self.__in_single_collision
+      
+  def _set_in_single_collision(self, v, load=False):
+    """
+    Setter method for in_single_collision, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_single_collision (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_single_collision is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_single_collision() directly.
+
+    YANG Description: The number of received errored frames due to single collision
+issue. The value refers to MIB counter for
+dot3StatsSingleCollisionFrames
+oid=1.3.6.1.2.1.10.7.2.1.4
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-single-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_single_collision must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-single-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_single_collision = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_single_collision(self):
+    self.__in_single_collision = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-single-collision", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_symbol_error(self):
+    """
+    Getter method for in_symbol_error, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_symbol_error (oc-yang:counter64)
+
+    YANG Description: The number of received errored frames due to symbol error.
+The value refers to MIB counter for
+in-symbol-error
+oid=1.3.6.1.2.1.10.7.2.1.18
+    """
+    return self.__in_symbol_error
+      
+  def _set_in_symbol_error(self, v, load=False):
+    """
+    Setter method for in_symbol_error, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_symbol_error (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_symbol_error is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_symbol_error() directly.
+
+    YANG Description: The number of received errored frames due to symbol error.
+The value refers to MIB counter for
+in-symbol-error
+oid=1.3.6.1.2.1.10.7.2.1.18
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-symbol-error", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_symbol_error must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-symbol-error", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_symbol_error = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_symbol_error(self):
+    self.__in_symbol_error = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-symbol-error", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_maxsize_exceeded(self):
+    """
+    Getter method for in_maxsize_exceeded, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_maxsize_exceeded (oc-yang:counter64)
+
+    YANG Description: The total number frames received that are well-formed but
+dropped due to exceeding the maximum frame size on the interface
+(e.g., MTU or MRU)
+    """
+    return self.__in_maxsize_exceeded
+      
+  def _set_in_maxsize_exceeded(self, v, load=False):
+    """
+    Setter method for in_maxsize_exceeded, mapped from YANG variable /interfaces/interface/ethernet/state/counters/in_maxsize_exceeded (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_maxsize_exceeded is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_maxsize_exceeded() directly.
+
+    YANG Description: The total number frames received that are well-formed but
+dropped due to exceeding the maximum frame size on the interface
+(e.g., MTU or MRU)
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-maxsize-exceeded", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_maxsize_exceeded must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-maxsize-exceeded", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_maxsize_exceeded = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_maxsize_exceeded(self):
+    self.__in_maxsize_exceeded = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-maxsize-exceeded", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_out_mac_control_frames(self):
+    """
+    Getter method for out_mac_control_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/out_mac_control_frames (oc-yang:counter64)
+
+    YANG Description: MAC layer control frames sent on the interface
+    """
+    return self.__out_mac_control_frames
+      
+  def _set_out_mac_control_frames(self, v, load=False):
+    """
+    Setter method for out_mac_control_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/out_mac_control_frames (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_out_mac_control_frames is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_out_mac_control_frames() directly.
+
+    YANG Description: MAC layer control frames sent on the interface
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """out_mac_control_frames must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__out_mac_control_frames = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_out_mac_control_frames(self):
+    self.__out_mac_control_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-control-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_out_mac_pause_frames(self):
+    """
+    Getter method for out_mac_pause_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/out_mac_pause_frames (oc-yang:counter64)
+
+    YANG Description: MAC layer PAUSE frames sent on the interface
+    """
+    return self.__out_mac_pause_frames
+      
+  def _set_out_mac_pause_frames(self, v, load=False):
+    """
+    Setter method for out_mac_pause_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/out_mac_pause_frames (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_out_mac_pause_frames is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_out_mac_pause_frames() directly.
+
+    YANG Description: MAC layer PAUSE frames sent on the interface
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """out_mac_pause_frames must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__out_mac_pause_frames = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_out_mac_pause_frames(self):
+    self.__out_mac_pause_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-pause-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_out_8021q_frames(self):
+    """
+    Getter method for out_8021q_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/out_8021q_frames (oc-yang:counter64)
+
+    YANG Description: Number of 802.1q tagged frames sent on the interface
+    """
+    return self.__out_8021q_frames
+      
+  def _set_out_8021q_frames(self, v, load=False):
+    """
+    Setter method for out_8021q_frames, mapped from YANG variable /interfaces/interface/ethernet/state/counters/out_8021q_frames (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_out_8021q_frames is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_out_8021q_frames() directly.
+
+    YANG Description: Number of 802.1q tagged frames sent on the interface
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """out_8021q_frames must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__out_8021q_frames = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_out_8021q_frames(self):
+    self.__out_8021q_frames = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-8021q-frames", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_out_mac_errors_tx(self):
+    """
+    Getter method for out_mac_errors_tx, mapped from YANG variable /interfaces/interface/ethernet/state/counters/out_mac_errors_tx (oc-yang:counter64)
+
+    YANG Description: The number of sent errored frames due to MAC errors
+transmitted. The value refers to MIB counter for
+dot3StatsInternalMacTransmitErrors
+oid=1.3.6.1.2.1.10.7.2.1.10
+    """
+    return self.__out_mac_errors_tx
+      
+  def _set_out_mac_errors_tx(self, v, load=False):
+    """
+    Setter method for out_mac_errors_tx, mapped from YANG variable /interfaces/interface/ethernet/state/counters/out_mac_errors_tx (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_out_mac_errors_tx is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_out_mac_errors_tx() directly.
+
+    YANG Description: The number of sent errored frames due to MAC errors
+transmitted. The value refers to MIB counter for
+dot3StatsInternalMacTransmitErrors
+oid=1.3.6.1.2.1.10.7.2.1.10
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-errors-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """out_mac_errors_tx must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-errors-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__out_mac_errors_tx = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_out_mac_errors_tx(self):
+    self.__out_mac_errors_tx = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-mac-errors-tx", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces/ethernet', defining_module='openconfig-if-ethernet', yang_type='oc-yang:counter64', is_config=False)
+
+  in_mac_control_frames = __builtin__.property(_get_in_mac_control_frames)
+  in_mac_pause_frames = __builtin__.property(_get_in_mac_pause_frames)
+  in_oversize_frames = __builtin__.property(_get_in_oversize_frames)
+  in_undersize_frames = __builtin__.property(_get_in_undersize_frames)
+  in_jabber_frames = __builtin__.property(_get_in_jabber_frames)
+  in_fragment_frames = __builtin__.property(_get_in_fragment_frames)
+  in_8021q_frames = __builtin__.property(_get_in_8021q_frames)
+  in_crc_errors = __builtin__.property(_get_in_crc_errors)
+  in_block_errors = __builtin__.property(_get_in_block_errors)
+  in_carrier_errors = __builtin__.property(_get_in_carrier_errors)
+  in_interrupted_tx = __builtin__.property(_get_in_interrupted_tx)
+  in_late_collision = __builtin__.property(_get_in_late_collision)
+  in_mac_errors_rx = __builtin__.property(_get_in_mac_errors_rx)
+  in_single_collision = __builtin__.property(_get_in_single_collision)
+  in_symbol_error = __builtin__.property(_get_in_symbol_error)
+  in_maxsize_exceeded = __builtin__.property(_get_in_maxsize_exceeded)
+  out_mac_control_frames = __builtin__.property(_get_out_mac_control_frames)
+  out_mac_pause_frames = __builtin__.property(_get_out_mac_pause_frames)
+  out_8021q_frames = __builtin__.property(_get_out_8021q_frames)
+  out_mac_errors_tx = __builtin__.property(_get_out_mac_errors_tx)
+
+
+  _pyangbind_elements = OrderedDict([('in_mac_control_frames', in_mac_control_frames), ('in_mac_pause_frames', in_mac_pause_frames), ('in_oversize_frames', in_oversize_frames), ('in_undersize_frames', in_undersize_frames), ('in_jabber_frames', in_jabber_frames), ('in_fragment_frames', in_fragment_frames), ('in_8021q_frames', in_8021q_frames), ('in_crc_errors', in_crc_errors), ('in_block_errors', in_block_errors), ('in_carrier_errors', in_carrier_errors), ('in_interrupted_tx', in_interrupted_tx), ('in_late_collision', in_late_collision), ('in_mac_errors_rx', in_mac_errors_rx), ('in_single_collision', in_single_collision), ('in_symbol_error', in_symbol_error), ('in_maxsize_exceeded', in_maxsize_exceeded), ('out_mac_control_frames', out_mac_control_frames), ('out_mac_pause_frames', out_mac_pause_frames), ('out_8021q_frames', out_8021q_frames), ('out_mac_errors_tx', out_mac_errors_tx), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/hold_time/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/hold_time/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..2ccfda7efab86d3f1384c506d84a25962e66c1c4
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/interfaces/interface/hold_time/__init__.py
@@ -0,0 +1,156 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import config
+from . import state
+class hold_time(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-interfaces - based on the path /interfaces/interface/hold-time. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Top-level container for hold-time settings to enable
+dampening advertisements of interface transitions.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__config','__state',)
+
+  _yang_name = 'hold-time'
+  _yang_namespace = 'http://openconfig.net/yang/interfaces'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['interfaces', 'interface', 'hold-time']
+
+  def _get_config(self):
+    """
+    Getter method for config, mapped from YANG variable /interfaces/interface/hold_time/config (container)
+
+    YANG Description: Configuration data for interface hold-time settings.
+    """
+    return self.__config
+      
+  def _set_config(self, v, load=False):
+    """
+    Setter method for config, mapped from YANG variable /interfaces/interface/hold_time/config (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_config is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_config() directly.
+
+    YANG Description: Configuration data for interface hold-time settings.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """config must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)""",
+        })
+
+    self.__config = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_config(self):
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+
+
+  def _get_state(self):
+    """
+    Getter method for state, mapped from YANG variable /interfaces/interface/hold_time/state (container)
+
+    YANG Description: Operational state data for interface hold-time.
+    """
+    return self.__state
+      
+  def _set_state(self, v, load=False):
+    """
+    Setter method for state, mapped from YANG variable /interfaces/interface/hold_time/state (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_state is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_state() directly.
+
+    YANG Description: Operational state data for interface hold-time.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """state must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)""",
+        })
+
+    self.__state = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_state(self):
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+
+  config = __builtin__.property(_get_config, _set_config)
+  state = __builtin__.property(_get_state, _set_state)
+
+
+  _pyangbind_elements = OrderedDict([('config', config), ('state', state), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/hold_time/config/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/hold_time/config/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..c3f1d822b900afa7e780d7dbc31564dd5e4316b2
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/interfaces/interface/hold_time/config/__init__.py
@@ -0,0 +1,161 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class config(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-interfaces - based on the path /interfaces/interface/hold-time/config. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Configuration data for interface hold-time settings.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__up','__down',)
+
+  _yang_name = 'config'
+  _yang_namespace = 'http://openconfig.net/yang/interfaces'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__up = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="up", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True)
+    self.__down = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="down", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['interfaces', 'interface', 'hold-time', 'config']
+
+  def _get_up(self):
+    """
+    Getter method for up, mapped from YANG variable /interfaces/interface/hold_time/config/up (uint32)
+
+    YANG Description: Dampens advertisement when the interface
+transitions from down to up.  A zero value means dampening
+is turned off, i.e., immediate notification.
+    """
+    return self.__up
+      
+  def _set_up(self, v, load=False):
+    """
+    Setter method for up, mapped from YANG variable /interfaces/interface/hold_time/config/up (uint32)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_up is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_up() directly.
+
+    YANG Description: Dampens advertisement when the interface
+transitions from down to up.  A zero value means dampening
+is turned off, i.e., immediate notification.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="up", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """up must be of a type compatible with uint32""",
+          'defined-type': "uint32",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="up", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True)""",
+        })
+
+    self.__up = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_up(self):
+    self.__up = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="up", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True)
+
+
+  def _get_down(self):
+    """
+    Getter method for down, mapped from YANG variable /interfaces/interface/hold_time/config/down (uint32)
+
+    YANG Description: Dampens advertisement when the interface transitions from
+up to down.  A zero value means dampening is turned off,
+i.e., immediate notification.
+    """
+    return self.__down
+      
+  def _set_down(self, v, load=False):
+    """
+    Setter method for down, mapped from YANG variable /interfaces/interface/hold_time/config/down (uint32)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_down is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_down() directly.
+
+    YANG Description: Dampens advertisement when the interface transitions from
+up to down.  A zero value means dampening is turned off,
+i.e., immediate notification.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="down", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """down must be of a type compatible with uint32""",
+          'defined-type': "uint32",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="down", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True)""",
+        })
+
+    self.__down = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_down(self):
+    self.__down = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="down", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True)
+
+  up = __builtin__.property(_get_up, _set_up)
+  down = __builtin__.property(_get_down, _set_down)
+
+
+  _pyangbind_elements = OrderedDict([('up', up), ('down', down), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/hold_time/state/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/hold_time/state/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..d5c994a6de356feb3618bd10efb399bb7b3ad302
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/interfaces/interface/hold_time/state/__init__.py
@@ -0,0 +1,161 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class state(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-interfaces - based on the path /interfaces/interface/hold-time/state. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Operational state data for interface hold-time.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__up','__down',)
+
+  _yang_name = 'state'
+  _yang_namespace = 'http://openconfig.net/yang/interfaces'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__up = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="up", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)
+    self.__down = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="down", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['interfaces', 'interface', 'hold-time', 'state']
+
+  def _get_up(self):
+    """
+    Getter method for up, mapped from YANG variable /interfaces/interface/hold_time/state/up (uint32)
+
+    YANG Description: Dampens advertisement when the interface
+transitions from down to up.  A zero value means dampening
+is turned off, i.e., immediate notification.
+    """
+    return self.__up
+      
+  def _set_up(self, v, load=False):
+    """
+    Setter method for up, mapped from YANG variable /interfaces/interface/hold_time/state/up (uint32)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_up is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_up() directly.
+
+    YANG Description: Dampens advertisement when the interface
+transitions from down to up.  A zero value means dampening
+is turned off, i.e., immediate notification.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="up", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """up must be of a type compatible with uint32""",
+          'defined-type': "uint32",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="up", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)""",
+        })
+
+    self.__up = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_up(self):
+    self.__up = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="up", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)
+
+
+  def _get_down(self):
+    """
+    Getter method for down, mapped from YANG variable /interfaces/interface/hold_time/state/down (uint32)
+
+    YANG Description: Dampens advertisement when the interface transitions from
+up to down.  A zero value means dampening is turned off,
+i.e., immediate notification.
+    """
+    return self.__down
+      
+  def _set_down(self, v, load=False):
+    """
+    Setter method for down, mapped from YANG variable /interfaces/interface/hold_time/state/down (uint32)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_down is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_down() directly.
+
+    YANG Description: Dampens advertisement when the interface transitions from
+up to down.  A zero value means dampening is turned off,
+i.e., immediate notification.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="down", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """down must be of a type compatible with uint32""",
+          'defined-type': "uint32",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="down", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)""",
+        })
+
+    self.__down = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_down(self):
+    self.__down = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="down", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)
+
+  up = __builtin__.property(_get_up)
+  down = __builtin__.property(_get_down)
+
+
+  _pyangbind_elements = OrderedDict([('up', up), ('down', down), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/state/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/state/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..d8e2ff185e1300fa19b14959b005ddd00dd08c88
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/interfaces/interface/state/__init__.py
@@ -0,0 +1,875 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import counters
+class state(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-interfaces - based on the path /interfaces/interface/state. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Operational state data at the global interface level
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__name','__type','__mtu','__loopback_mode','__description','__enabled','__ifindex','__admin_status','__oper_status','__last_change','__logical','__management','__cpu','__counters','__hardware_port',)
+
+  _yang_name = 'state'
+  _yang_namespace = 'http://openconfig.net/yang/interfaces'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False)
+    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='identityref', is_config=False)
+    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint16', is_config=False)
+    self.__loopback_mode = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False)
+    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+    self.__ifindex = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)
+    self.__admin_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False)
+    self.__oper_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False)
+    self.__last_change = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False)
+    self.__logical = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+    self.__management = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+    self.__cpu = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+    self.__counters = YANGDynClass(base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=False)
+    self.__hardware_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hardware-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['interfaces', 'interface', 'state']
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /interfaces/interface/state/name (string)
+
+    YANG Description: The name of the interface.
+
+A device MAY restrict the allowed values for this leaf,
+possibly depending on the type of the interface.
+For system-controlled interfaces, this leaf is the
+device-specific name of the interface.  The 'config false'
+list interfaces/interface[name]/state contains the currently
+existing interfaces on the device.
+
+If a client tries to create configuration for a
+system-controlled interface that is not present in the
+corresponding state list, the server MAY reject
+the request if the implementation does not support
+pre-provisioning of interfaces or if the name refers to
+an interface that can never exist in the system.  A
+NETCONF server MUST reply with an rpc-error with the
+error-tag 'invalid-value' in this case.
+
+The IETF model in RFC 7223 provides YANG features for the
+following (i.e., pre-provisioning and arbitrary-names),
+however they are omitted here:
+
+ If the device supports pre-provisioning of interface
+ configuration, the 'pre-provisioning' feature is
+ advertised.
+
+ If the device allows arbitrarily named user-controlled
+ interfaces, the 'arbitrary-names' feature is advertised.
+
+When a configured user-controlled interface is created by
+the system, it is instantiated with the same name in the
+/interfaces/interface[name]/state list.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /interfaces/interface/state/name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: The name of the interface.
+
+A device MAY restrict the allowed values for this leaf,
+possibly depending on the type of the interface.
+For system-controlled interfaces, this leaf is the
+device-specific name of the interface.  The 'config false'
+list interfaces/interface[name]/state contains the currently
+existing interfaces on the device.
+
+If a client tries to create configuration for a
+system-controlled interface that is not present in the
+corresponding state list, the server MAY reject
+the request if the implementation does not support
+pre-provisioning of interfaces or if the name refers to
+an interface that can never exist in the system.  A
+NETCONF server MUST reply with an rpc-error with the
+error-tag 'invalid-value' in this case.
+
+The IETF model in RFC 7223 provides YANG features for the
+following (i.e., pre-provisioning and arbitrary-names),
+however they are omitted here:
+
+ If the device supports pre-provisioning of interface
+ configuration, the 'pre-provisioning' feature is
+ advertised.
+
+ If the device allows arbitrarily named user-controlled
+ interfaces, the 'arbitrary-names' feature is advertised.
+
+When a configured user-controlled interface is created by
+the system, it is instantiated with the same name in the
+/interfaces/interface[name]/state list.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False)
+
+
+  def _get_type(self):
+    """
+    Getter method for type, mapped from YANG variable /interfaces/interface/state/type (identityref)
+
+    YANG Description: The type of the interface.
+
+When an interface entry is created, a server MAY
+initialize the type leaf with a valid value, e.g., if it
+is possible to derive the type from the name of the
+interface.
+
+If a client tries to set the type of an interface to a
+value that can never be used by the system, e.g., if the
+type is not supported or if the type does not match the
+name of the interface, the server MUST reject the request.
+A NETCONF server MUST reply with an rpc-error with the
+error-tag 'invalid-value' in this case.
+    """
+    return self.__type
+      
+  def _set_type(self, v, load=False):
+    """
+    Setter method for type, mapped from YANG variable /interfaces/interface/state/type (identityref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_type is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_type() directly.
+
+    YANG Description: The type of the interface.
+
+When an interface entry is created, a server MAY
+initialize the type leaf with a valid value, e.g., if it
+is possible to derive the type from the name of the
+interface.
+
+If a client tries to set the type of an interface to a
+value that can never be used by the system, e.g., if the
+type is not supported or if the type does not match the
+name of the interface, the server MUST reject the request.
+A NETCONF server MUST reply with an rpc-error with the
+error-tag 'invalid-value' in this case.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='identityref', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """type must be of a type compatible with identityref""",
+          'defined-type': "openconfig-interfaces:identityref",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='identityref', is_config=False)""",
+        })
+
+    self.__type = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_type(self):
+    self.__type = YANGDynClass(base=RestrictedClassType(base_type=six.text_type, restriction_type="dict_key", restriction_arg={'iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iana-interface-type': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:other': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:regular1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdh1822': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ddnX25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc877x25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernetCsmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88023Csmacd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88024TokenBus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025TokenRing': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88026Man': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:starLan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon10Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:proteon80Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hyperchannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fddi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:e1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:basicISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:primaryISDN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propPointToPointSerial': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ppp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:softwareLoopback': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ethernet3Mbit': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nsip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:slip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ultra': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds3': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rs232': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:para': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arcnetPlus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:miox25': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25ple': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88022llc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:localTalk': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayService': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v35': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hssi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:modem': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal5': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetPath': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetVT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:smdsIcip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propMultiplexor': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80212': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fibreChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hippiInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayInterconnect': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8023': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aflane8025': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cctEmul': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v11': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v36': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at64k': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g703at2mb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qllc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastEtherFX': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:channel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80211': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ibm370parChan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:escon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dlsw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdns': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isdnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapd': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rsrb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmLogical': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds0Bundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bsc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:async': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cnr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Dtr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:eplrs': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:arap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propCnls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hostPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:termPad': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frameRelayMPI': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x213': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025CRFPInt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:myrinet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEM': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXO': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFXS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEncap': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmDxi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmFuni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmIma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pppMultilinkBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverCdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverClaw': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:stackToStack': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualIpAddress': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:iso88025Fiber': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gigabitEthernet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lapf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:v37': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25mlp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x25huntGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:transpHdlc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:interleave': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:a12MppSwitch': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:coffee': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ces': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmSubInterface': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l2vlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:l3ipxvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalPowerline': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mediaMailOverIp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dcn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ipForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:msdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee1394': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:if-gsn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRccUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVirtual': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mplsTunnel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:srp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverFrameRelay': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:idsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:compositeLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ss7SigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propWirelessP2P': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frForward': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rfc1483': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:usb': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee8023adLag': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bgppolicyaccounting': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frf16MfrBundle': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Gatekeeper': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:h323Proxy': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpls': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mfSigLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:shdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ds1FDL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pos': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiIn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbAsiOut': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:plc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:nfas': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:tr008': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303RDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gr303IDT': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:isup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessMaclayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propDocsWirelessUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:hiperlan2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propBWAp2Mp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sonetOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:digitalWrapperOverheadChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aal2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:radioMAC': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:imt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mvl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:reachDSL': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:frDlciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmVciEndPt': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:propAtm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceOverCable': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:infiniband': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:teLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:q2931': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:virtualTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipTg': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sipSig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamChannel': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:econet': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon155': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pon622': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bridge': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:linegroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEMFGD': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDEANA': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceDID': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mpegTransport': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sixToFour': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gtp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pdnEtherLoop2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:opticalChannelGroup': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:homepna': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ciscoISLvlan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:actelisMetaLOOP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fcipLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:rpr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:qam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:lmp': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cblVectaStar': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableMCmtsDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecControlledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:macSecUncontrolledIF': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aviciOpticalEther': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:atmbond': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceFGDOS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:mocaVersion1': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee80216WMAN': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:adsl2plus': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsMacLayer': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbTdm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:dvbRcsTdma': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:x86Laps': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:wwanPP2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:voiceEBS': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifPwType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ilan': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:pip': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluELP': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vdsl2': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Profile': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapDot11Bss': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:capwapWtpVirtualRadio': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:bits': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableUpstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:cableDownstreamRfPort': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareVirtualNic': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ieee802154': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOdu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ifVfiType': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9981': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9982': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:g9983': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEpon': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluEponLogicalLink': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponOnu': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:aluGponPhysicalUni': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:vmwareNicTeam': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmDownstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsOfdmaUpstream': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:gfast': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:sdci': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:xboxWireless': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:fastdsl': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1FwdOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d1RetOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2DsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableScte55d2UsOob': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdf': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:docsCableNdr': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ptm': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:ghn': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsi': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtuc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOduc': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:otnOtsig': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveCarrierTermination': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}, 'ianaift:microwaveRadioLinkTerminal': {'@module': 'iana-if-type', '@namespace': 'urn:ietf:params:xml:ns:yang:iana-if-type'}},), is_leaf=True, yang_name="type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='identityref', is_config=False)
+
+
+  def _get_mtu(self):
+    """
+    Getter method for mtu, mapped from YANG variable /interfaces/interface/state/mtu (uint16)
+
+    YANG Description: Set the max transmission unit size in octets
+for the physical interface.  If this is not set, the mtu is
+set to the operational default -- e.g., 1514 bytes on an
+Ethernet interface.
+    """
+    return self.__mtu
+      
+  def _set_mtu(self, v, load=False):
+    """
+    Setter method for mtu, mapped from YANG variable /interfaces/interface/state/mtu (uint16)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_mtu is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_mtu() directly.
+
+    YANG Description: Set the max transmission unit size in octets
+for the physical interface.  If this is not set, the mtu is
+set to the operational default -- e.g., 1514 bytes on an
+Ethernet interface.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint16', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """mtu must be of a type compatible with uint16""",
+          'defined-type': "uint16",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint16', is_config=False)""",
+        })
+
+    self.__mtu = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_mtu(self):
+    self.__mtu = YANGDynClass(base=RestrictedClassType(base_type=int, restriction_dict={'range': ['0..65535']},int_size=16), is_leaf=True, yang_name="mtu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint16', is_config=False)
+
+
+  def _get_loopback_mode(self):
+    """
+    Getter method for loopback_mode, mapped from YANG variable /interfaces/interface/state/loopback_mode (boolean)
+
+    YANG Description: When set to true, the interface is logically looped back,
+such that packets that are forwarded via the interface
+are received on the same interface.
+    """
+    return self.__loopback_mode
+      
+  def _set_loopback_mode(self, v, load=False):
+    """
+    Setter method for loopback_mode, mapped from YANG variable /interfaces/interface/state/loopback_mode (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_loopback_mode is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_loopback_mode() directly.
+
+    YANG Description: When set to true, the interface is logically looped back,
+such that packets that are forwarded via the interface
+are received on the same interface.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """loopback_mode must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__loopback_mode = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_loopback_mode(self):
+    self.__loopback_mode = YANGDynClass(base=YANGBool, default=YANGBool("false"), is_leaf=True, yang_name="loopback-mode", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+
+
+  def _get_description(self):
+    """
+    Getter method for description, mapped from YANG variable /interfaces/interface/state/description (string)
+
+    YANG Description: A textual description of the interface.
+
+A server implementation MAY map this leaf to the ifAlias
+MIB object.  Such an implementation needs to use some
+mechanism to handle the differences in size and characters
+allowed between this leaf and ifAlias.  The definition of
+such a mechanism is outside the scope of this document.
+
+Since ifAlias is defined to be stored in non-volatile
+storage, the MIB implementation MUST map ifAlias to the
+value of 'description' in the persistently stored
+datastore.
+
+Specifically, if the device supports ':startup', when
+ifAlias is read the device MUST return the value of
+'description' in the 'startup' datastore, and when it is
+written, it MUST be written to the 'running' and 'startup'
+datastores.  Note that it is up to the implementation to
+
+decide whether to modify this single leaf in 'startup' or
+perform an implicit copy-config from 'running' to
+'startup'.
+
+If the device does not support ':startup', ifAlias MUST
+be mapped to the 'description' leaf in the 'running'
+datastore.
+    """
+    return self.__description
+      
+  def _set_description(self, v, load=False):
+    """
+    Setter method for description, mapped from YANG variable /interfaces/interface/state/description (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_description is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_description() directly.
+
+    YANG Description: A textual description of the interface.
+
+A server implementation MAY map this leaf to the ifAlias
+MIB object.  Such an implementation needs to use some
+mechanism to handle the differences in size and characters
+allowed between this leaf and ifAlias.  The definition of
+such a mechanism is outside the scope of this document.
+
+Since ifAlias is defined to be stored in non-volatile
+storage, the MIB implementation MUST map ifAlias to the
+value of 'description' in the persistently stored
+datastore.
+
+Specifically, if the device supports ':startup', when
+ifAlias is read the device MUST return the value of
+'description' in the 'startup' datastore, and when it is
+written, it MUST be written to the 'running' and 'startup'
+datastores.  Note that it is up to the implementation to
+
+decide whether to modify this single leaf in 'startup' or
+perform an implicit copy-config from 'running' to
+'startup'.
+
+If the device does not support ':startup', ifAlias MUST
+be mapped to the 'description' leaf in the 'running'
+datastore.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """description must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False)""",
+        })
+
+    self.__description = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_description(self):
+    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False)
+
+
+  def _get_enabled(self):
+    """
+    Getter method for enabled, mapped from YANG variable /interfaces/interface/state/enabled (boolean)
+
+    YANG Description: This leaf contains the configured, desired state of the
+interface.
+
+Systems that implement the IF-MIB use the value of this
+leaf in the 'running' datastore to set
+IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
+has been initialized, as described in RFC 2863.
+
+Changes in this leaf in the 'running' datastore are
+reflected in ifAdminStatus, but if ifAdminStatus is
+changed over SNMP, this leaf is not affected.
+    """
+    return self.__enabled
+      
+  def _set_enabled(self, v, load=False):
+    """
+    Setter method for enabled, mapped from YANG variable /interfaces/interface/state/enabled (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_enabled is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_enabled() directly.
+
+    YANG Description: This leaf contains the configured, desired state of the
+interface.
+
+Systems that implement the IF-MIB use the value of this
+leaf in the 'running' datastore to set
+IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
+has been initialized, as described in RFC 2863.
+
+Changes in this leaf in the 'running' datastore are
+reflected in ifAdminStatus, but if ifAdminStatus is
+changed over SNMP, this leaf is not affected.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """enabled must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__enabled = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_enabled(self):
+    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+
+
+  def _get_ifindex(self):
+    """
+    Getter method for ifindex, mapped from YANG variable /interfaces/interface/state/ifindex (uint32)
+
+    YANG Description: System assigned number for each interface.  Corresponds to
+ifIndex object in SNMP Interface MIB
+    """
+    return self.__ifindex
+      
+  def _set_ifindex(self, v, load=False):
+    """
+    Setter method for ifindex, mapped from YANG variable /interfaces/interface/state/ifindex (uint32)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_ifindex is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_ifindex() directly.
+
+    YANG Description: System assigned number for each interface.  Corresponds to
+ifIndex object in SNMP Interface MIB
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """ifindex must be of a type compatible with uint32""",
+          'defined-type': "uint32",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)""",
+        })
+
+    self.__ifindex = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_ifindex(self):
+    self.__ifindex = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)
+
+
+  def _get_admin_status(self):
+    """
+    Getter method for admin_status, mapped from YANG variable /interfaces/interface/state/admin_status (enumeration)
+
+    YANG Description: The desired state of the interface.  In RFC 7223 this leaf
+has the same read semantics as ifAdminStatus.  Here, it
+reflects the administrative state as set by enabling or
+disabling the interface.
+    """
+    return self.__admin_status
+      
+  def _set_admin_status(self, v, load=False):
+    """
+    Setter method for admin_status, mapped from YANG variable /interfaces/interface/state/admin_status (enumeration)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_admin_status is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_admin_status() directly.
+
+    YANG Description: The desired state of the interface.  In RFC 7223 this leaf
+has the same read semantics as ifAdminStatus.  Here, it
+reflects the administrative state as set by enabling or
+disabling the interface.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """admin_status must be of a type compatible with enumeration""",
+          'defined-type': "openconfig-interfaces:enumeration",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False)""",
+        })
+
+    self.__admin_status = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_admin_status(self):
+    self.__admin_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False)
+
+
+  def _get_oper_status(self):
+    """
+    Getter method for oper_status, mapped from YANG variable /interfaces/interface/state/oper_status (enumeration)
+
+    YANG Description: The current operational state of the interface.
+
+This leaf has the same semantics as ifOperStatus.
+    """
+    return self.__oper_status
+      
+  def _set_oper_status(self, v, load=False):
+    """
+    Setter method for oper_status, mapped from YANG variable /interfaces/interface/state/oper_status (enumeration)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_oper_status is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_oper_status() directly.
+
+    YANG Description: The current operational state of the interface.
+
+This leaf has the same semantics as ifOperStatus.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """oper_status must be of a type compatible with enumeration""",
+          'defined-type': "openconfig-interfaces:enumeration",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False)""",
+        })
+
+    self.__oper_status = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_oper_status(self):
+    self.__oper_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False)
+
+
+  def _get_last_change(self):
+    """
+    Getter method for last_change, mapped from YANG variable /interfaces/interface/state/last_change (oc-types:timeticks64)
+
+    YANG Description: This timestamp indicates the absolute time of the last
+state change of the interface (e.g., up-to-down transition).
+This is different than the SNMP ifLastChange object in the
+standard interface MIB in that it is not relative to the
+system boot time (i.e,. sysUpTime).
+
+The value is the timestamp in nanoseconds relative to
+the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+    """
+    return self.__last_change
+      
+  def _set_last_change(self, v, load=False):
+    """
+    Setter method for last_change, mapped from YANG variable /interfaces/interface/state/last_change (oc-types:timeticks64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_last_change is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_last_change() directly.
+
+    YANG Description: This timestamp indicates the absolute time of the last
+state change of the interface (e.g., up-to-down transition).
+This is different than the SNMP ifLastChange object in the
+standard interface MIB in that it is not relative to the
+system boot time (i.e,. sysUpTime).
+
+The value is the timestamp in nanoseconds relative to
+the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """last_change must be of a type compatible with oc-types:timeticks64""",
+          'defined-type': "oc-types:timeticks64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False)""",
+        })
+
+    self.__last_change = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_last_change(self):
+    self.__last_change = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False)
+
+
+  def _get_logical(self):
+    """
+    Getter method for logical, mapped from YANG variable /interfaces/interface/state/logical (boolean)
+
+    YANG Description: When set to true, the interface is a logical interface
+which does not have an associated physical port or
+channel on the system.
+    """
+    return self.__logical
+      
+  def _set_logical(self, v, load=False):
+    """
+    Setter method for logical, mapped from YANG variable /interfaces/interface/state/logical (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_logical is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_logical() directly.
+
+    YANG Description: When set to true, the interface is a logical interface
+which does not have an associated physical port or
+channel on the system.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """logical must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__logical = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_logical(self):
+    self.__logical = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+
+
+  def _get_management(self):
+    """
+    Getter method for management, mapped from YANG variable /interfaces/interface/state/management (boolean)
+
+    YANG Description: When set to true, the interface is a dedicated
+management interface that is not connected to dataplane
+interfaces.  It may be used to connect the system to an
+out-of-band management network, for example.
+    """
+    return self.__management
+      
+  def _set_management(self, v, load=False):
+    """
+    Setter method for management, mapped from YANG variable /interfaces/interface/state/management (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_management is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_management() directly.
+
+    YANG Description: When set to true, the interface is a dedicated
+management interface that is not connected to dataplane
+interfaces.  It may be used to connect the system to an
+out-of-band management network, for example.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """management must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__management = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_management(self):
+    self.__management = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+
+
+  def _get_cpu(self):
+    """
+    Getter method for cpu, mapped from YANG variable /interfaces/interface/state/cpu (boolean)
+
+    YANG Description: When set to true, the interface is for traffic
+that is handled by the system CPU, sometimes also called the
+control plane interface.  On systems that represent the CPU
+interface as an Ethernet interface, for example, this leaf
+should be used to distinguish the CPU interface from dataplane
+interfaces.
+    """
+    return self.__cpu
+      
+  def _set_cpu(self, v, load=False):
+    """
+    Setter method for cpu, mapped from YANG variable /interfaces/interface/state/cpu (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_cpu is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_cpu() directly.
+
+    YANG Description: When set to true, the interface is for traffic
+that is handled by the system CPU, sometimes also called the
+control plane interface.  On systems that represent the CPU
+interface as an Ethernet interface, for example, this leaf
+should be used to distinguish the CPU interface from dataplane
+interfaces.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """cpu must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__cpu = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_cpu(self):
+    self.__cpu = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+
+
+  def _get_counters(self):
+    """
+    Getter method for counters, mapped from YANG variable /interfaces/interface/state/counters (container)
+
+    YANG Description: A collection of interface-related statistics objects.
+    """
+    return self.__counters
+      
+  def _set_counters(self, v, load=False):
+    """
+    Setter method for counters, mapped from YANG variable /interfaces/interface/state/counters (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_counters is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_counters() directly.
+
+    YANG Description: A collection of interface-related statistics objects.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """counters must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=False)""",
+        })
+
+    self.__counters = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_counters(self):
+    self.__counters = YANGDynClass(base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=False)
+
+
+  def _get_hardware_port(self):
+    """
+    Getter method for hardware_port, mapped from YANG variable /interfaces/interface/state/hardware_port (leafref)
+
+    YANG Description: For non-channelized interfaces, references the hardware port
+corresponding to the base interface.
+    """
+    return self.__hardware_port
+      
+  def _set_hardware_port(self, v, load=False):
+    """
+    Setter method for hardware_port, mapped from YANG variable /interfaces/interface/state/hardware_port (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_hardware_port is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_hardware_port() directly.
+
+    YANG Description: For non-channelized interfaces, references the hardware port
+corresponding to the base interface.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="hardware-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """hardware_port must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hardware-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=False)""",
+        })
+
+    self.__hardware_port = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_hardware_port(self):
+    self.__hardware_port = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="hardware-port", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/platform/port', defining_module='openconfig-platform-port', yang_type='leafref', is_config=False)
+
+  name = __builtin__.property(_get_name)
+  type = __builtin__.property(_get_type)
+  mtu = __builtin__.property(_get_mtu)
+  loopback_mode = __builtin__.property(_get_loopback_mode)
+  description = __builtin__.property(_get_description)
+  enabled = __builtin__.property(_get_enabled)
+  ifindex = __builtin__.property(_get_ifindex)
+  admin_status = __builtin__.property(_get_admin_status)
+  oper_status = __builtin__.property(_get_oper_status)
+  last_change = __builtin__.property(_get_last_change)
+  logical = __builtin__.property(_get_logical)
+  management = __builtin__.property(_get_management)
+  cpu = __builtin__.property(_get_cpu)
+  counters = __builtin__.property(_get_counters)
+  hardware_port = __builtin__.property(_get_hardware_port)
+
+
+  _pyangbind_elements = OrderedDict([('name', name), ('type', type), ('mtu', mtu), ('loopback_mode', loopback_mode), ('description', description), ('enabled', enabled), ('ifindex', ifindex), ('admin_status', admin_status), ('oper_status', oper_status), ('last_change', last_change), ('logical', logical), ('management', management), ('cpu', cpu), ('counters', counters), ('hardware_port', hardware_port), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/state/counters/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/state/counters/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..bdda9eb5484cac77f7bee914eac4c130431c4630
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/interfaces/interface/state/counters/__init__.py
@@ -0,0 +1,1029 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class counters(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-interfaces - based on the path /interfaces/interface/state/counters. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: A collection of interface-related statistics objects.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__in_octets','__in_pkts','__in_unicast_pkts','__in_broadcast_pkts','__in_multicast_pkts','__in_discards','__in_errors','__in_unknown_protos','__in_fcs_errors','__out_octets','__out_pkts','__out_unicast_pkts','__out_broadcast_pkts','__out_multicast_pkts','__out_discards','__out_errors','__carrier_transitions','__last_clear',)
+
+  _yang_name = 'counters'
+  _yang_namespace = 'http://openconfig.net/yang/interfaces'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__in_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_unknown_protos = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_fcs_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__out_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__out_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__out_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__out_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__out_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__out_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__out_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__carrier_transitions = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__last_clear = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['interfaces', 'interface', 'state', 'counters']
+
+  def _get_in_octets(self):
+    """
+    Getter method for in_octets, mapped from YANG variable /interfaces/interface/state/counters/in_octets (oc-yang:counter64)
+
+    YANG Description: The total number of octets received on the interface,
+including framing characters.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__in_octets
+      
+  def _set_in_octets(self, v, load=False):
+    """
+    Setter method for in_octets, mapped from YANG variable /interfaces/interface/state/counters/in_octets (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_octets is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_octets() directly.
+
+    YANG Description: The total number of octets received on the interface,
+including framing characters.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_octets must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_octets = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_octets(self):
+    self.__in_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_pkts(self):
+    """
+    Getter method for in_pkts, mapped from YANG variable /interfaces/interface/state/counters/in_pkts (oc-yang:counter64)
+
+    YANG Description: The total number of packets received on the interface,
+including all unicast, multicast, broadcast and bad packets
+etc.
+    """
+    return self.__in_pkts
+      
+  def _set_in_pkts(self, v, load=False):
+    """
+    Setter method for in_pkts, mapped from YANG variable /interfaces/interface/state/counters/in_pkts (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_pkts is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_pkts() directly.
+
+    YANG Description: The total number of packets received on the interface,
+including all unicast, multicast, broadcast and bad packets
+etc.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_pkts must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_pkts = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_pkts(self):
+    self.__in_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_unicast_pkts(self):
+    """
+    Getter method for in_unicast_pkts, mapped from YANG variable /interfaces/interface/state/counters/in_unicast_pkts (oc-yang:counter64)
+
+    YANG Description: The number of packets, delivered by this sub-layer to a
+higher (sub-)layer, that were not addressed to a
+multicast or broadcast address at this sub-layer.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__in_unicast_pkts
+      
+  def _set_in_unicast_pkts(self, v, load=False):
+    """
+    Setter method for in_unicast_pkts, mapped from YANG variable /interfaces/interface/state/counters/in_unicast_pkts (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_unicast_pkts is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_unicast_pkts() directly.
+
+    YANG Description: The number of packets, delivered by this sub-layer to a
+higher (sub-)layer, that were not addressed to a
+multicast or broadcast address at this sub-layer.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_unicast_pkts must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_unicast_pkts = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_unicast_pkts(self):
+    self.__in_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_broadcast_pkts(self):
+    """
+    Getter method for in_broadcast_pkts, mapped from YANG variable /interfaces/interface/state/counters/in_broadcast_pkts (oc-yang:counter64)
+
+    YANG Description: The number of packets, delivered by this sub-layer to a
+higher (sub-)layer, that were addressed to a broadcast
+address at this sub-layer.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__in_broadcast_pkts
+      
+  def _set_in_broadcast_pkts(self, v, load=False):
+    """
+    Setter method for in_broadcast_pkts, mapped from YANG variable /interfaces/interface/state/counters/in_broadcast_pkts (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_broadcast_pkts is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_broadcast_pkts() directly.
+
+    YANG Description: The number of packets, delivered by this sub-layer to a
+higher (sub-)layer, that were addressed to a broadcast
+address at this sub-layer.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_broadcast_pkts must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_broadcast_pkts = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_broadcast_pkts(self):
+    self.__in_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_multicast_pkts(self):
+    """
+    Getter method for in_multicast_pkts, mapped from YANG variable /interfaces/interface/state/counters/in_multicast_pkts (oc-yang:counter64)
+
+    YANG Description: The number of packets, delivered by this sub-layer to a
+higher (sub-)layer, that were addressed to a multicast
+address at this sub-layer.  For a MAC-layer protocol,
+this includes both Group and Functional addresses.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__in_multicast_pkts
+      
+  def _set_in_multicast_pkts(self, v, load=False):
+    """
+    Setter method for in_multicast_pkts, mapped from YANG variable /interfaces/interface/state/counters/in_multicast_pkts (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_multicast_pkts is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_multicast_pkts() directly.
+
+    YANG Description: The number of packets, delivered by this sub-layer to a
+higher (sub-)layer, that were addressed to a multicast
+address at this sub-layer.  For a MAC-layer protocol,
+this includes both Group and Functional addresses.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_multicast_pkts must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_multicast_pkts = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_multicast_pkts(self):
+    self.__in_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_discards(self):
+    """
+    Getter method for in_discards, mapped from YANG variable /interfaces/interface/state/counters/in_discards (oc-yang:counter64)
+
+    YANG Description: The number of inbound packets that were chosen to be
+discarded even though no errors had been detected to
+prevent their being deliverable to a higher-layer
+protocol.  One possible reason for discarding such a
+packet could be to free up buffer space.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__in_discards
+      
+  def _set_in_discards(self, v, load=False):
+    """
+    Setter method for in_discards, mapped from YANG variable /interfaces/interface/state/counters/in_discards (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_discards is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_discards() directly.
+
+    YANG Description: The number of inbound packets that were chosen to be
+discarded even though no errors had been detected to
+prevent their being deliverable to a higher-layer
+protocol.  One possible reason for discarding such a
+packet could be to free up buffer space.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_discards must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_discards = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_discards(self):
+    self.__in_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_errors(self):
+    """
+    Getter method for in_errors, mapped from YANG variable /interfaces/interface/state/counters/in_errors (oc-yang:counter64)
+
+    YANG Description: For packet-oriented interfaces, the number of inbound
+packets that contained errors preventing them from being
+deliverable to a higher-layer protocol.  For character-
+oriented or fixed-length interfaces, the number of
+inbound transmission units that contained errors
+preventing them from being deliverable to a higher-layer
+protocol.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__in_errors
+      
+  def _set_in_errors(self, v, load=False):
+    """
+    Setter method for in_errors, mapped from YANG variable /interfaces/interface/state/counters/in_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_errors() directly.
+
+    YANG Description: For packet-oriented interfaces, the number of inbound
+packets that contained errors preventing them from being
+deliverable to a higher-layer protocol.  For character-
+oriented or fixed-length interfaces, the number of
+inbound transmission units that contained errors
+preventing them from being deliverable to a higher-layer
+protocol.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_errors(self):
+    self.__in_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_unknown_protos(self):
+    """
+    Getter method for in_unknown_protos, mapped from YANG variable /interfaces/interface/state/counters/in_unknown_protos (oc-yang:counter64)
+
+    YANG Description: For packet-oriented interfaces, the number of packets
+received via the interface that were discarded because
+of an unknown or unsupported protocol.  For
+character-oriented or fixed-length interfaces that
+support protocol multiplexing, the number of
+transmission units received via the interface that were
+discarded because of an unknown or unsupported protocol.
+For any interface that does not support protocol
+multiplexing, this counter is not present.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__in_unknown_protos
+      
+  def _set_in_unknown_protos(self, v, load=False):
+    """
+    Setter method for in_unknown_protos, mapped from YANG variable /interfaces/interface/state/counters/in_unknown_protos (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_unknown_protos is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_unknown_protos() directly.
+
+    YANG Description: For packet-oriented interfaces, the number of packets
+received via the interface that were discarded because
+of an unknown or unsupported protocol.  For
+character-oriented or fixed-length interfaces that
+support protocol multiplexing, the number of
+transmission units received via the interface that were
+discarded because of an unknown or unsupported protocol.
+For any interface that does not support protocol
+multiplexing, this counter is not present.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_unknown_protos must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_unknown_protos = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_unknown_protos(self):
+    self.__in_unknown_protos = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_fcs_errors(self):
+    """
+    Getter method for in_fcs_errors, mapped from YANG variable /interfaces/interface/state/counters/in_fcs_errors (oc-yang:counter64)
+
+    YANG Description: Number of received packets which had errors in the
+frame check sequence (FCS), i.e., framing errors.
+
+Discontinuities in the value of this counter can occur
+when the device is re-initialization as indicated by the
+value of 'last-clear'.
+    """
+    return self.__in_fcs_errors
+      
+  def _set_in_fcs_errors(self, v, load=False):
+    """
+    Setter method for in_fcs_errors, mapped from YANG variable /interfaces/interface/state/counters/in_fcs_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_fcs_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_fcs_errors() directly.
+
+    YANG Description: Number of received packets which had errors in the
+frame check sequence (FCS), i.e., framing errors.
+
+Discontinuities in the value of this counter can occur
+when the device is re-initialization as indicated by the
+value of 'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_fcs_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_fcs_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_fcs_errors(self):
+    self.__in_fcs_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_out_octets(self):
+    """
+    Getter method for out_octets, mapped from YANG variable /interfaces/interface/state/counters/out_octets (oc-yang:counter64)
+
+    YANG Description: The total number of octets transmitted out of the
+interface, including framing characters.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__out_octets
+      
+  def _set_out_octets(self, v, load=False):
+    """
+    Setter method for out_octets, mapped from YANG variable /interfaces/interface/state/counters/out_octets (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_out_octets is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_out_octets() directly.
+
+    YANG Description: The total number of octets transmitted out of the
+interface, including framing characters.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """out_octets must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__out_octets = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_out_octets(self):
+    self.__out_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_out_pkts(self):
+    """
+    Getter method for out_pkts, mapped from YANG variable /interfaces/interface/state/counters/out_pkts (oc-yang:counter64)
+
+    YANG Description: The total number of packets transmitted out of the
+interface, including all unicast, multicast, broadcast,
+and bad packets etc.
+    """
+    return self.__out_pkts
+      
+  def _set_out_pkts(self, v, load=False):
+    """
+    Setter method for out_pkts, mapped from YANG variable /interfaces/interface/state/counters/out_pkts (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_out_pkts is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_out_pkts() directly.
+
+    YANG Description: The total number of packets transmitted out of the
+interface, including all unicast, multicast, broadcast,
+and bad packets etc.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """out_pkts must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__out_pkts = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_out_pkts(self):
+    self.__out_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_out_unicast_pkts(self):
+    """
+    Getter method for out_unicast_pkts, mapped from YANG variable /interfaces/interface/state/counters/out_unicast_pkts (oc-yang:counter64)
+
+    YANG Description: The total number of packets that higher-level protocols
+requested be transmitted, and that were not addressed
+to a multicast or broadcast address at this sub-layer,
+including those that were discarded or not sent.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__out_unicast_pkts
+      
+  def _set_out_unicast_pkts(self, v, load=False):
+    """
+    Setter method for out_unicast_pkts, mapped from YANG variable /interfaces/interface/state/counters/out_unicast_pkts (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_out_unicast_pkts is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_out_unicast_pkts() directly.
+
+    YANG Description: The total number of packets that higher-level protocols
+requested be transmitted, and that were not addressed
+to a multicast or broadcast address at this sub-layer,
+including those that were discarded or not sent.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """out_unicast_pkts must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__out_unicast_pkts = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_out_unicast_pkts(self):
+    self.__out_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_out_broadcast_pkts(self):
+    """
+    Getter method for out_broadcast_pkts, mapped from YANG variable /interfaces/interface/state/counters/out_broadcast_pkts (oc-yang:counter64)
+
+    YANG Description: The total number of packets that higher-level protocols
+requested be transmitted, and that were addressed to a
+broadcast address at this sub-layer, including those
+that were discarded or not sent.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__out_broadcast_pkts
+      
+  def _set_out_broadcast_pkts(self, v, load=False):
+    """
+    Setter method for out_broadcast_pkts, mapped from YANG variable /interfaces/interface/state/counters/out_broadcast_pkts (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_out_broadcast_pkts is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_out_broadcast_pkts() directly.
+
+    YANG Description: The total number of packets that higher-level protocols
+requested be transmitted, and that were addressed to a
+broadcast address at this sub-layer, including those
+that were discarded or not sent.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """out_broadcast_pkts must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__out_broadcast_pkts = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_out_broadcast_pkts(self):
+    self.__out_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_out_multicast_pkts(self):
+    """
+    Getter method for out_multicast_pkts, mapped from YANG variable /interfaces/interface/state/counters/out_multicast_pkts (oc-yang:counter64)
+
+    YANG Description: The total number of packets that higher-level protocols
+requested be transmitted, and that were addressed to a
+multicast address at this sub-layer, including those
+that were discarded or not sent.  For a MAC-layer
+protocol, this includes both Group and Functional
+addresses.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__out_multicast_pkts
+      
+  def _set_out_multicast_pkts(self, v, load=False):
+    """
+    Setter method for out_multicast_pkts, mapped from YANG variable /interfaces/interface/state/counters/out_multicast_pkts (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_out_multicast_pkts is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_out_multicast_pkts() directly.
+
+    YANG Description: The total number of packets that higher-level protocols
+requested be transmitted, and that were addressed to a
+multicast address at this sub-layer, including those
+that were discarded or not sent.  For a MAC-layer
+protocol, this includes both Group and Functional
+addresses.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """out_multicast_pkts must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__out_multicast_pkts = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_out_multicast_pkts(self):
+    self.__out_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_out_discards(self):
+    """
+    Getter method for out_discards, mapped from YANG variable /interfaces/interface/state/counters/out_discards (oc-yang:counter64)
+
+    YANG Description: The number of outbound packets that were chosen to be
+discarded even though no errors had been detected to
+prevent their being transmitted.  One possible reason
+for discarding such a packet could be to free up buffer
+space.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__out_discards
+      
+  def _set_out_discards(self, v, load=False):
+    """
+    Setter method for out_discards, mapped from YANG variable /interfaces/interface/state/counters/out_discards (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_out_discards is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_out_discards() directly.
+
+    YANG Description: The number of outbound packets that were chosen to be
+discarded even though no errors had been detected to
+prevent their being transmitted.  One possible reason
+for discarding such a packet could be to free up buffer
+space.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """out_discards must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__out_discards = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_out_discards(self):
+    self.__out_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_out_errors(self):
+    """
+    Getter method for out_errors, mapped from YANG variable /interfaces/interface/state/counters/out_errors (oc-yang:counter64)
+
+    YANG Description: For packet-oriented interfaces, the number of outbound
+packets that could not be transmitted because of errors.
+For character-oriented or fixed-length interfaces, the
+number of outbound transmission units that could not be
+transmitted because of errors.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__out_errors
+      
+  def _set_out_errors(self, v, load=False):
+    """
+    Setter method for out_errors, mapped from YANG variable /interfaces/interface/state/counters/out_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_out_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_out_errors() directly.
+
+    YANG Description: For packet-oriented interfaces, the number of outbound
+packets that could not be transmitted because of errors.
+For character-oriented or fixed-length interfaces, the
+number of outbound transmission units that could not be
+transmitted because of errors.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """out_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__out_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_out_errors(self):
+    self.__out_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_carrier_transitions(self):
+    """
+    Getter method for carrier_transitions, mapped from YANG variable /interfaces/interface/state/counters/carrier_transitions (oc-yang:counter64)
+
+    YANG Description: Number of times the interface state has transitioned
+between up and down since the time the device restarted
+or the last-clear time, whichever is most recent.
+    """
+    return self.__carrier_transitions
+      
+  def _set_carrier_transitions(self, v, load=False):
+    """
+    Setter method for carrier_transitions, mapped from YANG variable /interfaces/interface/state/counters/carrier_transitions (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_carrier_transitions is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_carrier_transitions() directly.
+
+    YANG Description: Number of times the interface state has transitioned
+between up and down since the time the device restarted
+or the last-clear time, whichever is most recent.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """carrier_transitions must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__carrier_transitions = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_carrier_transitions(self):
+    self.__carrier_transitions = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_last_clear(self):
+    """
+    Getter method for last_clear, mapped from YANG variable /interfaces/interface/state/counters/last_clear (oc-types:timeticks64)
+
+    YANG Description: Timestamp of the last time the interface counters were
+cleared.
+
+The value is the timestamp in nanoseconds relative to
+the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+    """
+    return self.__last_clear
+      
+  def _set_last_clear(self, v, load=False):
+    """
+    Setter method for last_clear, mapped from YANG variable /interfaces/interface/state/counters/last_clear (oc-types:timeticks64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_last_clear is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_last_clear() directly.
+
+    YANG Description: Timestamp of the last time the interface counters were
+cleared.
+
+The value is the timestamp in nanoseconds relative to
+the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """last_clear must be of a type compatible with oc-types:timeticks64""",
+          'defined-type': "oc-types:timeticks64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False)""",
+        })
+
+    self.__last_clear = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_last_clear(self):
+    self.__last_clear = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False)
+
+  in_octets = __builtin__.property(_get_in_octets)
+  in_pkts = __builtin__.property(_get_in_pkts)
+  in_unicast_pkts = __builtin__.property(_get_in_unicast_pkts)
+  in_broadcast_pkts = __builtin__.property(_get_in_broadcast_pkts)
+  in_multicast_pkts = __builtin__.property(_get_in_multicast_pkts)
+  in_discards = __builtin__.property(_get_in_discards)
+  in_errors = __builtin__.property(_get_in_errors)
+  in_unknown_protos = __builtin__.property(_get_in_unknown_protos)
+  in_fcs_errors = __builtin__.property(_get_in_fcs_errors)
+  out_octets = __builtin__.property(_get_out_octets)
+  out_pkts = __builtin__.property(_get_out_pkts)
+  out_unicast_pkts = __builtin__.property(_get_out_unicast_pkts)
+  out_broadcast_pkts = __builtin__.property(_get_out_broadcast_pkts)
+  out_multicast_pkts = __builtin__.property(_get_out_multicast_pkts)
+  out_discards = __builtin__.property(_get_out_discards)
+  out_errors = __builtin__.property(_get_out_errors)
+  carrier_transitions = __builtin__.property(_get_carrier_transitions)
+  last_clear = __builtin__.property(_get_last_clear)
+
+
+  _pyangbind_elements = OrderedDict([('in_octets', in_octets), ('in_pkts', in_pkts), ('in_unicast_pkts', in_unicast_pkts), ('in_broadcast_pkts', in_broadcast_pkts), ('in_multicast_pkts', in_multicast_pkts), ('in_discards', in_discards), ('in_errors', in_errors), ('in_unknown_protos', in_unknown_protos), ('in_fcs_errors', in_fcs_errors), ('out_octets', out_octets), ('out_pkts', out_pkts), ('out_unicast_pkts', out_unicast_pkts), ('out_broadcast_pkts', out_broadcast_pkts), ('out_multicast_pkts', out_multicast_pkts), ('out_discards', out_discards), ('out_errors', out_errors), ('carrier_transitions', carrier_transitions), ('last_clear', last_clear), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..0145b376a03bf233ef31b50261f70d58241e9a66
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/__init__.py
@@ -0,0 +1,118 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import subinterface
+class subinterfaces(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-interfaces - based on the path /interfaces/interface/subinterfaces. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Enclosing container for the list of subinterfaces associated
+with a physical interface
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__subinterface',)
+
+  _yang_name = 'subinterfaces'
+  _yang_namespace = 'http://openconfig.net/yang/interfaces'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__subinterface = YANGDynClass(base=YANGListType("index",subinterface.subinterface, yang_name="subinterface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='list', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['interfaces', 'interface', 'subinterfaces']
+
+  def _get_subinterface(self):
+    """
+    Getter method for subinterface, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface (list)
+
+    YANG Description: The list of subinterfaces (logical interfaces) associated
+with a physical interface
+    """
+    return self.__subinterface
+      
+  def _set_subinterface(self, v, load=False):
+    """
+    Setter method for subinterface, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface (list)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_subinterface is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_subinterface() directly.
+
+    YANG Description: The list of subinterfaces (logical interfaces) associated
+with a physical interface
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGListType("index",subinterface.subinterface, yang_name="subinterface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='list', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """subinterface must be of a type compatible with list""",
+          'defined-type': "list",
+          'generated-type': """YANGDynClass(base=YANGListType("index",subinterface.subinterface, yang_name="subinterface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='list', is_config=True)""",
+        })
+
+    self.__subinterface = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_subinterface(self):
+    self.__subinterface = YANGDynClass(base=YANGListType("index",subinterface.subinterface, yang_name="subinterface", parent=self, is_container='list', user_ordered=False, path_helper=self._path_helper, yang_keys='index', extensions=None), is_container='list', yang_name="subinterface", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='list', is_config=True)
+
+  subinterface = __builtin__.property(_get_subinterface, _set_subinterface)
+
+
+  _pyangbind_elements = OrderedDict([('subinterface', subinterface), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..b74e019a7552177737d6d1ad0425467f9ef5e526
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/__init__.py
@@ -0,0 +1,202 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import config
+from . import state
+class subinterface(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-interfaces - based on the path /interfaces/interface/subinterfaces/subinterface. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: The list of subinterfaces (logical interfaces) associated
+with a physical interface
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__index','__config','__state',)
+
+  _yang_name = 'subinterface'
+  _yang_namespace = 'http://openconfig.net/yang/interfaces'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__index = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='leafref', is_config=True)
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['interfaces', 'interface', 'subinterfaces', 'subinterface']
+
+  def _get_index(self):
+    """
+    Getter method for index, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/index (leafref)
+
+    YANG Description: The index number of the subinterface -- used to address
+the logical interface
+    """
+    return self.__index
+      
+  def _set_index(self, v, load=False):
+    """
+    Setter method for index, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/index (leafref)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_index is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_index() directly.
+
+    YANG Description: The index number of the subinterface -- used to address
+the logical interface
+    """
+    parent = getattr(self, "_parent", None)
+    if parent is not None and load is False:
+      raise AttributeError("Cannot set keys directly when" +
+                             " within an instantiated list")
+
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='leafref', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """index must be of a type compatible with leafref""",
+          'defined-type': "leafref",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='leafref', is_config=True)""",
+        })
+
+    self.__index = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_index(self):
+    self.__index = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='leafref', is_config=True)
+
+
+  def _get_config(self):
+    """
+    Getter method for config, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/config (container)
+
+    YANG Description: Configurable items at the subinterface level
+    """
+    return self.__config
+      
+  def _set_config(self, v, load=False):
+    """
+    Setter method for config, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/config (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_config is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_config() directly.
+
+    YANG Description: Configurable items at the subinterface level
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """config must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)""",
+        })
+
+    self.__config = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_config(self):
+    self.__config = YANGDynClass(base=config.config, is_container='container', yang_name="config", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+
+
+  def _get_state(self):
+    """
+    Getter method for state, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state (container)
+
+    YANG Description: Operational state data for logical interfaces
+    """
+    return self.__state
+      
+  def _set_state(self, v, load=False):
+    """
+    Setter method for state, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_state is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_state() directly.
+
+    YANG Description: Operational state data for logical interfaces
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """state must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)""",
+        })
+
+    self.__state = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_state(self):
+    self.__state = YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=True)
+
+  index = __builtin__.property(_get_index, _set_index)
+  config = __builtin__.property(_get_config, _set_config)
+  state = __builtin__.property(_get_state, _set_state)
+
+
+  _pyangbind_elements = OrderedDict([('index', index), ('config', config), ('state', state), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/config/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/config/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..fb6262e5facf1d46a17eb9edce771ecd99575c17
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/config/__init__.py
@@ -0,0 +1,268 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class config(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-interfaces - based on the path /interfaces/interface/subinterfaces/subinterface/config. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Configurable items at the subinterface level
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__index','__description','__enabled',)
+
+  _yang_name = 'config'
+  _yang_namespace = 'http://openconfig.net/yang/interfaces'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__index = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True)
+    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True)
+    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['interfaces', 'interface', 'subinterfaces', 'subinterface', 'config']
+
+  def _get_index(self):
+    """
+    Getter method for index, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/config/index (uint32)
+
+    YANG Description: The index of the subinterface, or logical interface number.
+On systems with no support for subinterfaces, or not using
+subinterfaces, this value should default to 0, i.e., the
+default subinterface.
+    """
+    return self.__index
+      
+  def _set_index(self, v, load=False):
+    """
+    Setter method for index, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/config/index (uint32)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_index is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_index() directly.
+
+    YANG Description: The index of the subinterface, or logical interface number.
+On systems with no support for subinterfaces, or not using
+subinterfaces, this value should default to 0, i.e., the
+default subinterface.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """index must be of a type compatible with uint32""",
+          'defined-type': "uint32",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True)""",
+        })
+
+    self.__index = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_index(self):
+    self.__index = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=True)
+
+
+  def _get_description(self):
+    """
+    Getter method for description, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/config/description (string)
+
+    YANG Description: A textual description of the interface.
+
+A server implementation MAY map this leaf to the ifAlias
+MIB object.  Such an implementation needs to use some
+mechanism to handle the differences in size and characters
+allowed between this leaf and ifAlias.  The definition of
+such a mechanism is outside the scope of this document.
+
+Since ifAlias is defined to be stored in non-volatile
+storage, the MIB implementation MUST map ifAlias to the
+value of 'description' in the persistently stored
+datastore.
+
+Specifically, if the device supports ':startup', when
+ifAlias is read the device MUST return the value of
+'description' in the 'startup' datastore, and when it is
+written, it MUST be written to the 'running' and 'startup'
+datastores.  Note that it is up to the implementation to
+
+decide whether to modify this single leaf in 'startup' or
+perform an implicit copy-config from 'running' to
+'startup'.
+
+If the device does not support ':startup', ifAlias MUST
+be mapped to the 'description' leaf in the 'running'
+datastore.
+    """
+    return self.__description
+      
+  def _set_description(self, v, load=False):
+    """
+    Setter method for description, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/config/description (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_description is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_description() directly.
+
+    YANG Description: A textual description of the interface.
+
+A server implementation MAY map this leaf to the ifAlias
+MIB object.  Such an implementation needs to use some
+mechanism to handle the differences in size and characters
+allowed between this leaf and ifAlias.  The definition of
+such a mechanism is outside the scope of this document.
+
+Since ifAlias is defined to be stored in non-volatile
+storage, the MIB implementation MUST map ifAlias to the
+value of 'description' in the persistently stored
+datastore.
+
+Specifically, if the device supports ':startup', when
+ifAlias is read the device MUST return the value of
+'description' in the 'startup' datastore, and when it is
+written, it MUST be written to the 'running' and 'startup'
+datastores.  Note that it is up to the implementation to
+
+decide whether to modify this single leaf in 'startup' or
+perform an implicit copy-config from 'running' to
+'startup'.
+
+If the device does not support ':startup', ifAlias MUST
+be mapped to the 'description' leaf in the 'running'
+datastore.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """description must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True)""",
+        })
+
+    self.__description = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_description(self):
+    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=True)
+
+
+  def _get_enabled(self):
+    """
+    Getter method for enabled, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/config/enabled (boolean)
+
+    YANG Description: This leaf contains the configured, desired state of the
+interface.
+
+Systems that implement the IF-MIB use the value of this
+leaf in the 'running' datastore to set
+IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
+has been initialized, as described in RFC 2863.
+
+Changes in this leaf in the 'running' datastore are
+reflected in ifAdminStatus, but if ifAdminStatus is
+changed over SNMP, this leaf is not affected.
+    """
+    return self.__enabled
+      
+  def _set_enabled(self, v, load=False):
+    """
+    Setter method for enabled, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/config/enabled (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_enabled is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_enabled() directly.
+
+    YANG Description: This leaf contains the configured, desired state of the
+interface.
+
+Systems that implement the IF-MIB use the value of this
+leaf in the 'running' datastore to set
+IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
+has been initialized, as described in RFC 2863.
+
+Changes in this leaf in the 'running' datastore are
+reflected in ifAdminStatus, but if ifAdminStatus is
+changed over SNMP, this leaf is not affected.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """enabled must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True)""",
+        })
+
+    self.__enabled = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_enabled(self):
+    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=True)
+
+  index = __builtin__.property(_get_index, _set_index)
+  description = __builtin__.property(_get_description, _set_description)
+  enabled = __builtin__.property(_get_enabled, _set_enabled)
+
+
+  _pyangbind_elements = OrderedDict([('index', index), ('description', description), ('enabled', enabled), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/state/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/state/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..a40a3022793b2329361872906fca74829d38f711
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/state/__init__.py
@@ -0,0 +1,672 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+from . import counters
+class state(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-interfaces - based on the path /interfaces/interface/subinterfaces/subinterface/state. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: Operational state data for logical interfaces
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__index','__description','__enabled','__name','__ifindex','__admin_status','__oper_status','__last_change','__logical','__management','__cpu','__counters',)
+
+  _yang_name = 'state'
+  _yang_namespace = 'http://openconfig.net/yang/interfaces'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__index = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)
+    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False)
+    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False)
+    self.__ifindex = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)
+    self.__admin_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False)
+    self.__oper_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False)
+    self.__last_change = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False)
+    self.__logical = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+    self.__management = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+    self.__cpu = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+    self.__counters = YANGDynClass(base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['interfaces', 'interface', 'subinterfaces', 'subinterface', 'state']
+
+  def _get_index(self):
+    """
+    Getter method for index, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/index (uint32)
+
+    YANG Description: The index of the subinterface, or logical interface number.
+On systems with no support for subinterfaces, or not using
+subinterfaces, this value should default to 0, i.e., the
+default subinterface.
+    """
+    return self.__index
+      
+  def _set_index(self, v, load=False):
+    """
+    Setter method for index, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/index (uint32)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_index is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_index() directly.
+
+    YANG Description: The index of the subinterface, or logical interface number.
+On systems with no support for subinterfaces, or not using
+subinterfaces, this value should default to 0, i.e., the
+default subinterface.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """index must be of a type compatible with uint32""",
+          'defined-type': "uint32",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)""",
+        })
+
+    self.__index = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_index(self):
+    self.__index = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), default=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32)(0), is_leaf=True, yang_name="index", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)
+
+
+  def _get_description(self):
+    """
+    Getter method for description, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/description (string)
+
+    YANG Description: A textual description of the interface.
+
+A server implementation MAY map this leaf to the ifAlias
+MIB object.  Such an implementation needs to use some
+mechanism to handle the differences in size and characters
+allowed between this leaf and ifAlias.  The definition of
+such a mechanism is outside the scope of this document.
+
+Since ifAlias is defined to be stored in non-volatile
+storage, the MIB implementation MUST map ifAlias to the
+value of 'description' in the persistently stored
+datastore.
+
+Specifically, if the device supports ':startup', when
+ifAlias is read the device MUST return the value of
+'description' in the 'startup' datastore, and when it is
+written, it MUST be written to the 'running' and 'startup'
+datastores.  Note that it is up to the implementation to
+
+decide whether to modify this single leaf in 'startup' or
+perform an implicit copy-config from 'running' to
+'startup'.
+
+If the device does not support ':startup', ifAlias MUST
+be mapped to the 'description' leaf in the 'running'
+datastore.
+    """
+    return self.__description
+      
+  def _set_description(self, v, load=False):
+    """
+    Setter method for description, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/description (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_description is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_description() directly.
+
+    YANG Description: A textual description of the interface.
+
+A server implementation MAY map this leaf to the ifAlias
+MIB object.  Such an implementation needs to use some
+mechanism to handle the differences in size and characters
+allowed between this leaf and ifAlias.  The definition of
+such a mechanism is outside the scope of this document.
+
+Since ifAlias is defined to be stored in non-volatile
+storage, the MIB implementation MUST map ifAlias to the
+value of 'description' in the persistently stored
+datastore.
+
+Specifically, if the device supports ':startup', when
+ifAlias is read the device MUST return the value of
+'description' in the 'startup' datastore, and when it is
+written, it MUST be written to the 'running' and 'startup'
+datastores.  Note that it is up to the implementation to
+
+decide whether to modify this single leaf in 'startup' or
+perform an implicit copy-config from 'running' to
+'startup'.
+
+If the device does not support ':startup', ifAlias MUST
+be mapped to the 'description' leaf in the 'running'
+datastore.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """description must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False)""",
+        })
+
+    self.__description = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_description(self):
+    self.__description = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="description", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False)
+
+
+  def _get_enabled(self):
+    """
+    Getter method for enabled, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/enabled (boolean)
+
+    YANG Description: This leaf contains the configured, desired state of the
+interface.
+
+Systems that implement the IF-MIB use the value of this
+leaf in the 'running' datastore to set
+IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
+has been initialized, as described in RFC 2863.
+
+Changes in this leaf in the 'running' datastore are
+reflected in ifAdminStatus, but if ifAdminStatus is
+changed over SNMP, this leaf is not affected.
+    """
+    return self.__enabled
+      
+  def _set_enabled(self, v, load=False):
+    """
+    Setter method for enabled, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/enabled (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_enabled is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_enabled() directly.
+
+    YANG Description: This leaf contains the configured, desired state of the
+interface.
+
+Systems that implement the IF-MIB use the value of this
+leaf in the 'running' datastore to set
+IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
+has been initialized, as described in RFC 2863.
+
+Changes in this leaf in the 'running' datastore are
+reflected in ifAdminStatus, but if ifAdminStatus is
+changed over SNMP, this leaf is not affected.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """enabled must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__enabled = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_enabled(self):
+    self.__enabled = YANGDynClass(base=YANGBool, default=YANGBool("true"), is_leaf=True, yang_name="enabled", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+
+
+  def _get_name(self):
+    """
+    Getter method for name, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/name (string)
+
+    YANG Description: The system-assigned name for the sub-interface.  This MAY
+be a combination of the base interface name and the
+subinterface index, or some other convention used by the
+system.
+    """
+    return self.__name
+      
+  def _set_name(self, v, load=False):
+    """
+    Setter method for name, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/name (string)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_name is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_name() directly.
+
+    YANG Description: The system-assigned name for the sub-interface.  This MAY
+be a combination of the base interface name and the
+subinterface index, or some other convention used by the
+system.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """name must be of a type compatible with string""",
+          'defined-type': "string",
+          'generated-type': """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False)""",
+        })
+
+    self.__name = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_name(self):
+    self.__name = YANGDynClass(base=six.text_type, is_leaf=True, yang_name="name", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='string', is_config=False)
+
+
+  def _get_ifindex(self):
+    """
+    Getter method for ifindex, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/ifindex (uint32)
+
+    YANG Description: System assigned number for each interface.  Corresponds to
+ifIndex object in SNMP Interface MIB
+    """
+    return self.__ifindex
+      
+  def _set_ifindex(self, v, load=False):
+    """
+    Setter method for ifindex, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/ifindex (uint32)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_ifindex is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_ifindex() directly.
+
+    YANG Description: System assigned number for each interface.  Corresponds to
+ifIndex object in SNMP Interface MIB
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """ifindex must be of a type compatible with uint32""",
+          'defined-type': "uint32",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)""",
+        })
+
+    self.__ifindex = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_ifindex(self):
+    self.__ifindex = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range': ['0..4294967295']}, int_size=32), is_leaf=True, yang_name="ifindex", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='uint32', is_config=False)
+
+
+  def _get_admin_status(self):
+    """
+    Getter method for admin_status, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/admin_status (enumeration)
+
+    YANG Description: The desired state of the interface.  In RFC 7223 this leaf
+has the same read semantics as ifAdminStatus.  Here, it
+reflects the administrative state as set by enabling or
+disabling the interface.
+    """
+    return self.__admin_status
+      
+  def _set_admin_status(self, v, load=False):
+    """
+    Setter method for admin_status, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/admin_status (enumeration)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_admin_status is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_admin_status() directly.
+
+    YANG Description: The desired state of the interface.  In RFC 7223 this leaf
+has the same read semantics as ifAdminStatus.  Here, it
+reflects the administrative state as set by enabling or
+disabling the interface.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """admin_status must be of a type compatible with enumeration""",
+          'defined-type': "openconfig-interfaces:enumeration",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False)""",
+        })
+
+    self.__admin_status = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_admin_status(self):
+    self.__admin_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {}, 'DOWN': {}, 'TESTING': {}},), is_leaf=True, yang_name="admin-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False)
+
+
+  def _get_oper_status(self):
+    """
+    Getter method for oper_status, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/oper_status (enumeration)
+
+    YANG Description: The current operational state of the interface.
+
+This leaf has the same semantics as ifOperStatus.
+    """
+    return self.__oper_status
+      
+  def _set_oper_status(self, v, load=False):
+    """
+    Setter method for oper_status, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/oper_status (enumeration)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_oper_status is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_oper_status() directly.
+
+    YANG Description: The current operational state of the interface.
+
+This leaf has the same semantics as ifOperStatus.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """oper_status must be of a type compatible with enumeration""",
+          'defined-type': "openconfig-interfaces:enumeration",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False)""",
+        })
+
+    self.__oper_status = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_oper_status(self):
+    self.__oper_status = YANGDynClass(base=RestrictedClassType(base_type=six.text_type,                                     restriction_type="dict_key",                                     restriction_arg={'UP': {'value': 1}, 'DOWN': {'value': 2}, 'TESTING': {'value': 3}, 'UNKNOWN': {'value': 4}, 'DORMANT': {'value': 5}, 'NOT_PRESENT': {'value': 6}, 'LOWER_LAYER_DOWN': {'value': 7}},), is_leaf=True, yang_name="oper-status", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='enumeration', is_config=False)
+
+
+  def _get_last_change(self):
+    """
+    Getter method for last_change, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/last_change (oc-types:timeticks64)
+
+    YANG Description: This timestamp indicates the absolute time of the last
+state change of the interface (e.g., up-to-down transition).
+This is different than the SNMP ifLastChange object in the
+standard interface MIB in that it is not relative to the
+system boot time (i.e,. sysUpTime).
+
+The value is the timestamp in nanoseconds relative to
+the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+    """
+    return self.__last_change
+      
+  def _set_last_change(self, v, load=False):
+    """
+    Setter method for last_change, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/last_change (oc-types:timeticks64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_last_change is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_last_change() directly.
+
+    YANG Description: This timestamp indicates the absolute time of the last
+state change of the interface (e.g., up-to-down transition).
+This is different than the SNMP ifLastChange object in the
+standard interface MIB in that it is not relative to the
+system boot time (i.e,. sysUpTime).
+
+The value is the timestamp in nanoseconds relative to
+the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """last_change must be of a type compatible with oc-types:timeticks64""",
+          'defined-type': "oc-types:timeticks64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False)""",
+        })
+
+    self.__last_change = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_last_change(self):
+    self.__last_change = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-change", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False)
+
+
+  def _get_logical(self):
+    """
+    Getter method for logical, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/logical (boolean)
+
+    YANG Description: When set to true, the interface is a logical interface
+which does not have an associated physical port or
+channel on the system.
+    """
+    return self.__logical
+      
+  def _set_logical(self, v, load=False):
+    """
+    Setter method for logical, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/logical (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_logical is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_logical() directly.
+
+    YANG Description: When set to true, the interface is a logical interface
+which does not have an associated physical port or
+channel on the system.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """logical must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__logical = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_logical(self):
+    self.__logical = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="logical", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+
+
+  def _get_management(self):
+    """
+    Getter method for management, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/management (boolean)
+
+    YANG Description: When set to true, the interface is a dedicated
+management interface that is not connected to dataplane
+interfaces.  It may be used to connect the system to an
+out-of-band management network, for example.
+    """
+    return self.__management
+      
+  def _set_management(self, v, load=False):
+    """
+    Setter method for management, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/management (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_management is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_management() directly.
+
+    YANG Description: When set to true, the interface is a dedicated
+management interface that is not connected to dataplane
+interfaces.  It may be used to connect the system to an
+out-of-band management network, for example.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """management must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__management = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_management(self):
+    self.__management = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="management", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+
+
+  def _get_cpu(self):
+    """
+    Getter method for cpu, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/cpu (boolean)
+
+    YANG Description: When set to true, the interface is for traffic
+that is handled by the system CPU, sometimes also called the
+control plane interface.  On systems that represent the CPU
+interface as an Ethernet interface, for example, this leaf
+should be used to distinguish the CPU interface from dataplane
+interfaces.
+    """
+    return self.__cpu
+      
+  def _set_cpu(self, v, load=False):
+    """
+    Setter method for cpu, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/cpu (boolean)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_cpu is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_cpu() directly.
+
+    YANG Description: When set to true, the interface is for traffic
+that is handled by the system CPU, sometimes also called the
+control plane interface.  On systems that represent the CPU
+interface as an Ethernet interface, for example, this leaf
+should be used to distinguish the CPU interface from dataplane
+interfaces.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """cpu must be of a type compatible with boolean""",
+          'defined-type': "boolean",
+          'generated-type': """YANGDynClass(base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)""",
+        })
+
+    self.__cpu = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_cpu(self):
+    self.__cpu = YANGDynClass(base=YANGBool, is_leaf=True, yang_name="cpu", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='boolean', is_config=False)
+
+
+  def _get_counters(self):
+    """
+    Getter method for counters, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters (container)
+
+    YANG Description: A collection of interface-related statistics objects.
+    """
+    return self.__counters
+      
+  def _set_counters(self, v, load=False):
+    """
+    Setter method for counters, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters (container)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_counters is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_counters() directly.
+
+    YANG Description: A collection of interface-related statistics objects.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """counters must be of a type compatible with container""",
+          'defined-type': "container",
+          'generated-type': """YANGDynClass(base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=False)""",
+        })
+
+    self.__counters = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_counters(self):
+    self.__counters = YANGDynClass(base=counters.counters, is_container='container', yang_name="counters", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='container', is_config=False)
+
+  index = __builtin__.property(_get_index)
+  description = __builtin__.property(_get_description)
+  enabled = __builtin__.property(_get_enabled)
+  name = __builtin__.property(_get_name)
+  ifindex = __builtin__.property(_get_ifindex)
+  admin_status = __builtin__.property(_get_admin_status)
+  oper_status = __builtin__.property(_get_oper_status)
+  last_change = __builtin__.property(_get_last_change)
+  logical = __builtin__.property(_get_logical)
+  management = __builtin__.property(_get_management)
+  cpu = __builtin__.property(_get_cpu)
+  counters = __builtin__.property(_get_counters)
+
+
+  _pyangbind_elements = OrderedDict([('index', index), ('description', description), ('enabled', enabled), ('name', name), ('ifindex', ifindex), ('admin_status', admin_status), ('oper_status', oper_status), ('last_change', last_change), ('logical', logical), ('management', management), ('cpu', cpu), ('counters', counters), ])
+
+
diff --git a/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/state/counters/__init__.py b/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/state/counters/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..62bf19a4b7d365bec2537362c71efa19dfb043dc
--- /dev/null
+++ b/hackfest/netconf-oc/openconfig/interfaces/interface/subinterfaces/subinterface/state/counters/__init__.py
@@ -0,0 +1,1029 @@
+# -*- coding: utf-8 -*-
+from operator import attrgetter
+from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
+from pyangbind.lib.yangtypes import RestrictedClassType
+from pyangbind.lib.yangtypes import TypedListType
+from pyangbind.lib.yangtypes import YANGBool
+from pyangbind.lib.yangtypes import YANGListType
+from pyangbind.lib.yangtypes import YANGDynClass
+from pyangbind.lib.yangtypes import ReferenceType
+from pyangbind.lib.base import PybindBase
+from collections import OrderedDict
+from decimal import Decimal
+from bitarray import bitarray
+import six
+
+# PY3 support of some PY2 keywords (needs improved)
+if six.PY3:
+  import builtins as __builtin__
+  long = int
+elif six.PY2:
+  import __builtin__
+
+class counters(PybindBase):
+  """
+  This class was auto-generated by the PythonClass plugin for PYANG
+  from YANG module openconfig-interfaces - based on the path /interfaces/interface/subinterfaces/subinterface/state/counters. Each member element of
+  the container is represented as a class variable - with a specific
+  YANG type.
+
+  YANG Description: A collection of interface-related statistics objects.
+  """
+  __slots__ = ('_path_helper', '_extmethods', '__in_octets','__in_pkts','__in_unicast_pkts','__in_broadcast_pkts','__in_multicast_pkts','__in_discards','__in_errors','__in_unknown_protos','__in_fcs_errors','__out_octets','__out_pkts','__out_unicast_pkts','__out_broadcast_pkts','__out_multicast_pkts','__out_discards','__out_errors','__carrier_transitions','__last_clear',)
+
+  _yang_name = 'counters'
+  _yang_namespace = 'http://openconfig.net/yang/interfaces'
+
+  _pybind_generated_by = 'container'
+
+  def __init__(self, *args, **kwargs):
+
+    self._path_helper = False
+
+    self._extmethods = False
+    self.__in_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_unknown_protos = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__in_fcs_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__out_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__out_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__out_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__out_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__out_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__out_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__out_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__carrier_transitions = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    self.__last_clear = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False)
+
+    load = kwargs.pop("load", None)
+    if args:
+      if len(args) > 1:
+        raise TypeError("cannot create a YANG container with >1 argument")
+      all_attr = True
+      for e in self._pyangbind_elements:
+        if not hasattr(args[0], e):
+          all_attr = False
+          break
+      if not all_attr:
+        raise ValueError("Supplied object did not have the correct attributes")
+      for e in self._pyangbind_elements:
+        nobj = getattr(args[0], e)
+        if nobj._changed() is False:
+          continue
+        setmethod = getattr(self, "_set_%s" % e)
+        if load is None:
+          setmethod(getattr(args[0], e))
+        else:
+          setmethod(getattr(args[0], e), load=load)
+
+  def _path(self):
+    if hasattr(self, "_parent"):
+      return self._parent._path()+[self._yang_name]
+    else:
+      return ['interfaces', 'interface', 'subinterfaces', 'subinterface', 'state', 'counters']
+
+  def _get_in_octets(self):
+    """
+    Getter method for in_octets, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_octets (oc-yang:counter64)
+
+    YANG Description: The total number of octets received on the interface,
+including framing characters.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__in_octets
+      
+  def _set_in_octets(self, v, load=False):
+    """
+    Setter method for in_octets, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_octets (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_octets is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_octets() directly.
+
+    YANG Description: The total number of octets received on the interface,
+including framing characters.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_octets must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_octets = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_octets(self):
+    self.__in_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_pkts(self):
+    """
+    Getter method for in_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_pkts (oc-yang:counter64)
+
+    YANG Description: The total number of packets received on the interface,
+including all unicast, multicast, broadcast and bad packets
+etc.
+    """
+    return self.__in_pkts
+      
+  def _set_in_pkts(self, v, load=False):
+    """
+    Setter method for in_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_pkts (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_pkts is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_pkts() directly.
+
+    YANG Description: The total number of packets received on the interface,
+including all unicast, multicast, broadcast and bad packets
+etc.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_pkts must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_pkts = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_pkts(self):
+    self.__in_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_unicast_pkts(self):
+    """
+    Getter method for in_unicast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_unicast_pkts (oc-yang:counter64)
+
+    YANG Description: The number of packets, delivered by this sub-layer to a
+higher (sub-)layer, that were not addressed to a
+multicast or broadcast address at this sub-layer.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__in_unicast_pkts
+      
+  def _set_in_unicast_pkts(self, v, load=False):
+    """
+    Setter method for in_unicast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_unicast_pkts (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_unicast_pkts is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_unicast_pkts() directly.
+
+    YANG Description: The number of packets, delivered by this sub-layer to a
+higher (sub-)layer, that were not addressed to a
+multicast or broadcast address at this sub-layer.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_unicast_pkts must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_unicast_pkts = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_unicast_pkts(self):
+    self.__in_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_broadcast_pkts(self):
+    """
+    Getter method for in_broadcast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_broadcast_pkts (oc-yang:counter64)
+
+    YANG Description: The number of packets, delivered by this sub-layer to a
+higher (sub-)layer, that were addressed to a broadcast
+address at this sub-layer.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__in_broadcast_pkts
+      
+  def _set_in_broadcast_pkts(self, v, load=False):
+    """
+    Setter method for in_broadcast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_broadcast_pkts (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_broadcast_pkts is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_broadcast_pkts() directly.
+
+    YANG Description: The number of packets, delivered by this sub-layer to a
+higher (sub-)layer, that were addressed to a broadcast
+address at this sub-layer.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_broadcast_pkts must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_broadcast_pkts = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_broadcast_pkts(self):
+    self.__in_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_multicast_pkts(self):
+    """
+    Getter method for in_multicast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_multicast_pkts (oc-yang:counter64)
+
+    YANG Description: The number of packets, delivered by this sub-layer to a
+higher (sub-)layer, that were addressed to a multicast
+address at this sub-layer.  For a MAC-layer protocol,
+this includes both Group and Functional addresses.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__in_multicast_pkts
+      
+  def _set_in_multicast_pkts(self, v, load=False):
+    """
+    Setter method for in_multicast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_multicast_pkts (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_multicast_pkts is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_multicast_pkts() directly.
+
+    YANG Description: The number of packets, delivered by this sub-layer to a
+higher (sub-)layer, that were addressed to a multicast
+address at this sub-layer.  For a MAC-layer protocol,
+this includes both Group and Functional addresses.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_multicast_pkts must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_multicast_pkts = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_multicast_pkts(self):
+    self.__in_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_discards(self):
+    """
+    Getter method for in_discards, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_discards (oc-yang:counter64)
+
+    YANG Description: The number of inbound packets that were chosen to be
+discarded even though no errors had been detected to
+prevent their being deliverable to a higher-layer
+protocol.  One possible reason for discarding such a
+packet could be to free up buffer space.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__in_discards
+      
+  def _set_in_discards(self, v, load=False):
+    """
+    Setter method for in_discards, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_discards (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_discards is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_discards() directly.
+
+    YANG Description: The number of inbound packets that were chosen to be
+discarded even though no errors had been detected to
+prevent their being deliverable to a higher-layer
+protocol.  One possible reason for discarding such a
+packet could be to free up buffer space.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_discards must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_discards = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_discards(self):
+    self.__in_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_errors(self):
+    """
+    Getter method for in_errors, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_errors (oc-yang:counter64)
+
+    YANG Description: For packet-oriented interfaces, the number of inbound
+packets that contained errors preventing them from being
+deliverable to a higher-layer protocol.  For character-
+oriented or fixed-length interfaces, the number of
+inbound transmission units that contained errors
+preventing them from being deliverable to a higher-layer
+protocol.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__in_errors
+      
+  def _set_in_errors(self, v, load=False):
+    """
+    Setter method for in_errors, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_errors() directly.
+
+    YANG Description: For packet-oriented interfaces, the number of inbound
+packets that contained errors preventing them from being
+deliverable to a higher-layer protocol.  For character-
+oriented or fixed-length interfaces, the number of
+inbound transmission units that contained errors
+preventing them from being deliverable to a higher-layer
+protocol.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_errors(self):
+    self.__in_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_unknown_protos(self):
+    """
+    Getter method for in_unknown_protos, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_unknown_protos (oc-yang:counter64)
+
+    YANG Description: For packet-oriented interfaces, the number of packets
+received via the interface that were discarded because
+of an unknown or unsupported protocol.  For
+character-oriented or fixed-length interfaces that
+support protocol multiplexing, the number of
+transmission units received via the interface that were
+discarded because of an unknown or unsupported protocol.
+For any interface that does not support protocol
+multiplexing, this counter is not present.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__in_unknown_protos
+      
+  def _set_in_unknown_protos(self, v, load=False):
+    """
+    Setter method for in_unknown_protos, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_unknown_protos (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_unknown_protos is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_unknown_protos() directly.
+
+    YANG Description: For packet-oriented interfaces, the number of packets
+received via the interface that were discarded because
+of an unknown or unsupported protocol.  For
+character-oriented or fixed-length interfaces that
+support protocol multiplexing, the number of
+transmission units received via the interface that were
+discarded because of an unknown or unsupported protocol.
+For any interface that does not support protocol
+multiplexing, this counter is not present.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_unknown_protos must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_unknown_protos = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_unknown_protos(self):
+    self.__in_unknown_protos = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-unknown-protos", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_in_fcs_errors(self):
+    """
+    Getter method for in_fcs_errors, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_fcs_errors (oc-yang:counter64)
+
+    YANG Description: Number of received packets which had errors in the
+frame check sequence (FCS), i.e., framing errors.
+
+Discontinuities in the value of this counter can occur
+when the device is re-initialization as indicated by the
+value of 'last-clear'.
+    """
+    return self.__in_fcs_errors
+      
+  def _set_in_fcs_errors(self, v, load=False):
+    """
+    Setter method for in_fcs_errors, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/in_fcs_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_in_fcs_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_in_fcs_errors() directly.
+
+    YANG Description: Number of received packets which had errors in the
+frame check sequence (FCS), i.e., framing errors.
+
+Discontinuities in the value of this counter can occur
+when the device is re-initialization as indicated by the
+value of 'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """in_fcs_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__in_fcs_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_in_fcs_errors(self):
+    self.__in_fcs_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="in-fcs-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_out_octets(self):
+    """
+    Getter method for out_octets, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_octets (oc-yang:counter64)
+
+    YANG Description: The total number of octets transmitted out of the
+interface, including framing characters.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__out_octets
+      
+  def _set_out_octets(self, v, load=False):
+    """
+    Setter method for out_octets, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_octets (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_out_octets is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_out_octets() directly.
+
+    YANG Description: The total number of octets transmitted out of the
+interface, including framing characters.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """out_octets must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__out_octets = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_out_octets(self):
+    self.__out_octets = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-octets", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_out_pkts(self):
+    """
+    Getter method for out_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_pkts (oc-yang:counter64)
+
+    YANG Description: The total number of packets transmitted out of the
+interface, including all unicast, multicast, broadcast,
+and bad packets etc.
+    """
+    return self.__out_pkts
+      
+  def _set_out_pkts(self, v, load=False):
+    """
+    Setter method for out_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_pkts (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_out_pkts is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_out_pkts() directly.
+
+    YANG Description: The total number of packets transmitted out of the
+interface, including all unicast, multicast, broadcast,
+and bad packets etc.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """out_pkts must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__out_pkts = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_out_pkts(self):
+    self.__out_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_out_unicast_pkts(self):
+    """
+    Getter method for out_unicast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_unicast_pkts (oc-yang:counter64)
+
+    YANG Description: The total number of packets that higher-level protocols
+requested be transmitted, and that were not addressed
+to a multicast or broadcast address at this sub-layer,
+including those that were discarded or not sent.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__out_unicast_pkts
+      
+  def _set_out_unicast_pkts(self, v, load=False):
+    """
+    Setter method for out_unicast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_unicast_pkts (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_out_unicast_pkts is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_out_unicast_pkts() directly.
+
+    YANG Description: The total number of packets that higher-level protocols
+requested be transmitted, and that were not addressed
+to a multicast or broadcast address at this sub-layer,
+including those that were discarded or not sent.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """out_unicast_pkts must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__out_unicast_pkts = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_out_unicast_pkts(self):
+    self.__out_unicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-unicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_out_broadcast_pkts(self):
+    """
+    Getter method for out_broadcast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_broadcast_pkts (oc-yang:counter64)
+
+    YANG Description: The total number of packets that higher-level protocols
+requested be transmitted, and that were addressed to a
+broadcast address at this sub-layer, including those
+that were discarded or not sent.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__out_broadcast_pkts
+      
+  def _set_out_broadcast_pkts(self, v, load=False):
+    """
+    Setter method for out_broadcast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_broadcast_pkts (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_out_broadcast_pkts is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_out_broadcast_pkts() directly.
+
+    YANG Description: The total number of packets that higher-level protocols
+requested be transmitted, and that were addressed to a
+broadcast address at this sub-layer, including those
+that were discarded or not sent.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """out_broadcast_pkts must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__out_broadcast_pkts = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_out_broadcast_pkts(self):
+    self.__out_broadcast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-broadcast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_out_multicast_pkts(self):
+    """
+    Getter method for out_multicast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_multicast_pkts (oc-yang:counter64)
+
+    YANG Description: The total number of packets that higher-level protocols
+requested be transmitted, and that were addressed to a
+multicast address at this sub-layer, including those
+that were discarded or not sent.  For a MAC-layer
+protocol, this includes both Group and Functional
+addresses.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__out_multicast_pkts
+      
+  def _set_out_multicast_pkts(self, v, load=False):
+    """
+    Setter method for out_multicast_pkts, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_multicast_pkts (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_out_multicast_pkts is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_out_multicast_pkts() directly.
+
+    YANG Description: The total number of packets that higher-level protocols
+requested be transmitted, and that were addressed to a
+multicast address at this sub-layer, including those
+that were discarded or not sent.  For a MAC-layer
+protocol, this includes both Group and Functional
+addresses.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """out_multicast_pkts must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__out_multicast_pkts = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_out_multicast_pkts(self):
+    self.__out_multicast_pkts = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-multicast-pkts", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_out_discards(self):
+    """
+    Getter method for out_discards, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_discards (oc-yang:counter64)
+
+    YANG Description: The number of outbound packets that were chosen to be
+discarded even though no errors had been detected to
+prevent their being transmitted.  One possible reason
+for discarding such a packet could be to free up buffer
+space.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__out_discards
+      
+  def _set_out_discards(self, v, load=False):
+    """
+    Setter method for out_discards, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_discards (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_out_discards is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_out_discards() directly.
+
+    YANG Description: The number of outbound packets that were chosen to be
+discarded even though no errors had been detected to
+prevent their being transmitted.  One possible reason
+for discarding such a packet could be to free up buffer
+space.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """out_discards must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__out_discards = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_out_discards(self):
+    self.__out_discards = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-discards", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_out_errors(self):
+    """
+    Getter method for out_errors, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_errors (oc-yang:counter64)
+
+    YANG Description: For packet-oriented interfaces, the number of outbound
+packets that could not be transmitted because of errors.
+For character-oriented or fixed-length interfaces, the
+number of outbound transmission units that could not be
+transmitted because of errors.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    return self.__out_errors
+      
+  def _set_out_errors(self, v, load=False):
+    """
+    Setter method for out_errors, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/out_errors (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_out_errors is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_out_errors() directly.
+
+    YANG Description: For packet-oriented interfaces, the number of outbound
+packets that could not be transmitted because of errors.
+For character-oriented or fixed-length interfaces, the
+number of outbound transmission units that could not be
+transmitted because of errors.
+
+Discontinuities in the value of this counter can occur
+at re-initialization of the management system, and at
+other times as indicated by the value of
+'last-clear'.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """out_errors must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__out_errors = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_out_errors(self):
+    self.__out_errors = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="out-errors", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_carrier_transitions(self):
+    """
+    Getter method for carrier_transitions, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/carrier_transitions (oc-yang:counter64)
+
+    YANG Description: Number of times the interface state has transitioned
+between up and down since the time the device restarted
+or the last-clear time, whichever is most recent.
+    """
+    return self.__carrier_transitions
+      
+  def _set_carrier_transitions(self, v, load=False):
+    """
+    Setter method for carrier_transitions, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/carrier_transitions (oc-yang:counter64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_carrier_transitions is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_carrier_transitions() directly.
+
+    YANG Description: Number of times the interface state has transitioned
+between up and down since the time the device restarted
+or the last-clear time, whichever is most recent.
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """carrier_transitions must be of a type compatible with oc-yang:counter64""",
+          'defined-type': "oc-yang:counter64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)""",
+        })
+
+    self.__carrier_transitions = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_carrier_transitions(self):
+    self.__carrier_transitions = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="carrier-transitions", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-yang:counter64', is_config=False)
+
+
+  def _get_last_clear(self):
+    """
+    Getter method for last_clear, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/last_clear (oc-types:timeticks64)
+
+    YANG Description: Timestamp of the last time the interface counters were
+cleared.
+
+The value is the timestamp in nanoseconds relative to
+the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+    """
+    return self.__last_clear
+      
+  def _set_last_clear(self, v, load=False):
+    """
+    Setter method for last_clear, mapped from YANG variable /interfaces/interface/subinterfaces/subinterface/state/counters/last_clear (oc-types:timeticks64)
+    If this variable is read-only (config: false) in the
+    source YANG file, then _set_last_clear is considered as a private
+    method. Backends looking to populate this variable should
+    do so via calling thisObj._set_last_clear() directly.
+
+    YANG Description: Timestamp of the last time the interface counters were
+cleared.
+
+The value is the timestamp in nanoseconds relative to
+the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
+    """
+    if hasattr(v, "_utype"):
+      v = v._utype(v)
+    try:
+      t = YANGDynClass(v,base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False)
+    except (TypeError, ValueError):
+      raise ValueError({
+          'error-string': """last_clear must be of a type compatible with oc-types:timeticks64""",
+          'defined-type': "oc-types:timeticks64",
+          'generated-type': """YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False)""",
+        })
+
+    self.__last_clear = t
+    if hasattr(self, '_set'):
+      self._set()
+
+  def _unset_last_clear(self):
+    self.__last_clear = YANGDynClass(base=RestrictedClassType(base_type=long, restriction_dict={'range':  ['0..18446744073709551615']}, int_size=64), is_leaf=True, yang_name="last-clear", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, namespace='http://openconfig.net/yang/interfaces', defining_module='openconfig-interfaces', yang_type='oc-types:timeticks64', is_config=False)
+
+  in_octets = __builtin__.property(_get_in_octets)
+  in_pkts = __builtin__.property(_get_in_pkts)
+  in_unicast_pkts = __builtin__.property(_get_in_unicast_pkts)
+  in_broadcast_pkts = __builtin__.property(_get_in_broadcast_pkts)
+  in_multicast_pkts = __builtin__.property(_get_in_multicast_pkts)
+  in_discards = __builtin__.property(_get_in_discards)
+  in_errors = __builtin__.property(_get_in_errors)
+  in_unknown_protos = __builtin__.property(_get_in_unknown_protos)
+  in_fcs_errors = __builtin__.property(_get_in_fcs_errors)
+  out_octets = __builtin__.property(_get_out_octets)
+  out_pkts = __builtin__.property(_get_out_pkts)
+  out_unicast_pkts = __builtin__.property(_get_out_unicast_pkts)
+  out_broadcast_pkts = __builtin__.property(_get_out_broadcast_pkts)
+  out_multicast_pkts = __builtin__.property(_get_out_multicast_pkts)
+  out_discards = __builtin__.property(_get_out_discards)
+  out_errors = __builtin__.property(_get_out_errors)
+  carrier_transitions = __builtin__.property(_get_carrier_transitions)
+  last_clear = __builtin__.property(_get_last_clear)
+
+
+  _pyangbind_elements = OrderedDict([('in_octets', in_octets), ('in_pkts', in_pkts), ('in_unicast_pkts', in_unicast_pkts), ('in_broadcast_pkts', in_broadcast_pkts), ('in_multicast_pkts', in_multicast_pkts), ('in_discards', in_discards), ('in_errors', in_errors), ('in_unknown_protos', in_unknown_protos), ('in_fcs_errors', in_fcs_errors), ('out_octets', out_octets), ('out_pkts', out_pkts), ('out_unicast_pkts', out_unicast_pkts), ('out_broadcast_pkts', out_broadcast_pkts), ('out_multicast_pkts', out_multicast_pkts), ('out_discards', out_discards), ('out_errors', out_errors), ('carrier_transitions', carrier_transitions), ('last_clear', last_clear), ])
+
+
diff --git a/hackfest/netconf-oc/platform.xml b/hackfest/netconf-oc/platform.xml
new file mode 100644
index 0000000000000000000000000000000000000000..434dc4c9bad3ecea4da9c8ad776c946eb5045f3a
--- /dev/null
+++ b/hackfest/netconf-oc/platform.xml
@@ -0,0 +1,448 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+  <components xmlns="http://openconfig.net/yang/platform">
+    <component>
+      <!-- # keys: name-->
+      <!-- # entries: 0.. -->
+      <name>
+        <!-- type: leafref -->
+      </name>
+      <config>
+        <name>
+          <!-- type: string -->
+        </name>
+      </config>
+      <state>
+        <name>
+          <!-- type: string -->
+        </name>
+        <type>
+          <!-- type: union -->
+        </type>
+        <id>
+          <!-- type: string -->
+        </id>
+        <location>
+          <!-- type: string -->
+        </location>
+        <description>
+          <!-- type: string -->
+        </description>
+        <mfg-name>
+          <!-- type: string -->
+        </mfg-name>
+        <mfg-date>
+          <!-- type: oc-yang:date -->
+        </mfg-date>
+        <hardware-version>
+          <!-- type: string -->
+        </hardware-version>
+        <firmware-version>
+          <!-- type: string -->
+        </firmware-version>
+        <software-version>
+          <!-- type: string -->
+        </software-version>
+        <serial-no>
+          <!-- type: string -->
+        </serial-no>
+        <part-no>
+          <!-- type: string -->
+        </part-no>
+        <clei-code>
+          <!-- type: string -->
+        </clei-code>
+        <removable>
+          <!-- type: boolean -->
+        </removable>
+        <oper-status>
+          <!-- type: identityref -->
+        </oper-status>
+        <parent>
+          <!-- type: leafref -->
+        </parent>
+        <redundant-role>
+          <!-- type: oc-platform-types:component-redundant-role -->
+        </redundant-role>
+        <last-switchover-reason>
+          <trigger>
+            <!-- type: component-redundant-role-switchover-reason-trigger -->
+          </trigger>
+          <details>
+            <!-- type: string -->
+          </details>
+        </last-switchover-reason>
+        <last-switchover-time>
+          <!-- type: oc-types:timeticks64 -->
+        </last-switchover-time>
+        <last-reboot-reason>
+          <!-- type: identityref -->
+        </last-reboot-reason>
+        <last-reboot-time>
+          <!-- type: oc-types:timeticks64 -->
+        </last-reboot-time>
+        <switchover-ready>
+          <!-- type: boolean -->
+        </switchover-ready>
+        <temperature>
+          <instant>
+            <!-- type: decimal64 -->
+          </instant>
+          <avg>
+            <!-- type: decimal64 -->
+          </avg>
+          <min>
+            <!-- type: decimal64 -->
+          </min>
+          <max>
+            <!-- type: decimal64 -->
+          </max>
+          <interval>
+            <!-- type: oc-types:stat-interval -->
+          </interval>
+          <min-time>
+            <!-- type: oc-types:timeticks64 -->
+          </min-time>
+          <max-time>
+            <!-- type: oc-types:timeticks64 -->
+          </max-time>
+          <alarm-status>
+            <!-- type: boolean -->
+          </alarm-status>
+          <alarm-threshold>
+            <!-- type: uint32 -->
+          </alarm-threshold>
+          <alarm-severity>
+            <!-- type: identityref -->
+          </alarm-severity>
+        </temperature>
+        <memory>
+          <available>
+            <!-- type: uint64 -->
+          </available>
+          <utilized>
+            <!-- type: uint64 -->
+          </utilized>
+        </memory>
+        <allocated-power>
+          <!-- type: uint32 -->
+        </allocated-power>
+        <used-power>
+          <!-- type: uint32 -->
+        </used-power>
+        <pcie>
+          <fatal-errors>
+            <total-errors>
+              <!-- type: oc-yang:counter64 -->
+            </total-errors>
+            <undefined-errors>
+              <!-- type: oc-yang:counter64 -->
+            </undefined-errors>
+            <data-link-errors>
+              <!-- type: oc-yang:counter64 -->
+            </data-link-errors>
+            <surprise-down-errors>
+              <!-- type: oc-yang:counter64 -->
+            </surprise-down-errors>
+            <poisoned-tlp-errors>
+              <!-- type: oc-yang:counter64 -->
+            </poisoned-tlp-errors>
+            <flow-control-protocol-errors>
+              <!-- type: oc-yang:counter64 -->
+            </flow-control-protocol-errors>
+            <completion-timeout-errors>
+              <!-- type: oc-yang:counter64 -->
+            </completion-timeout-errors>
+            <completion-abort-errors>
+              <!-- type: oc-yang:counter64 -->
+            </completion-abort-errors>
+            <unexpected-completion-errors>
+              <!-- type: oc-yang:counter64 -->
+            </unexpected-completion-errors>
+            <receiver-overflow-errors>
+              <!-- type: oc-yang:counter64 -->
+            </receiver-overflow-errors>
+            <malformed-tlp-errors>
+              <!-- type: oc-yang:counter64 -->
+            </malformed-tlp-errors>
+            <ecrc-errors>
+              <!-- type: oc-yang:counter64 -->
+            </ecrc-errors>
+            <unsupported-request-errors>
+              <!-- type: oc-yang:counter64 -->
+            </unsupported-request-errors>
+            <acs-violation-errors>
+              <!-- type: oc-yang:counter64 -->
+            </acs-violation-errors>
+            <internal-errors>
+              <!-- type: oc-yang:counter64 -->
+            </internal-errors>
+            <blocked-tlp-errors>
+              <!-- type: oc-yang:counter64 -->
+            </blocked-tlp-errors>
+            <atomic-op-blocked-errors>
+              <!-- type: oc-yang:counter64 -->
+            </atomic-op-blocked-errors>
+            <tlp-prefix-blocked-errors>
+              <!-- type: oc-yang:counter64 -->
+            </tlp-prefix-blocked-errors>
+          </fatal-errors>
+          <non-fatal-errors>
+            <total-errors>
+              <!-- type: oc-yang:counter64 -->
+            </total-errors>
+            <undefined-errors>
+              <!-- type: oc-yang:counter64 -->
+            </undefined-errors>
+            <data-link-errors>
+              <!-- type: oc-yang:counter64 -->
+            </data-link-errors>
+            <surprise-down-errors>
+              <!-- type: oc-yang:counter64 -->
+            </surprise-down-errors>
+            <poisoned-tlp-errors>
+              <!-- type: oc-yang:counter64 -->
+            </poisoned-tlp-errors>
+            <flow-control-protocol-errors>
+              <!-- type: oc-yang:counter64 -->
+            </flow-control-protocol-errors>
+            <completion-timeout-errors>
+              <!-- type: oc-yang:counter64 -->
+            </completion-timeout-errors>
+            <completion-abort-errors>
+              <!-- type: oc-yang:counter64 -->
+            </completion-abort-errors>
+            <unexpected-completion-errors>
+              <!-- type: oc-yang:counter64 -->
+            </unexpected-completion-errors>
+            <receiver-overflow-errors>
+              <!-- type: oc-yang:counter64 -->
+            </receiver-overflow-errors>
+            <malformed-tlp-errors>
+              <!-- type: oc-yang:counter64 -->
+            </malformed-tlp-errors>
+            <ecrc-errors>
+              <!-- type: oc-yang:counter64 -->
+            </ecrc-errors>
+            <unsupported-request-errors>
+              <!-- type: oc-yang:counter64 -->
+            </unsupported-request-errors>
+            <acs-violation-errors>
+              <!-- type: oc-yang:counter64 -->
+            </acs-violation-errors>
+            <internal-errors>
+              <!-- type: oc-yang:counter64 -->
+            </internal-errors>
+            <blocked-tlp-errors>
+              <!-- type: oc-yang:counter64 -->
+            </blocked-tlp-errors>
+            <atomic-op-blocked-errors>
+              <!-- type: oc-yang:counter64 -->
+            </atomic-op-blocked-errors>
+            <tlp-prefix-blocked-errors>
+              <!-- type: oc-yang:counter64 -->
+            </tlp-prefix-blocked-errors>
+          </non-fatal-errors>
+          <correctable-errors>
+            <total-errors>
+              <!-- type: oc-yang:counter64 -->
+            </total-errors>
+            <receiver-errors>
+              <!-- type: oc-yang:counter64 -->
+            </receiver-errors>
+            <bad-tlp-errors>
+              <!-- type: oc-yang:counter64 -->
+            </bad-tlp-errors>
+            <bad-dllp-errors>
+              <!-- type: oc-yang:counter64 -->
+            </bad-dllp-errors>
+            <relay-rollover-errors>
+              <!-- type: oc-yang:counter64 -->
+            </relay-rollover-errors>
+            <replay-timeout-errors>
+              <!-- type: oc-yang:counter64 -->
+            </replay-timeout-errors>
+            <advisory-non-fatal-errors>
+              <!-- type: oc-yang:counter64 -->
+            </advisory-non-fatal-errors>
+            <internal-errors>
+              <!-- type: oc-yang:counter64 -->
+            </internal-errors>
+            <hdr-log-overflow-errors>
+              <!-- type: oc-yang:counter64 -->
+            </hdr-log-overflow-errors>
+          </correctable-errors>
+        </pcie>
+      </state>
+      <properties>
+        <property>
+          <!-- # keys: name-->
+          <!-- # entries: 0.. -->
+          <name>
+            <!-- type: leafref -->
+          </name>
+          <config>
+            <name>
+              <!-- type: string -->
+            </name>
+            <value>
+              <!-- type: union -->
+            </value>
+          </config>
+          <state>
+            <name>
+              <!-- type: string -->
+            </name>
+            <value>
+              <!-- type: union -->
+            </value>
+            <configurable>
+              <!-- type: boolean -->
+            </configurable>
+          </state>
+        </property>
+      </properties>
+      <subcomponents>
+        <subcomponent>
+          <!-- # keys: name-->
+          <!-- # entries: 0.. -->
+          <name>
+            <!-- type: leafref -->
+          </name>
+          <config>
+            <name>
+              <!-- type: leafref -->
+            </name>
+          </config>
+          <state>
+            <name>
+              <!-- type: leafref -->
+            </name>
+          </state>
+        </subcomponent>
+      </subcomponents>
+      <chassis>
+        <config/>
+        <state/>
+        <utilization>
+          <resources>
+            <resource>
+              <!-- # keys: name-->
+              <!-- # entries: 0.. -->
+              <name>
+                <!-- type: leafref -->
+              </name>
+              <config>
+                <name>
+                  <!-- type: string -->
+                </name>
+              </config>
+              <state>
+                <name>
+                  <!-- type: string -->
+                </name>
+                <used>
+                  <!-- type: uint64 -->
+                </used>
+                <committed>
+                  <!-- type: uint64 -->
+                </committed>
+                <free>
+                  <!-- type: uint64 -->
+                </free>
+                <max-limit>
+                  <!-- type: uint64 -->
+                </max-limit>
+                <high-watermark>
+                  <!-- type: uint64 -->
+                </high-watermark>
+                <last-high-watermark>
+                  <!-- type: oc-types:timeticks64 -->
+                </last-high-watermark>
+              </state>
+            </resource>
+          </resources>
+        </utilization>
+      </chassis>
+      <port>
+        <config/>
+        <state/>
+      </port>
+      <power-supply>
+        <config/>
+        <state/>
+      </power-supply>
+      <fan>
+        <config/>
+        <state/>
+      </fan>
+      <fabric>
+        <config/>
+        <state/>
+      </fabric>
+      <storage>
+        <config/>
+        <state/>
+      </storage>
+      <cpu>
+        <config/>
+        <state/>
+      </cpu>
+      <integrated-circuit>
+        <config/>
+        <state/>
+        <utilization>
+          <resources>
+            <resource>
+              <!-- # keys: name-->
+              <!-- # entries: 0.. -->
+              <name>
+                <!-- type: leafref -->
+              </name>
+              <config>
+                <name>
+                  <!-- type: string -->
+                </name>
+              </config>
+              <state>
+                <name>
+                  <!-- type: string -->
+                </name>
+                <used>
+                  <!-- type: uint64 -->
+                </used>
+                <committed>
+                  <!-- type: uint64 -->
+                </committed>
+                <free>
+                  <!-- type: uint64 -->
+                </free>
+                <max-limit>
+                  <!-- type: uint64 -->
+                </max-limit>
+                <high-watermark>
+                  <!-- type: uint64 -->
+                </high-watermark>
+                <last-high-watermark>
+                  <!-- type: oc-types:timeticks64 -->
+                </last-high-watermark>
+              </state>
+            </resource>
+          </resources>
+        </utilization>
+      </integrated-circuit>
+      <backplane>
+        <config/>
+        <state/>
+      </backplane>
+      <software-module>
+        <config/>
+        <state/>
+      </software-module>
+      <controller-card>
+        <config/>
+        <state/>
+      </controller-card>
+    </component>
+  </components>
+</data>
diff --git a/hackfest/netconf-oc/server-key b/hackfest/netconf-oc/server-key
new file mode 100644
index 0000000000000000000000000000000000000000..b1da1bf244778f6d884a5e571de1cc77d144c363
--- /dev/null
+++ b/hackfest/netconf-oc/server-key
@@ -0,0 +1,39 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIG4gIBAAKCAYEAueh9Dsz3havrm3NltIudzPiDAWE1wxkl1iD7x2iAJNRmJaeL
+WfMLgAVtC7DujsOpVjLbsPdvrKCvZf3PeJE9jzPYJNhAXhMErAaWm3bRfxK0L6et
+/kHnFxTGkNHASMrAySRrJloP6zys8n2e8IQ3vq37SrmkcqnizhDpiSeBjYXtIQpD
+4eutZ26pyQktAi/X413jQN0ociKane2JTbBvqdYP7nGVFraEhAL34H5u461lTltw
+pAog1N5QW7b9Yc1zhFJFCcXeq9luD/y6Z5KzkbBYwxADJojdffrTTHbgz4r+uJkw
+9m1K8sqBzIeBY95nmWbMR1iNzIQ97LW+ePebGPPfCO2+YLOkgZGtRs/zErO+8vl7
+cRsEh1MhQ/2qqUckZZEPKxCT32Pcogx8RPAlfUDhm0e7yBnKZktlzddT01cpo0yi
+tDzCqTljklRL36tYFDwZBHgB1Yao28V/q0nCKokxhnPDQSjLAIVd8+f6pOctIitq
+mO9g03JAVYrvAC4zAgMBAAECggGAbSxANG7ddJwvMgykT1AmDPZrSGYjwjyEYajg
+8otFpVst2TL4vIvj1vxYuyLeFOyGBt668MN9yyxZlFVmfvEb63qQlaKAuj4E4ljE
+HOu7vxnmwo1/ue5NnNpQeT8T4ite50ABxHXjH0t0bLqkma2rZsiY55r5HXTygfyg
+iDCw/cEGLf7vOj7CiBkOj8ZZrg0WhKjgCXlWhSAZGGEj3oGcMWpJ1MbSvJHWZAey
+NR1KVV3APjGohkyEVz1uh02AouyYxu0Oyu27i3NO3NSa0BLz6ct3U2wJFVt7zNIz
+XcOr+YDcC0gz6yEz1O1e7+p1dOTL9+azA04Dq0IiSu6k94Rrmnvr42sMmDLi/JBN
+ZP82nCOoPO31pdVoHqqG/s7+mjHGqTSC+l4wImZD5YGHRnGbOBarH75MG/PIDl6S
+VSzVCZKPEnLkZ3lKC1R3WO5K16WCgqTGLisu4VjXALhHIMmJDNk3Kkv+EvLdXp5Q
+hBbDlJCtgs7w8V88ci17ss9bmqWRAoHBAOl6T+gvTO2zbJ2LGXVJKGYFDR637GKJ
+tPRyTPK8IJR6PN/VgQdJ70P2a3XEUIMSwH+6rBg+zNZnu7TkwDyyxImyjwtnhGjf
+xAGfkj5inmsToBq5INxKBamito3QUyzZhYGfDO61r+e0agDpGYCll9EuhBeQ+00x
+2x/vA0Btr4WzFnh3xdlozAcPvws3dXhybRPdgPbn90M2UW2ImdIV2GDJNN+vASbl
+M9jhI1tm3KjCCfDzgKmvs48IpoRAwZJihQKBwQDL13Qxgk4L5uemi0fBR1Jwd0IE
+gZ6E2rZWbzT5Fe9iSsN+1LHJqvs31We8FhN+sYujG1ZUUSt5bpFggXOw+LwDVOf2
+Bzer681YqkRKtu2wkEzRX0R1esMowba0s1Naonu1lohKKAcZJ4YHDBKjxYHH4+NR
+mnFjjxtcnQ/mMVb+ZPjOaXvzCt7NfShlfztkClrDca3WgOh/Zed7+M+0S1rrOEpt
+Wyph/Y76AzH/uzdEIPkToNqRIACXWOR2NOpn11cCgcAUb0gfIkSxaUrQXyRTR5vp
+kfecAK0H0tWrr3VcqWqQlEJPtPgeEzKF2EN/gzcowbNneocleBmlil67bmoE5gCd
+rKsobF8CbtNQ8Q5zt132MTmKHTnrDe+A8WTY9KrS+hbdSXZwTiafOQMuITjCMbwf
+6tpU1bOpBfwPx3OZaAA8y3fkA1elt65jz9UAvlHhwOIbIv/unE7f6xklZRdRc+gE
+UJf4G/EV3mmzScE2dsJJYvJLzIQuVdp5YmBwotpOXaECgcAKJI1ejUpO401xhwqp
+/l+Gwxhg2wZFPBDImj37ivDfZjL2E6VJEJ3xeEfyHvMXYcQ9+HVCOsu7/hlzwN09
+2BKa49Wq80782f3cxJQjV5jaKUP5QxFH+zTMyV7K/QVPxDf9oCDl97nqsYHExgAD
+cCd2B8ve2p17w7or0JDi9l+KxwFuW+dT/514ghrJehw9bRp5ESYCP2XSOQLcs1O6
+d+ltPN7PNDMWryQ3IoORYwJr/GwIYv+dKwd8gGrVyupDAn8CgcBJ7YIeLbV5nQ+g
+Y2Ht748J3157Emckyxv5vE6QQqBzAN+WOWRjSqExbLnnTL9UsrMbYn0STxYRleti
+eZmCSXu5msE1ZkwoGNRnyEAtoN0NPI92pB+rKZw2ERSjgtV9rPnmE4tvuz/dosxb
+AjGCxal0bnwrnltq1xFqSWrjbvOfbf7bK68I6+T76ktqsGUhz3mdjzFp6cUducm/
+Ty6M1Y33OKW1ymOGnfaaTOuXWC6yLFjdB+aQg5wjNOIwuoHe750=
+-----END RSA PRIVATE KEY-----
diff --git a/hackfest/netconf-oc/server-key.pub b/hackfest/netconf-oc/server-key.pub
new file mode 100644
index 0000000000000000000000000000000000000000..56d420638839114e7c8f1261fde55bef641357c4
--- /dev/null
+++ b/hackfest/netconf-oc/server-key.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC56H0OzPeFq+ubc2W0i53M+IMBYTXDGSXWIPvHaIAk1GYlp4tZ8wuABW0LsO6Ow6lWMtuw92+soK9l/c94kT2PM9gk2EBeEwSsBpabdtF/ErQvp63+QecXFMaQ0cBIysDJJGsmWg/rPKzyfZ7whDe+rftKuaRyqeLOEOmJJ4GNhe0hCkPh661nbqnJCS0CL9fjXeNA3ShyIpqd7YlNsG+p1g/ucZUWtoSEAvfgfm7jrWVOW3CkCiDU3lBbtv1hzXOEUkUJxd6r2W4P/LpnkrORsFjDEAMmiN19+tNMduDPiv64mTD2bUryyoHMh4Fj3meZZsxHWI3MhD3stb5495sY898I7b5gs6SBka1Gz/MSs77y+XtxGwSHUyFD/aqpRyRlkQ8rEJPfY9yiDHxE8CV9QOGbR7vIGcpmS2XN11PTVymjTKK0PMKpOWOSVEvfq1gUPBkEeAHVhqjbxX+rScIqiTGGc8NBKMsAhV3z5/qk5y0iK2qY72DTckBViu8ALjM= chopps@tops
diff --git a/hackfest/netconf-oc/server_openconfig.py b/hackfest/netconf-oc/server_openconfig.py
new file mode 100644
index 0000000000000000000000000000000000000000..08a68d42f8aab89349793bfd182f2360ef389bd9
--- /dev/null
+++ b/hackfest/netconf-oc/server_openconfig.py
@@ -0,0 +1,78 @@
+import logging, os, sys, time
+from pyangbind.lib.serialise import pybindIETFXMLEncoder, pybindIETFXMLDecoder
+from lxml import etree
+from netconf import nsmap_add, NSMAP, server, util
+from device_definition import get_device_definition
+
+logging.basicConfig(level=logging.DEBUG)
+
+#nsmap_add("topology", "urn:topology")
+#nsmap_add("connection", "urn:connection")
+
+class MyServer(server.NetconfMethods):
+
+    def __init__(self, username, password, port):
+        host_key_value = os.path.join(os.path.abspath(os.path.dirname(__file__)), "server-key")
+        auth = server.SSHUserPassController(username=username, password=password)
+        auth.check_auth_none(username)
+        self.server = server.NetconfSSHServer(server_ctl=auth, server_methods=self, host_key=host_key_value, port=port, debug=True)
+
+        self.data = get_device_definition()
+
+    def nc_append_capabilities(self, capabilities): 
+        logging.debug("--GET capabilities--")
+        util.subelm(capabilities, "capability").text = "urn:ietf:params:netconf:capability:xpath:1.0"
+        #util.subelm(capabilities, "capability").text = NSMAP["topology"]
+        #util.subelm(capabilities, "capability").text = NSMAP["connection"]
+
+    def rpc_get(self, session, rpc, filter_or_none):
+        #logging.debug("--GET--")
+        #logging.debug(session)
+        #logging.debug(etree.tostring(rpc))
+        return util.filter_results(rpc, self.data, None)
+
+    def rpc_get_config(self, session, rpc, source_elm, filter_or_none):
+        #logging.debug("--GET CONFIG--")
+        #logging.debug(session)
+        #logging.debug(etree.tostring(rpc))
+        return util.filter_results(rpc, self.data, None)
+
+    def rpc_edit_config(self, session, rpc, target, default_operation, new_config):
+        logging.debug("--EDIT CONFIG--")
+        logging.debug(session)
+        logging.debug(etree.tostring(rpc))
+        logging.debug(etree.tostring(target))
+        logging.debug(etree.tostring(default_operation))
+        logging.debug(etree.tostring(new_config))
+
+        #data_list = new_config.findall(".//xmlns:connection", namespaces={'xmlns': 'urn:connection'})
+        #for connect in data_list:
+        #    logging.debug("connect: " )
+        #    logging.debug(etree.tostring(connect) )
+        #    logging.debug("CURRENT CONNECTION")
+        #    logging.debug(etree.tostring(self.data[1]) )
+        #    self.data[1].append(connect)
+        #    break  
+        return util.filter_results(rpc, self.data, None)
+
+    def close(self):
+        self.server.close()
+
+def main(*margs):
+    port = sys.argv[1]
+    s = MyServer("admin", "admin", int(port))
+    
+    if sys.stdout.isatty():
+        logging.debug("^C to quit server")
+
+    try:
+        while True:
+            time.sleep(1)
+    
+    except Exception:
+        logging.debug("quitting server")
+
+    s.close()
+
+if __name__ == "__main__":
+    main()
diff --git a/hackfest/netconf-oc/tfs-device-descriptor.json b/hackfest/netconf-oc/tfs-device-descriptor.json
new file mode 100644
index 0000000000000000000000000000000000000000..03736314dee9ea0a8aae27627361dcdd24457fca
--- /dev/null
+++ b/hackfest/netconf-oc/tfs-device-descriptor.json
@@ -0,0 +1,77 @@
+{
+    "contexts": [
+        {
+            "context_id": {"context_uuid": {"uuid": "admin"}},
+            "topology_ids": [],
+            "service_ids": []
+        }
+    ],
+    "topologies": [
+        {
+            "topology_id": {"topology_uuid": {"uuid": "admin"}, "context_id": {"context_uuid": {"uuid": "admin"}}},
+            "device_ids": [
+                {"device_uuid": {"uuid": "R1"}},
+                {"device_uuid": {"uuid": "R2"}},
+                {"device_uuid": {"uuid": "R3"}}
+            ],
+            "link_ids": [
+                {"link_uuid":{"uuid":"R1-1/1==R2-1/2"}},
+                {"link_uuid":{"uuid":"R2-1/1==R3-1/2"}}
+            ]
+        }
+    ],
+    "devices": [
+        {
+            "device_id": {"device_uuid": {"uuid": "R1"}},
+            "device_type": "packet-router",
+            "device_config": {"config_rules": [
+                {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.15"}},
+                {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8301"}},
+                {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": "{\"username\": \"admin\", \"password\": \"admin\", \"force_running\": true, \"hostkey_verify\": false, \"look_for_keys\": false, \"allow_agent\": true, \"delete_rule\": false, \"device_params\"  : {\"name\": \"default\"}, \"manager_params\" : {\"timeout\": 15}}"}}
+            ]},
+            "device_operational_status": 1,
+            "device_drivers": [1],
+            "device_endpoints": []
+        },
+        {
+            "device_id": {"device_uuid": {"uuid": "R2"}},
+            "device_type": "packet-router",
+            "device_config": {"config_rules": [
+                {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.15"}},
+                {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8302"}},
+                {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": "{\"username\": \"admin\", \"password\": \"admin\", \"force_running\": true, \"hostkey_verify\": false, \"look_for_keys\": false, \"allow_agent\": true, \"delete_rule\": false, \"device_params\"  : {\"name\": \"default\"}, \"manager_params\" : {\"timeout\": 15}}"}}
+            ]},
+            "device_operational_status": 1,
+            "device_drivers": [1],
+            "device_endpoints": []
+        },
+        {
+            "device_id": {"device_uuid": {"uuid": "R3"}},
+            "device_type": "packet-router",
+            "device_config": {"config_rules": [
+                {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.15"}},
+                {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8303"}},
+                {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": "{\"username\": \"admin\", \"password\": \"admin\", \"force_running\": true, \"hostkey_verify\": false, \"look_for_keys\": false, \"allow_agent\": true, \"delete_rule\": false, \"device_params\"  : {\"name\": \"default\"}, \"manager_params\" : {\"timeout\": 15}}"}}
+            ]},
+            "device_operational_status": 1,
+            "device_drivers": [1],
+            "device_endpoints": []
+        }
+    ],
+    "links": [
+        {
+            "link_id":{"link_uuid":{"uuid":"R1-1/1==R2-1/2"}},
+            "link_endpoint_ids":[
+                {"device_id":{"device_uuid":{"uuid":"R1"}},"endpoint_uuid":{"uuid":"1/1"}},
+                {"device_id":{"device_uuid":{"uuid":"R2"}},"endpoint_uuid":{"uuid":"1/2"}}
+            ]
+        },
+        {
+            "link_id":{"link_uuid":{"uuid":"R2-1/1==R3-1/2"}},
+            "link_endpoint_ids":[
+                {"device_id":{"device_uuid":{"uuid":"R2"}},"endpoint_uuid":{"uuid":"1/1"}},
+                {"device_id":{"device_uuid":{"uuid":"R3"}},"endpoint_uuid":{"uuid":"1/2"}}
+            ]
+        }
+    ]
+}
diff --git a/hackfest/netconf-oc/tfs-service-descriptor.json b/hackfest/netconf-oc/tfs-service-descriptor.json
new file mode 100644
index 0000000000000000000000000000000000000000..a25d0171dbfdbf174a877151201752c76759514a
--- /dev/null
+++ b/hackfest/netconf-oc/tfs-service-descriptor.json
@@ -0,0 +1,27 @@
+{
+    "contexts": [
+        {
+            "context_id": {"context_uuid": {"uuid": "admin"}},
+            "topology_ids": [],
+            "service_ids": [
+                {"context_id":{"context_uuid":{"uuid":"admin"}},"service_uuid":{"uuid":"hackfest-svc"}}
+            ]
+        }
+    ],
+    "services": [
+        {
+            "service_id":{"context_id":{"context_uuid":{"uuid":"admin"}},"service_uuid":{"uuid":"hackfest-svc"}},
+            "service_type": 1,
+            "service_status":{"service_status": 1},
+            "service_endpoint_ids":[
+                {"device_id":{"device_uuid":{"uuid":"R1"}},"endpoint_uuid":{"uuid":"1/3"}},
+                {"device_id":{"device_uuid":{"uuid":"R2"}},"endpoint_uuid":{"uuid":"1/3"}}
+            ],
+            "service_constraints":[
+                {"custom": {"constraint_type": "bandwidth[gbps]", "constraint_value": "10.0"}},
+                {"custom": {"constraint_type": "latency[ms]", "constraint_value": "20.0"}}
+            ],
+            "service_config":{"config_rules":[]}
+        }
+    ]
+}
diff --git a/hackfest/netconf-oc/yang_models.txt b/hackfest/netconf-oc/yang_models.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6fbde735fe439f6d42b4d368e1973aac5b8a540c
--- /dev/null
+++ b/hackfest/netconf-oc/yang_models.txt
@@ -0,0 +1,171 @@
+git_openconfig/release/models/devices-manifest/openconfig-terminal-device-property-types.yang
+git_openconfig/release/models/devices-manifest/openconfig-terminal-device-properties.yang
+git_openconfig/release/models/vlan/openconfig-vlan.yang
+git_openconfig/release/models/vlan/openconfig-vlan-types.yang
+git_openconfig/release/models/p4rt/openconfig-p4rt.yang
+git_openconfig/release/models/stp/openconfig-spanning-tree-types.yang
+git_openconfig/release/models/stp/openconfig-spanning-tree.yang
+git_openconfig/release/models/rib/openconfig-rib-bgp-shared-attributes.yang
+git_openconfig/release/models/rib/openconfig-rib-bgp-table-attributes.yang
+git_openconfig/release/models/rib/openconfig-rib-bgp-attributes.yang
+git_openconfig/release/models/rib/openconfig-rib-bgp.yang
+git_openconfig/release/models/rib/openconfig-rib-bgp-ext.yang
+git_openconfig/release/models/rib/openconfig-rib-bgp-tables.yang
+git_openconfig/release/models/rib/openconfig-rib-bgp-types.yang
+git_openconfig/release/models/segment-routing/openconfig-segment-routing-types.yang
+git_openconfig/release/models/segment-routing/openconfig-srte-policy.yang
+git_openconfig/release/models/segment-routing/openconfig-segment-routing.yang
+git_openconfig/release/models/segment-routing/openconfig-rsvp-sr-ext.yang
+git_openconfig/release/models/isis/openconfig-isis-lsp.yang
+git_openconfig/release/models/isis/openconfig-isis-policy.yang
+git_openconfig/release/models/isis/openconfig-isis-types.yang
+git_openconfig/release/models/isis/openconfig-isis-lsdb-types.yang
+git_openconfig/release/models/isis/openconfig-isis.yang
+git_openconfig/release/models/isis/openconfig-isis-routing.yang
+git_openconfig/release/models/pcep/openconfig-pcep.yang
+git_openconfig/release/models/lacp/openconfig-lacp.yang
+git_openconfig/release/models/keychain/openconfig-keychain.yang
+git_openconfig/release/models/keychain/openconfig-keychain-types.yang
+git_openconfig/release/models/openconfig-extensions.yang
+git_openconfig/release/models/telemetry/openconfig-telemetry.yang
+git_openconfig/release/models/telemetry/openconfig-telemetry-types.yang
+git_openconfig/release/models/policy/openconfig-policy-types.yang
+git_openconfig/release/models/policy/openconfig-routing-policy.yang
+git_openconfig/release/models/bfd/openconfig-bfd.yang
+git_openconfig/release/models/types/openconfig-types.yang
+git_openconfig/release/models/types/openconfig-yang-types.yang
+git_openconfig/release/models/types/openconfig-inet-types.yang
+git_openconfig/release/models/ospf/openconfig-ospfv2-common.yang
+git_openconfig/release/models/ospf/openconfig-ospfv2-area.yang
+git_openconfig/release/models/ospf/openconfig-ospfv2-area-interface.yang
+git_openconfig/release/models/ospf/openconfig-ospfv2.yang
+git_openconfig/release/models/ospf/openconfig-ospf-types.yang
+git_openconfig/release/models/ospf/openconfig-ospfv2-global.yang
+git_openconfig/release/models/ospf/openconfig-ospf-policy.yang
+git_openconfig/release/models/ospf/openconfig-ospfv2-lsdb.yang
+git_openconfig/release/models/gribi/openconfig-gribi.yang
+git_openconfig/release/models/platform/openconfig-platform-software.yang
+git_openconfig/release/models/platform/openconfig-platform-integrated-circuit.yang
+git_openconfig/release/models/platform/openconfig-platform-linecard.yang
+git_openconfig/release/models/platform/openconfig-platform-controller-card.yang
+git_openconfig/release/models/platform/openconfig-platform-port.yang
+git_openconfig/release/models/platform/openconfig-platform-psu.yang
+git_openconfig/release/models/platform/openconfig-platform-transceiver.yang
+git_openconfig/release/models/platform/openconfig-platform-fabric.yang
+git_openconfig/release/models/platform/openconfig-platform.yang
+git_openconfig/release/models/platform/openconfig-platform-pipeline-counters.yang
+git_openconfig/release/models/platform/openconfig-platform-ext.yang
+git_openconfig/release/models/platform/openconfig-platform-types.yang
+git_openconfig/release/models/platform/openconfig-platform-common.yang
+git_openconfig/release/models/platform/openconfig-platform-fan.yang
+git_openconfig/release/models/platform/openconfig-platform-cpu.yang
+git_openconfig/release/models/policy-forwarding/openconfig-pf-path-groups.yang
+git_openconfig/release/models/policy-forwarding/openconfig-policy-forwarding.yang
+git_openconfig/release/models/policy-forwarding/openconfig-pf-srte.yang
+git_openconfig/release/models/policy-forwarding/openconfig-pf-forwarding-policies.yang
+git_openconfig/release/models/policy-forwarding/openconfig-pf-interfaces.yang
+git_openconfig/release/models/relay-agent/openconfig-relay-agent.yang
+git_openconfig/release/models/optical-transport/openconfig-transport-line-protection.yang
+git_openconfig/release/models/optical-transport/openconfig-optical-attenuator.yang
+git_openconfig/release/models/optical-transport/openconfig-transport-types.yang
+git_openconfig/release/models/optical-transport/openconfig-wavelength-router.yang
+git_openconfig/release/models/optical-transport/openconfig-terminal-device.yang
+git_openconfig/release/models/optical-transport/openconfig-channel-monitor.yang
+git_openconfig/release/models/optical-transport/openconfig-optical-amplifier.yang
+git_openconfig/release/models/optical-transport/openconfig-transport-line-connectivity.yang
+git_openconfig/release/models/optical-transport/openconfig-transport-line-common.yang
+git_openconfig/release/models/multicast/openconfig-pim.yang
+git_openconfig/release/models/multicast/openconfig-pim-types.yang
+git_openconfig/release/models/multicast/openconfig-igmp.yang
+git_openconfig/release/models/multicast/openconfig-igmp-types.yang
+git_openconfig/release/models/extensions/openconfig-metadata.yang
+git_openconfig/release/models/extensions/openconfig-codegen-extensions.yang
+git_openconfig/release/models/wifi/openconfig-wifi-mac.yang
+git_openconfig/release/models/wifi/openconfig-wifi-phy.yang
+git_openconfig/release/models/wifi/openconfig-ap-interfaces.yang
+git_openconfig/release/models/wifi/openconfig-ap-manager.yang
+git_openconfig/release/models/wifi/openconfig-wifi-types.yang
+git_openconfig/release/models/wifi/openconfig-access-points.yang
+git_openconfig/release/models/network-instance/openconfig-network-instance-types.yang
+git_openconfig/release/models/network-instance/openconfig-network-instance-l3.yang
+git_openconfig/release/models/network-instance/openconfig-evpn.yang
+git_openconfig/release/models/network-instance/openconfig-network-instance-l2.yang
+git_openconfig/release/models/network-instance/openconfig-network-instance-policy.yang
+git_openconfig/release/models/network-instance/openconfig-network-instance.yang
+git_openconfig/release/models/network-instance/openconfig-evpn-types.yang
+git_openconfig/release/models/system/openconfig-aaa-types.yang
+git_openconfig/release/models/system/openconfig-system-logging.yang
+git_openconfig/release/models/system/openconfig-aaa-tacacs.yang
+git_openconfig/release/models/system/openconfig-procmon.yang
+git_openconfig/release/models/system/openconfig-aaa.yang
+git_openconfig/release/models/system/openconfig-aaa-radius.yang
+git_openconfig/release/models/system/openconfig-system.yang
+git_openconfig/release/models/system/openconfig-license.yang
+git_openconfig/release/models/system/openconfig-system-grpc.yang
+git_openconfig/release/models/system/openconfig-alarms.yang
+git_openconfig/release/models/system/openconfig-messages.yang
+git_openconfig/release/models/system/openconfig-alarm-types.yang
+git_openconfig/release/models/system/openconfig-system-terminal.yang
+git_openconfig/release/models/acl/openconfig-packet-match-types.yang
+git_openconfig/release/models/acl/openconfig-acl.yang
+git_openconfig/release/models/acl/openconfig-packet-match.yang
+git_openconfig/release/models/local-routing/openconfig-local-routing.yang
+git_openconfig/release/models/openflow/openconfig-openflow.yang
+git_openconfig/release/models/openflow/openconfig-openflow-types.yang
+git_openconfig/release/models/probes/openconfig-probes.yang
+git_openconfig/release/models/probes/openconfig-probes-types.yang
+git_openconfig/release/models/lldp/openconfig-lldp-types.yang
+git_openconfig/release/models/lldp/openconfig-lldp.yang
+git_openconfig/release/models/interfaces/openconfig-if-8021x.yang
+git_openconfig/release/models/interfaces/openconfig-interfaces.yang
+git_openconfig/release/models/interfaces/openconfig-if-ethernet-ext.yang
+git_openconfig/release/models/interfaces/openconfig-if-ip-ext.yang
+git_openconfig/release/models/interfaces/openconfig-if-tunnel.yang
+git_openconfig/release/models/interfaces/openconfig-if-poe.yang
+git_openconfig/release/models/interfaces/openconfig-if-aggregate.yang
+git_openconfig/release/models/interfaces/openconfig-if-sdn-ext.yang
+git_openconfig/release/models/interfaces/openconfig-if-ip.yang
+git_openconfig/release/models/interfaces/openconfig-if-ethernet.yang
+git_openconfig/release/models/bgp/openconfig-bgp-errors.yang
+git_openconfig/release/models/bgp/openconfig-bgp-common-multiprotocol.yang
+git_openconfig/release/models/bgp/openconfig-bgp-common.yang
+git_openconfig/release/models/bgp/openconfig-bgp-policy.yang
+git_openconfig/release/models/bgp/openconfig-bgp-neighbor.yang
+git_openconfig/release/models/bgp/openconfig-bgp-types.yang
+git_openconfig/release/models/bgp/openconfig-bgp-common-structure.yang
+git_openconfig/release/models/bgp/openconfig-bgp-peer-group.yang
+git_openconfig/release/models/bgp/openconfig-bgp-global.yang
+git_openconfig/release/models/bgp/openconfig-bgp.yang
+git_openconfig/release/models/qos/openconfig-qos-types.yang
+git_openconfig/release/models/qos/openconfig-qos-interfaces.yang
+git_openconfig/release/models/qos/openconfig-qos.yang
+git_openconfig/release/models/qos/openconfig-qos-mem-mgmt.yang
+git_openconfig/release/models/qos/openconfig-qos-elements.yang
+git_openconfig/release/models/aft/openconfig-aft-mpls.yang
+git_openconfig/release/models/aft/openconfig-aft-state-synced.yang
+git_openconfig/release/models/aft/openconfig-aft-pf.yang
+git_openconfig/release/models/aft/openconfig-aft-ipv6.yang
+git_openconfig/release/models/aft/openconfig-aft.yang
+git_openconfig/release/models/aft/openconfig-aft-network-instance.yang
+git_openconfig/release/models/aft/openconfig-aft-ipv4.yang
+git_openconfig/release/models/aft/openconfig-aft-common.yang
+git_openconfig/release/models/aft/openconfig-aft-types.yang
+git_openconfig/release/models/aft/openconfig-aft-ethernet.yang
+git_openconfig/release/models/sampling/openconfig-sampling-sflow.yang
+git_openconfig/release/models/sampling/openconfig-sampling.yang
+git_openconfig/release/models/firewall/openconfig-fw-link-monitoring.yang
+git_openconfig/release/models/firewall/openconfig-fw-high-availability.yang
+git_openconfig/release/models/catalog/openconfig-module-catalog.yang
+git_openconfig/release/models/catalog/openconfig-catalog-types.yang
+git_openconfig/release/models/macsec/openconfig-macsec-types.yang
+git_openconfig/release/models/macsec/openconfig-macsec.yang
+git_openconfig/release/models/ate/openconfig-ate-intf.yang
+git_openconfig/release/models/ate/openconfig-ate-flow.yang
+git_openconfig/release/models/mpls/openconfig-mpls-static.yang
+git_openconfig/release/models/mpls/openconfig-mpls-rsvp.yang
+git_openconfig/release/models/mpls/openconfig-mpls-sr.yang
+git_openconfig/release/models/mpls/openconfig-mpls-types.yang
+git_openconfig/release/models/mpls/openconfig-mpls.yang
+git_openconfig/release/models/mpls/openconfig-mpls-te.yang
+git_openconfig/release/models/mpls/openconfig-mpls-ldp.yang
+git_openconfig/release/models/mpls/openconfig-mpls-igp.yang