Overview and User Guide for TR-069Adapter 53/4253/1
authorsdevaraj665 <devaraj.sambandan@commscope.com>
Sun, 28 Jun 2020 14:50:27 +0000 (14:50 +0000)
committersdevaraj665 <devaraj.sambandan@commscope.com>
Mon, 29 Jun 2020 08:35:22 +0000 (08:35 +0000)
Updated Overview documentation and User Guide for TR-069Adapter Module. Also imported Yang models to address the build failures

Issue-Id: OAM-116
Signed-off-by: sdevaraj665 <devaraj.sambandan@commscope.com>
Change-Id: Iea3c0dda91a08bf9d25e0c5704bf21b39735caac

15 files changed:
.gitignore
docs/conf.py
docs/deployment-guide.rst [new file with mode: 0644]
docs/index.rst
docs/overview.rst
docs/user-guide.rst [new file with mode: 0644]
mapper/onecell-mo-metadata.json [deleted file]
mapper/rpc_set_input.xml [deleted file]
netconf-server/schemas/bbf-tr-196-2-0-3-full.yang [new file with mode: 0644]
netconf-server/schemas/tr-069-cwmp-notification.yang [new file with mode: 0644]
netconf-server/schemas/tr-181-2-12-0-cwmp-full.yang [new file with mode: 0644]
netconf-server/test-schemas/ietf-inet-types@2013-07-15.yang [new file with mode: 0644]
netconf-server/test-schemas/ietf-netconf-monitoring-extension@2013-12-10.yang [new file with mode: 0644]
netconf-server/test-schemas/ietf-netconf-monitoring@2010-10-04.yang [new file with mode: 0644]
netconf-server/test-schemas/ietf-yang-types@2013-07-15.yang [new file with mode: 0644]

index 5a20bdf..7ffb7de 100644 (file)
@@ -40,7 +40,7 @@ target-ide/
 release.properties
 
 # data models in scp/oam/modeling
-*.yang
+#*.yang
 
 # Avoid ignoring Maven wrapper jar file (.jar files are usually ignored)
 !/.mvn/wrapper/maven-wrapper.jar
index 771ac9b..8727795 100644 (file)
@@ -1,6 +1,50 @@
-from docs_conf.conf import *
-linkcheck_ignore = [
-    'http://localhost.*',
-    'http://127.0.0.1.*',
-    'https://gerrit.o-ran-sc.org.*'
-]
\ No newline at end of file
+# Configuration file for the Sphinx documentation builder.
+#
+# This file only contains a selection of the most common options. For a full
+# list see the documentation:
+# https://www.sphinx-doc.org/en/master/usage/configuration.html
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+
+# -- Project information -----------------------------------------------------
+
+project = 'tr069-adapter'
+copyright = '2020'
+
+# -- General configuration ---------------------------------------------------
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path.
+exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
+
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'alabaster'
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
\ No newline at end of file
diff --git a/docs/deployment-guide.rst b/docs/deployment-guide.rst
new file mode 100644 (file)
index 0000000..5d49f7e
--- /dev/null
@@ -0,0 +1,91 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. SPDX-License-Identifier: CC-BY-4.0
+.. Copyright (C) 2020 CommScope Inc 
+
+TR-069 Adapter Deployment and Configuration
+===========================================
+
+This section lists the required steps to deploy and install the TR-069Adapter in Kubernetes environment.
+
+Note: Before deploying and installing the TR-069Adapter, ensure the required third-party software such as Kubernetes, Docker, and Helm softwares are installed.
+
+1. Push all TR-069Adapter Docker image files to the central repository.
+
+2. Edit the values.yaml file to update the following parameters.
+
++------------------+----------------------+------------------------------------------------------------+
+|**Parameter**     |**Default Value**     |**Description**                                             |
+|                  |                      |                                                            |
++==================+======================+============================================================+
+|mountPath        |/dockerdata-nfs       |Persisted Volume Mount point on the worker                  |
+|                  |                      | node.                                                      |
++------------------+----------------------+------------------------------------------------------------+
+|macID            |0005B9AAAAA3          |Mac ID of the Device                                        |
+|                  |                      |                                                            |
++------------------+----------------------+------------------------------------------------------------+
+|dbRootPassword    |root                 |MariaDB root user password that needs to be                 |
+|                  |                      |configured                                                  |
++------------------+----------------------+------------------------------------------------------------+
+|preConfigOnPNP    |false                 |Set it to True if TR-069Adapter has to provision initial    |
+|                  |                      |set of parameters as part of BootStrap.If this parameter    |
+|                  |                      |is set to true, then TR-069Adapter shall provision the      |
+|                  |                      |configurations as part of BootStrap and sets Admin          |
+|                  |                      |Status to true. In case of boot, TR-069Adapter shall set    |
+|                  |                      |Admin Status to true.Allowed values: true/false             |
+|                  |                      |                                                            |
++------------------+----------------------+------------------------------------------------------------+
+|repository       |repo.com:5100         |Domain name and port to access the central repository where |
+|                  |                      |TR-069Adapter docker images are uploaded.                   |
++------------------+----------------------+------------------------------------------------------------+
+|pullSecret       |dockerhub.com         |Secret key or password to login to central repository.      |
+|                  |                      |                                                            |
++------------------+----------------------+------------------------------------------------------------+
+|onapFaultVes      |10.211.5.27           |VES collector IP Address for sending device fault events.   |
+|CollectorIP       |                      |                                                            |
++------------------+----------------------+------------------------------------------------------------+
+|onapFaultVesCo    |30235                 |VES collector IP Port for sending device fault events.      |
+|llectorPort       |                      |must be configured.                                         |
+|                  |                      |                                                            |
++------------------+----------------------+------------------------------------------------------------+
+|onapPnfRegVes     |10.211.5.27           |VES collector IP Address for sending pnfRegistration events.|
+|CollectorIP       |                      |                                                            |
++------------------+----------------------+------------------------------------------------------------+
+|onapPnfRegVes     |30235                 |VES collector IP Address for sending pnfRegistration events.| 
+|CollectorPort     |                      |                                                            |
++------------------+----------------------+------------------------------------------------------------+
+|type              |                      |Cluster IP or node port details to register                 |
+|                  |                      |                                                            |
++------------------+----------------------+------------------------------------------------------------+
+|portName          |srv-netconf           |Service name required to open the ports                     |
+|                  |                      |                                                            |
++------------------+----------------------+------------------------------------------------------------+
+|internalPort      |17830                 |Starting internal port number                               |
+|                  |                      |                                                            |
++------------------+----------------------+------------------------------------------------------------+
+|externalPort      |105                   |Last 3 digits of the starting external port                 |
+|                  |                      |                                                            |
++------------------+----------------------+------------------------------------------------------------+
+|portRange         |10                    |Number of ports to open. Each TR-069 Device that the adapter|
+|                  |                      |manages it needs dedicated port for NetConf Server. In this |
+|                  |                      |release maximum 200 devices could be connected to a single  |
+|                  |                      |Adapter hence Maximum 200 ports are supported.              |
+|                  |                      |                                                            |
++------------------+----------------------+------------------------------------------------------------+
+
+
+3. Execute the following command to install the TR-069Adapter
+
+   ``# helm install tr069adapter --name=<Deployment_Name>``
+
+   For example: # helm install tr069adapter --name=AdapterDevices1To200 
+
+4. Execute the following command to check if the TR-069Adapter is successfully installed:
+
+   ``# helm history <Deployment_Name>``
+
+   For example: # helm history AdapterDevices1To200
+
+5. Execute the following command to check if all the clusters are running
+
+   ``# kubectl get po``
+
index 83c6d32..9023949 100644 (file)
@@ -16,5 +16,7 @@ TR069 Adapter
 
    overview.rst
    release-notes.rst
+   deployment-guide.rst
+   user-guide.rst
 
 * :ref:`search`
index 1e210bf..5b3bafb 100644 (file)
@@ -37,15 +37,17 @@ Scope
 \r
 The TR069 Adapter enables any TR-069 compliant device to be managed in the \r
 ONAP Environment by translating TR-069 messages (SOAP) to O-RAN O1 interface \r
-messages for NetConf/YANG, VES and vice versa. The TR-069 Adapter also \r
-supports translation of object models between TR Models (TR-196, TR-181) \r
-to  O-RAN O1 interface Yang Models.\r
+messages for NetConf/YANG and vice versa. Also converting TR-069 BootStrap, \r
+Alarm Value changes to VES pnfRegstration and VES Faults respectively. \r
+The TR-069 Adapter also  supports translation of object models between \r
+TR Models (TR-196, TR-181) to  O-RAN O1 interface Yang Models.\r
 \r
 \r
 TR-069Adapter Overview\r
 ----------------------\r
 \r
-The following image shows how the BBF-TR069 Device, TR-069Adapter, SDN-R, and DMaap are connected.Each component depicted in the image is briefly described further below:\r
+The following image shows how the BBF-TR069 Device, TR-069Adapter, SDN-R, and DMaap are connected. \r
+Each component depicted in the image is briefly described further below:\r
 \r
 \r
 .. image:: _static/TR-069AdapterOverview.png\r
@@ -54,7 +56,8 @@ The following image shows how the BBF-TR069 Device, TR-069Adapter, SDN-R, and DM
 Maria DB\r
 --------\r
 \r
-The Maria DB container instance is used to support data persistence for the TR-069Adapter, such as Factory Table, Initial PnP Config Table, TR-069 Session and Device Connection Request URL information.\r
+The Maria DB container instance is used to support data persistence for the TR-069Adapter covering \r
+Initial PnP Configuration Data, TR-069 Session Data and Device Connection Request URL information.\r
 \r
 ACS\r
 ---\r
@@ -64,15 +67,15 @@ The Auto Configuration Service (ACS) Module is used to communicate with the Devi
 Factory\r
 -------\r
 \r
-This module supports Rest APIs to authenticate Device TR-069 sessions using basic authentication. It also supports REST APIs to import a Factory Equipment  file which contains Device authentication information. \r
+This module supports Rest APIs to authenticate Device TR-069 sessions using basic authentication. \r
 \r
 Initial Config\r
 --------------\r
 \r
-This module supports importing 3GPP Config XML for Device. The configurations from XML are used to provision as Initial PnP Parameters to devices as part of BootStrap. This module also supports REST APIs to import Config XML which contains Device Initial PnP Configurations. The initial PnP Parameters are optional and could be used to emulate PnP using TR-069Adapter.\r
+This module supports importing 3GPP Configuration XML (3GPP TS 32.594) for Device. The configurations from XML are used to provision as Initial PnP Parameters to devices as part of BootStrap. This module also supports REST APIs to import Config XML which contains Device Initial PnP Configurations. The initial PnP Parameters are optional and could be used to emulate PnP using TR-069Adapter.\r
 \r
-Mapper\r
-------\r
+TR-069 to NETCONF Mapper\r
+------------------------\r
 \r
 The main function of this mapper is to map the request between NETCONF server and ACS (conversion of NETCONF protocol specific message to TR-069 message and vice versa) and to forward notifications to the VES Notifier.\r
 \r
diff --git a/docs/user-guide.rst b/docs/user-guide.rst
new file mode 100644 (file)
index 0000000..9ebd16f
--- /dev/null
@@ -0,0 +1,45 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.\r
+.. SPDX-License-Identifier: CC-BY-4.0\r
+.. Copyright (C) 2020 CommScope Inc.\r
+\r
+TR-069 Adapter User Guide\r
+=========================\r
+\r
+This document provides a quick start for using TR-069 Adapter.\r
+\r
+\r
+TR-069 Device Connecting to TR-069 Adapter\r
+------------------------------------------\r
+\r
+Configure URL **http://<external_address_tr-069Adapter>/CPEMgmt/acs** to Device as Management Server URL. \r
+\r
+Importing a Initial PnP Configuration file\r
+------------------------------------------\r
+Initial PnP Configuration file supports the ability to configure the PnP parameters that TR-069Adapter must provision to the Device as part of a BootStrap Inform. The configuration XML (3GPP TS 32.594) file is used to define the initial PnP Configurations for Device. Before importing a configuration file to a server you must edit the file to enter the required configuration details.\r
+\r
+To import a configuration file:\r
+\r
+1.     Access the sample configuration file (samplexmls/macid.xml) from the distribution package.\r
+\r
+2.     Edit the macid string in macid.xml file with the device’s macid value.\r
+\r
+3.     Edit the file to add the device configuration details, in the same format as mentioned in the sample file.\r
+\r
+4.     To import initial PnP configuration file using curl use following command \r
+\r
+    ``$curl -F 'files=@<completeFilePath>' http://<external_address>/importConfig``\r
+\r
+    For example:\r
+    ``$curl -F 'files=@/home/tr069admin/0005b9423910.xml' http://tr069.amazonaws.com/importConfig``\r
+\r
+5.     You can check the imported configuration file details by entering the config service IP, external port, getConfig command, and MACID as shown in the below format in your browser:\r
+\r
+    ``http://<config_service_IP>:<external_port>/<getConfig>/<MAC_ID>``  \r
+\r
+    For example, ``http://tr069.amazonaws.com/getConfig/0005B9423910`` \r
+\r
+\r
+Mounting a Device in SDN-R\r
+--------------------------\r
+\r
+Device will get auto mounted in SDN-R once the BootStrap message is received from device and forwarded to VES Collector as VES PnfRegistration message by TR-069 Adapter. \r
diff --git a/mapper/onecell-mo-metadata.json b/mapper/onecell-mo-metadata.json
deleted file mode 100644 (file)
index c780436..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-{ \r
-   "Device.Services.FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.RootSequenceIndex":{ \r
-      "dataType":"string",\r
-      "readOnly":false\r
-   },\r
-   "Device.DeviceInfo.ManufacturerOUI":{ \r
-      "dataType":"string",\r
-      "readOnly":true\r
-   },\r
-   "Device.Services.FAPService.{i}.X_0005B9_LTE.EARFCNDLInUse":{ \r
-      "dataType":"unsignedInt",\r
-      "readOnly":true\r
-   },\r
-   "Device.DeviceInfo.SerialNumber":{ \r
-      "dataType":"string",\r
-      "readOnly":true\r
-   },\r
-   "Device.Services.FAPService.{i}.CellConfig.LTE.RAN.Common.CellIdentity":{ \r
-      "dataType":"unsignedInt",\r
-      "readOnly":false\r
-   },\r
-   "Device.DeviceInfo.UpTime":{ \r
-      "dataType":"unsignedInt",\r
-      "readOnly":true\r
-   },\r
-   "Device.Time.LocalTimeZone":{ \r
-      "dataType":"string",\r
-      "readOnly":false\r
-   },\r
-   "Device.Services.FAPService.{i}.CellConfig.LTE.RAN.RF.ULBandwidth":{ \r
-      "dataType":"string",\r
-      "readOnly":false\r
-   },\r
-   "Device.Services.FAPService.{i}.X_0005B9_LTE.PMaxInUse":{ \r
-      "dataType":"int",\r
-      "readOnly":true\r
-   },\r
-   "Device.DeviceInfo.ProductClass":{ \r
-      "dataType":"string",\r
-      "readOnly":true\r
-   },\r
-   "Device.Services.FAPService.{i}.X_0005B9_LTE.RootSequenceIndexInUse":{ \r
-      "dataType":"unsignedInt",\r
-      "readOnly":true\r
-   },\r
-   "Device.Services.FAPService.{i}.FAPControl.LTE.OpState":{ \r
-      "dataType":"boolean",\r
-      "readOnly":true\r
-   },\r
-   "Device.Services.FAPService.{i}.FAPControl.LTE.Gateway.S1SigLinkServerList":{ \r
-      "dataType":"string",\r
-      "readOnly":false\r
-   },\r
-   "Device.Services.FAPService.{i}.FAPControl.LTE.AdminState":{ \r
-      "dataType":"boolean",\r
-      "readOnly":false\r
-   },\r
-   "Device.DeviceInfo.SoftwareVersion":{ \r
-      "dataType":"string",\r
-      "readOnly":true\r
-   },\r
-   "Device.Services.FAPService.{i}.X_0005B9_LTE.PhyCellIDInUse":{ \r
-      "dataType":"unsignedInt",\r
-      "readOnly":true\r
-   },\r
-   "Device.Services.FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.Alias":{ \r
-      "dataType":"string",\r
-      "readOnly":false\r
-   },\r
-   "Device.Services.FAPService.{i}.CellConfig.LTE.RAN.RF.PhyCellID":{ \r
-      "dataType":"string",\r
-      "readOnly":false\r
-   },\r
-   "Device.Services.FAPService.{i}.X_0005B9_LTE.TACInUse":{ \r
-      "dataType":"unsignedInt",\r
-      "readOnly":true\r
-   },\r
-   "Device.Services.FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.Enable":{ \r
-      "dataType":"boolean",\r
-      "readOnly":false\r
-   },\r
-   "Device.Services.FAPService.{i}.X_0005B9_LTE.TACList":{ \r
-      "dataType":"string",\r
-      "readOnly":false\r
-   },\r
-   "Device.Services.FAPService.{i}.FAPControl.LTE.RFTxStatus":{ \r
-      "dataType":"boolean",\r
-      "readOnly":true\r
-   },\r
-   "Device.Services.FAPService.{i}.CellConfig.LTE.RAN.RF.DLBandwidth":{ \r
-      "dataType":"string",\r
-      "readOnly":false\r
-   },\r
-   "Device.Services.FAPService.{i}.FAPControl.LTE.Gateway.SecGWServer1":{ \r
-      "dataType":"string",\r
-      "readOnly":false\r
-   },\r
-   "Device.Services.FAPService.{i}.X_0005B9_LTE.RSTxPowerInUse":{ \r
-      "dataType":"int",\r
-      "readOnly":true\r
-   },\r
-   "Device.DeviceInfo.Manufacturer":{ \r
-      "dataType":"string",\r
-      "readOnly":true\r
-   },\r
-   "Device.Services.FAPService.{i}.CellConfig.LTE.RAN.RF.EARFCNDL":{ \r
-      "dataType":"string",\r
-      "readOnly":false\r
-   },\r
-   "Device.Services.FAPService.{i}.CellConfig.LTE.RAN.RF.EARFCNUL":{ \r
-      "dataType":"string",\r
-      "readOnly":false\r
-   },\r
-   "Device.Services.FAPService.{i}.X_0005B9_LTE.PreambleRACHTxPwrInUse":{ \r
-      "dataType":"int",\r
-      "readOnly":true\r
-   },\r
-   "Device.Services.FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.PLMNID":{ \r
-      "dataType":"string",\r
-      "readOnly":false\r
-   },\r
-   "Device.DeviceInfo.HardwareVersion":{ \r
-      "dataType":"string",\r
-      "readOnly":true\r
-   },\r
-   "Device.Services.FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.IsPrimary":{ \r
-      "dataType":"boolean",\r
-      "readOnly":false\r
-   },\r
-   "Device.IPsec.Enable":{ \r
-      "dataType":"boolean",\r
-      "readOnly":false\r
-   },\r
-   "Device.IPsec.Status":{ \r
-      "dataType":"string",\r
-      "readOnly":true\r
-   },\r
-   "Device.FAP.X_0005B9_RPLogManagement.TransferLogsToController":{ \r
-      "dataType":"string",\r
-      "readOnly":false\r
-   },\r
-   "Device.FAP.X_0005B9_FileTransfer.Password":{ \r
-      "dataType":"string",\r
-      "readOnly":false\r
-   },\r
-   "Device.FAP.X_0005B9_FileTransfer.ServerURL":{ \r
-      "dataType":"string",\r
-      "readOnly":false\r
-   },\r
-   "Device.FAP.X_0005B9_FileTransfer.Username":{ \r
-      "dataType":"string",\r
-      "readOnly":false\r
-   },\r
-   "Device.FAP.X_0005B9_FileTransfer.FileDetails.{i}.Enable":{ \r
-      "dataType":"boolean",\r
-      "readOnly":false\r
-   },\r
-   "Device.FAP.X_0005B9_FileTransfer.FileDetails.{i}.IncludeRadioPointLog":{ \r
-      "dataType":"boolean",\r
-      "readOnly":false\r
-   },\r
-   "Device.FAP.X_0005B9_FileTransfer.FileDetails.{i}.FileName":{ \r
-      "dataType":"string",\r
-      "readOnly":false\r
-   },\r
-   "Device.FAP.X_0005B9_FileTransfer.FileDetails.{i}.TransferWindowDuration":{ \r
-      "dataType":"unsignedInt",\r
-      "readOnly":false\r
-   },\r
-   "Device.FAP.X_0005B9_FileTransfer.FileDetails.{i}.TransferWindowInterval":{ \r
-      "dataType":"unsignedInt",\r
-      "readOnly":false\r
-   },\r
-   "Device.FAP.X_0005B9_FileTransfer.FileDetails.{i}.TransferWindowStartTime":{ \r
-      "dataType":"string",\r
-      "readOnly":false\r
-   },\r
-   "Device.FAP.X_0005B9_FileTransfer.FileDetails.{i}.LocationOnServer":{ \r
-      "dataType":"string",\r
-      "readOnly":false\r
-   }\r
-}
\ No newline at end of file
diff --git a/mapper/rpc_set_input.xml b/mapper/rpc_set_input.xml
deleted file mode 100644 (file)
index aefdb1e..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<edit-config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">\r
-    <target>\r
-       <candidate />\r
-    </target>\r
-    <config>\r
-       <device xmlns="urn:onf:otcc:wireless:yang:radio-access:commscope-onecell">\r
-               <services>\r
-                       <fap-service>\r
-                               <index>1</index>\r
-                               <cell-config>\r
-                                       <lte>\r
-                                               <epc xmlns:a="urn:ietf:params:xml:ns:netconf:base:1.0"\r
-                                                       a:operation="replace">\r
-                                                       <plmn-list>\r
-                                                               <index>1</index>\r
-                                                               <plmnid>310767</plmnid>\r
-                                                               <is-primary>false</is-primary>\r
-                                                               <cell-reserved-for-operator-use>true</cell-reserved-for-operator-use>\r
-                                                               <alias>cpe-131</alias>\r
-                                                               <enable>true</enable>\r
-                                                       </plmn-list>\r
-                                               </epc>\r
-                                       </lte>\r
-                               </cell-config>\r
-                       </fap-service>\r
-               </services>\r
-       </device>\r
-    </config>\r
-</edit-config>
\ No newline at end of file
diff --git a/netconf-server/schemas/bbf-tr-196-2-0-3-full.yang b/netconf-server/schemas/bbf-tr-196-2-0-3-full.yang
new file mode 100644 (file)
index 0000000..d9ba1d6
--- /dev/null
@@ -0,0 +1,18842 @@
+module bbf-tr-196-2-0-3-full {
+  namespace "urn:onf:otcc:wireless:yang:radio-access";
+  prefix ran;
+
+  import tr-181-2-12-0-cwmp-full {
+    prefix tr-181;
+  }
+
+  organization
+    "ONF (Open Networking Foundation) Open Transport Working Group - Wireless Project";
+  contact
+    "WG Web: <https://www.opennetworking.org/technical-communities/areas/specification/1931-optical-transport>
+     WG List:  <mailto:wireless-transport@login.opennetworking.org>
+     WG Chair: Lyndon Ong         <mailto:lyong@ciena.com>
+     WG Chair: Giorgio Cazzaniga  <mailto:giorgio.cazzaniga@sm-optics.com>
+     Editors:  Ramakrishnan, Shanthakumar (Shanth) <Shanthakumar.Ramakrishnan@commscope.com>                    Martin Skorupski   <mailto:martin.skorupski@highstreet-technologies.com>";
+  description
+    "This module contains a collection of YANG definitions for managing radio access network (RAN) devices.";
+
+  revision 2020-06-23 {
+    description
+      "Initial version, used only for ONAP PoC 2018-06-25
+          
+          Augmented tr 181 files in 196 model.
+
+       Licensed under the Apache License, Version 2.0 (the 'License');
+       you may not use this file except in compliance with the License.
+       You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+       Unless required by applicable law or agreed to in writing, software
+       distributed under the License is distributed on an 'AS IS' BASIS,
+       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+       See the License for the specific language governing permissions and
+       limitations under the License.";
+    reference
+      "ONF TR ???: A YANG Data Model for Radio Access Networks.
+       BBF TR-196 2.0.3 full";
+  }
+
+  grouping fap-service-g {
+    description
+      "Grouping object for FAPService.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.Alias";
+      reference
+        "FAPService.{i}.Alias";
+    }
+    leaf device-type {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.DeviceType";
+      reference
+        "FAPService.{i}.DeviceType";
+    }
+    leaf dn-prefix {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.DNPrefix";
+      reference
+        "FAPService.{i}.DNPrefix";
+    }
+  }
+
+  grouping access-mgmt-cdma2000-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.CDMA2000.";
+    leaf access-mode {
+      type uint32 {
+        range "0 | 1 | 3";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.AccessMode";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.AccessMode";
+    }
+    leaf max-total-active-calls-allowed {
+      type uint32 {
+        range "1..1024";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.MaxTotalActiveCallsAllowed";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.MaxTotalActiveCallsAllowed";
+    }
+    leaf access-control-list {
+      type string {
+        length "min..1024";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.AccessControlList";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.AccessControlList";
+    }
+    leaf max-member-detail-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.MaxMemberDetailEntries";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.MaxMemberDetailEntries";
+    }
+    leaf member-detail-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetailNumberOfEntries";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetailNumberOfEntries";
+    }
+  }
+
+  grouping local-ip-access-hrpd-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.";
+    leaf filter-type {
+      type uint32 {
+        range "0..3";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.FilterType";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.FilterType";
+    }
+    leaf filter-in-use {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.FilterInUse";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.FilterInUse";
+    }
+    leaf egress-filter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilterNumberOfEntries";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilterNumberOfEntries";
+    }
+  }
+
+  grouping hrpd-egress-filter-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.Enable";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.Alias";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.Alias";
+    }
+    leaf subnet {
+      type string {
+        length "min..15";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.Subnet";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.Subnet";
+    }
+    leaf subnet-mask {
+      type uint32 {
+        range "0..32";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.SubnetMask";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.SubnetMask";
+    }
+  }
+
+  grouping cdma2000-member-detail-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.Enable";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.Alias";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.Alias";
+    }
+    leaf imsi {
+      type string {
+        length "min..15";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.IMSI";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.IMSI";
+    }
+    leaf hrpd-identifier-type {
+      type int32 {
+        range "0..3";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.HRPDIdentifierType";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.HRPDIdentifierType";
+    }
+    leaf hrpd-identifier-value {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.HRPDIdentifierValue";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.HRPDIdentifierValue";
+    }
+    leaf membership-expires {
+      type string;
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.MembershipExpires";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.MembershipExpires";
+    }
+  }
+
+  grouping access-mgmt-lte-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.LTE.";
+    leaf access-mode {
+      type enumeration {
+        enum "Open Access" {
+          description
+            "Enum Value - Open Access";
+        }
+        enum "Closed Access" {
+          description
+            "Enum Value - Closed Access";
+        }
+        enum "Hybrid Access" {
+          description
+            "Enum Value - Hybrid Access";
+        }
+      }
+      description
+        "FAPService.{i}.AccessMgmt.LTE.AccessMode";
+      reference
+        "FAPService.{i}.AccessMgmt.LTE.AccessMode";
+    }
+    leaf max-u-es-served {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.LTE.MaxUEsServed";
+      reference
+        "FAPService.{i}.AccessMgmt.LTE.MaxUEsServed";
+    }
+    leaf max-csg-members {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.LTE.MaxCSGMembers";
+      reference
+        "FAPService.{i}.AccessMgmt.LTE.MaxCSGMembers";
+    }
+    leaf max-non-csg-members {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.LTE.MaxNonCSGMembers";
+      reference
+        "FAPService.{i}.AccessMgmt.LTE.MaxNonCSGMembers";
+    }
+    leaf max-resource-non-csg-members {
+      type uint32 {
+        range "0..100";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.LTE.MaxResourceNonCSGMembers";
+      reference
+        "FAPService.{i}.AccessMgmt.LTE.MaxResourceNonCSGMembers";
+    }
+    leaf csgid {
+      type uint32 {
+        range "min..134217727";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.LTE.CSGID";
+      reference
+        "FAPService.{i}.AccessMgmt.LTE.CSGID";
+    }
+    leaf hnb-name {
+      type string {
+        length "min..48";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.LTE.HNBName";
+      reference
+        "FAPService.{i}.AccessMgmt.LTE.HNBName";
+    }
+  }
+
+  grouping lte-local-ip-access-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.LTE.LocalIPAccess.";
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.AccessMgmt.LTE.LocalIPAccess.Enable";
+      reference
+        "FAPService.{i}.AccessMgmt.LTE.LocalIPAccess.Enable";
+    }
+  }
+
+  grouping legacy-local-ip-access-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.";
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Enable";
+      reference
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Enable";
+    }
+    leaf max-rules-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.MaxRulesEntries";
+      reference
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.MaxRulesEntries";
+    }
+    leaf rule-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.RuleNumberOfEntries";
+      reference
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.RuleNumberOfEntries";
+    }
+  }
+
+  grouping local-ip-access-rule-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Enable";
+      reference
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Alias";
+      reference
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Alias";
+    }
+    leaf dest-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.DestIPAddress";
+      reference
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.DestIPAddress";
+    }
+    leaf dest-subnet-mask {
+      type string {
+        length "min..45";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.DestSubnetMask";
+      reference
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.DestSubnetMask";
+    }
+    leaf protocol {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Protocol";
+      reference
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Protocol";
+    }
+    leaf action {
+      type enumeration {
+        enum Tunnel {
+          description
+            "Enum Value - Tunnel";
+        }
+        enum NAPT {
+          description
+            "Enum Value - NAPT";
+        }
+      }
+      description
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Action";
+      reference
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Action";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Interface";
+      reference
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Interface";
+    }
+  }
+
+  grouping access-mgmt-umts-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.UMTS.";
+    leaf access-mode {
+      type enumeration {
+        enum "Open Access" {
+          description
+            "Enum Value - Open Access";
+        }
+        enum "Closed Access" {
+          description
+            "Enum Value - Closed Access";
+        }
+        enum "Hybrid Access" {
+          description
+            "Enum Value - Hybrid Access";
+        }
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.AccessMode";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.AccessMode";
+    }
+    leaf non-csgue-access-decision {
+      type enumeration {
+        enum Local {
+          description
+            "Enum Value - Local";
+        }
+        enum "Query FAPGW" {
+          description
+            "Enum Value - Query FAPGW";
+        }
+        enum "By Core" {
+          description
+            "Enum Value - By Core";
+        }
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.NonCSGUEAccessDecision";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.NonCSGUEAccessDecision";
+    }
+    leaf csg-membership-determined-locally {
+      type boolean;
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.CSGMembershipDeterminedLocally";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.CSGMembershipDeterminedLocally";
+    }
+    leaf max-u-es-served {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MaxUEsServed";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MaxUEsServed";
+    }
+    leaf max-csg-members {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MaxCSGMembers";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MaxCSGMembers";
+    }
+    leaf max-non-csg-members {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MaxNonCSGMembers";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MaxNonCSGMembers";
+    }
+    leaf max-resource-non-csg-members {
+      type uint32 {
+        range "0..100";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MaxResourceNonCSGMembers";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MaxResourceNonCSGMembers";
+    }
+    leaf hnb-name {
+      type string {
+        length "min..48";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.HNBName";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.HNBName";
+    }
+    leaf csgid {
+      type uint32 {
+        range "min..134217727";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.CSGID";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.CSGID";
+    }
+    leaf access-control-list {
+      type string {
+        length "min..15";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.AccessControlList";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.AccessControlList";
+    }
+    leaf max-member-detail-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MaxMemberDetailEntries";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MaxMemberDetailEntries";
+    }
+    leaf member-detail-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetailNumberOfEntries";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetailNumberOfEntries";
+    }
+  }
+
+  grouping umts-local-ip-access-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.UMTS.LocalIPAccess.";
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.LocalIPAccess.Enable";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.LocalIPAccess.Enable";
+    }
+  }
+
+  grouping umts-member-detail-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.Enable";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.Alias";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.Alias";
+    }
+    leaf imsi {
+      type string {
+        length "min..15";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.IMSI";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.IMSI";
+    }
+    leaf msisdn {
+      type string {
+        length "min..15";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.MSISDN";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.MSISDN";
+    }
+    leaf membership-expires {
+      type string;
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.MembershipExpires";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.MembershipExpires";
+    }
+  }
+
+  grouping fap-service-capabilities-g {
+    description
+      "Grouping object for FAPService.{i}.Capabilities.";
+    leaf gps-equipped {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.GPSEquipped";
+      reference
+        "FAPService.{i}.Capabilities.GPSEquipped";
+    }
+    leaf max-tx-power {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.MaxTxPower";
+      reference
+        "FAPService.{i}.Capabilities.MaxTxPower";
+    }
+    leaf supported-systems {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.SupportedSystems";
+      reference
+        "FAPService.{i}.Capabilities.SupportedSystems";
+    }
+    leaf beacon {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.Beacon";
+      reference
+        "FAPService.{i}.Capabilities.Beacon";
+    }
+  }
+
+  grouping capabilities-cdma2000-g {
+    description
+      "Grouping object for FAPService.{i}.Capabilities.CDMA2000.";
+    leaf remote-ip-access-capable {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.RemoteIPAccessCapable";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.RemoteIPAccessCapable";
+    }
+    leaf band-class-supported-fap-beacon {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.BandClassSupportedFAPBeacon";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.BandClassSupportedFAPBeacon";
+    }
+  }
+
+  grouping cdma2000-hrpd-g {
+    description
+      "Grouping object for FAPService.{i}.Capabilities.CDMA2000.HRPD.";
+    leaf a13-session-transfer-capable {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.A13SessionTransferCapable";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.A13SessionTransferCapable";
+    }
+    leaf a16-session-transfer-capable {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.A16SessionTransferCapable";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.A16SessionTransferCapable";
+    }
+    leaf local-ip-access-capable {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.LocalIPAccessCapable";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.LocalIPAccessCapable";
+    }
+    leaf dedicated-hrpd-beacon {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.DedicatedHRPDBeacon";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.DedicatedHRPDBeacon";
+    }
+  }
+
+  grouping hrpd-self-config-g {
+    description
+      "Grouping object for FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.";
+    leaf rfcnfl-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.RFCNFLConfig";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.RFCNFLConfig";
+    }
+    leaf pilot-pn-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.PilotPNConfig";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.PilotPNConfig";
+    }
+    leaf max-fap-tx-power-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.MaxFAPTxPowerConfig";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.MaxFAPTxPowerConfig";
+    }
+    leaf max-fap-beacon-tx-power-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.MaxFAPBeaconTxPowerConfig";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.MaxFAPBeaconTxPowerConfig";
+    }
+  }
+
+  grouping cdma2000-one-x-g {
+    description
+      "Grouping object for FAPService.{i}.Capabilities.CDMA2000.OneX.";
+    leaf band-class-supported-fap {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.BandClassSupportedFAP";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.BandClassSupportedFAP";
+    }
+    leaf active-handin-capable {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.ActiveHandinCapable";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.ActiveHandinCapable";
+    }
+    leaf femto-overhead-messages-capable {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.FemtoOverheadMessagesCapable";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.FemtoOverheadMessagesCapable";
+    }
+  }
+
+  grouping one-x-self-config-g {
+    description
+      "Grouping object for FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.";
+    leaf rfcnfl-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.RFCNFLConfig";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.RFCNFLConfig";
+    }
+    leaf pilot-pn-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.PilotPNConfig";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.PilotPNConfig";
+    }
+    leaf max-fap-tx-power-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.MaxFAPTxPowerConfig";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.MaxFAPTxPowerConfig";
+    }
+    leaf max-fap-beacon-tx-power-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.MaxFAPBeaconTxPowerConfig";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.MaxFAPBeaconTxPowerConfig";
+    }
+  }
+
+  grouping capabilities-lte-g {
+    description
+      "Grouping object for FAPService.{i}.Capabilities.LTE.";
+    leaf duplex-mode {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.LTE.DuplexMode";
+      reference
+        "FAPService.{i}.Capabilities.LTE.DuplexMode";
+    }
+    leaf bands-supported {
+      type uint32 {
+        range "1..21 | 33..40";
+      }
+      config false;
+      description
+        "FAPService.{i}.Capabilities.LTE.BandsSupported";
+      reference
+        "FAPService.{i}.Capabilities.LTE.BandsSupported";
+    }
+    leaf nnsf-supported {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.LTE.NNSFSupported";
+      reference
+        "FAPService.{i}.Capabilities.LTE.NNSFSupported";
+    }
+    leaf umts-rx-supported {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.LTE.UMTSRxSupported";
+      reference
+        "FAPService.{i}.Capabilities.LTE.UMTSRxSupported";
+    }
+    leaf umts-rx-bands-supported {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.LTE.UMTSRxBandsSupported";
+      reference
+        "FAPService.{i}.Capabilities.LTE.UMTSRxBandsSupported";
+    }
+    leaf gsm-rx-supported {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.LTE.GSMRxSupported";
+      reference
+        "FAPService.{i}.Capabilities.LTE.GSMRxSupported";
+    }
+    leaf gsm-rx-bands-supported {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.LTE.GSMRxBandsSupported";
+      reference
+        "FAPService.{i}.Capabilities.LTE.GSMRxBandsSupported";
+    }
+    leaf cdma2000-rx-supported {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.LTE.CDMA2000RxSupported";
+      reference
+        "FAPService.{i}.Capabilities.LTE.CDMA2000RxSupported";
+    }
+    leaf cdma2000-rx-bands-supported {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.LTE.CDMA2000RxBandsSupported";
+      reference
+        "FAPService.{i}.Capabilities.LTE.CDMA2000RxBandsSupported";
+    }
+  }
+
+  grouping capabilities-umts-g {
+    description
+      "Grouping object for FAPService.{i}.Capabilities.UMTS.";
+    leaf duplex-mode {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.DuplexMode";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.DuplexMode";
+    }
+    leaf gsm-rx-supported {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.GSMRxSupported";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.GSMRxSupported";
+    }
+    leaf hsdpa-supported {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.HSDPASupported";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.HSDPASupported";
+    }
+    leaf max-hsdpa-data-rate-supported {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.MaxHSDPADataRateSupported";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.MaxHSDPADataRateSupported";
+    }
+    leaf hsupa-supported {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.HSUPASupported";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.HSUPASupported";
+    }
+    leaf max-hsupa-data-rate-supported {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.MaxHSUPADataRateSupported";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.MaxHSUPADataRateSupported";
+    }
+    leaf max-hspdsc-hs-supported {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.MaxHSPDSCHsSupported";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.MaxHSPDSCHsSupported";
+    }
+    leaf max-hsscc-hs-supported {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.MaxHSSCCHsSupported";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.MaxHSSCCHsSupported";
+    }
+    leaf fdd-bands-supported {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.FDDBandsSupported";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.FDDBandsSupported";
+    }
+    leaf gsm-rx-bands-supported {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.GSMRxBandsSupported";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.GSMRxBandsSupported";
+    }
+  }
+
+  grouping umts-self-config-g {
+    description
+      "Grouping object for FAPService.{i}.Capabilities.UMTS.SelfConfig.";
+    leaf uarfcn-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.UARFCNConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.UARFCNConfig";
+    }
+    leaf primary-scrambling-code-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.PrimaryScramblingCodeConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.PrimaryScramblingCodeConfig";
+    }
+    leaf max-fap-tx-power-expanded-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.MaxFAPTxPowerExpandedConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.MaxFAPTxPowerExpandedConfig";
+    }
+    leaf pcpich-power-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.PCPICHPowerConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.PCPICHPowerConfig";
+    }
+    leaf max-ul-tx-power-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.MaxULTxPowerConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.MaxULTxPowerConfig";
+    }
+    leaf lacracura-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.LACRACURAConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.LACRACURAConfig";
+    }
+    leaf neighbor-list-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.NeighborListConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.NeighborListConfig";
+    }
+    leaf cell-re-selection-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.CellReSelectionConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.CellReSelectionConfig";
+    }
+    leaf intra-freq-meas-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.IntraFreqMeasConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.IntraFreqMeasConfig";
+    }
+    leaf inter-freq-meas-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.InterFreqMeasConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.InterFreqMeasConfig";
+    }
+    leaf inter-rat-meas-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.InterRATMeasConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.InterRATMeasConfig";
+    }
+    leaf ue-internal-meas-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.UEInternalMeasConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.UEInternalMeasConfig";
+    }
+    leaf noise-rise-limit-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.NoiseRiseLimitConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.NoiseRiseLimitConfig";
+    }
+  }
+
+  grouping cell-config-cdma2000-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.";
+    leaf tunnel-instance {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.TunnelInstance";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.TunnelInstance";
+    }
+  }
+
+  grouping cdma2000-beacon-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.Beacon.";
+    leaf beacon-admin-status {
+      type enumeration {
+        enum Locked {
+          description
+            "Enum Value - Locked";
+        }
+        enum Unlocked {
+          description
+            "Enum Value - Unlocked";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconAdminStatus";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconAdminStatus";
+    }
+    leaf beacon-oper-status {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconOperStatus";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconOperStatus";
+    }
+    leaf hrpd-beacon-enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconEnable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconEnable";
+    }
+    leaf period {
+      type uint32 {
+        range "0..32767";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.Period";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.Period";
+    }
+    leaf max-fap-beacon-tx-power {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxFAPBeaconTxPower";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxFAPBeaconTxPower";
+    }
+    leaf max-fap-beacon-tx-power-in-use {
+      type int32 {
+        range "-400..200";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxFAPBeaconTxPowerInUse";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxFAPBeaconTxPowerInUse";
+    }
+    leaf beacon-pch-pwr-percentage {
+      type int32 {
+        range "1000..1000000";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconPchPwrPercentage";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconPchPwrPercentage";
+    }
+    leaf max-hrpd-beacon-tx-power {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxHRPDBeaconTxPower";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxHRPDBeaconTxPower";
+    }
+    leaf max-hrpd-beacon-tx-power-in-use {
+      type int32 {
+        range "-400..200";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxHRPDBeaconTxPowerInUse";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxHRPDBeaconTxPowerInUse";
+    }
+    leaf beacon-pilot-pwr-percentage {
+      type int32 {
+        range "1000..1000000";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconPilotPwrPercentage";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconPilotPwrPercentage";
+    }
+    leaf beacon-sync-pwr-percentage {
+      type int32 {
+        range "1000..1000000";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconSyncPwrPercentage";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconSyncPwrPercentage";
+    }
+    leaf max-beacon-list-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxBeaconListEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxBeaconListEntries";
+    }
+    leaf beacon-list-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconListNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconListNumberOfEntries";
+    }
+    leaf max-hrpd-beacon-list-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxHRPDBeaconListEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxHRPDBeaconListEntries";
+    }
+    leaf hrpd-beacon-list-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconListNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconListNumberOfEntries";
+    }
+  }
+
+  grouping beacon-beacon-list-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.Alias";
+    }
+    leaf beacon-index {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconIndex";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconIndex";
+    }
+    leaf offset {
+      type uint32 {
+        range "0..32767";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.Offset";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.Offset";
+    }
+    leaf duration {
+      type uint32 {
+        range "0..32767";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.Duration";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.Duration";
+    }
+    leaf transmission-format {
+      type enumeration {
+        enum 0 {
+          description
+            "Enum Value - 0";
+        }
+        enum 1 {
+          description
+            "Enum Value - 1";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.TransmissionFormat";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.TransmissionFormat";
+    }
+    leaf beacon-band-class {
+      type int32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconBandClass";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconBandClass";
+    }
+    leaf beacon-channel-freq {
+      type uint32 {
+        range "0..2016";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconChannelFreq";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconChannelFreq";
+    }
+    leaf beacon-pn-offset {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconPNOffset";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconPNOffset";
+    }
+    leaf tx-power {
+      type int32 {
+        range "-40..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.TxPower";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.TxPower";
+    }
+    leaf beacon-sid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconSID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconSID";
+    }
+    leaf beacon-nid {
+      type uint32 {
+        range "0..32767";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconNID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconNID";
+    }
+    leaf beacon-pzid {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconPZID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconPZID";
+    }
+  }
+
+  grouping beacon-hrpd-beacon-list-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.Alias";
+    }
+    leaf beacon-index {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.BeaconIndex";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.BeaconIndex";
+    }
+    leaf c-coffset {
+      type uint32 {
+        range "0..2048";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.CCoffset";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.CCoffset";
+    }
+    leaf offset {
+      type int32 {
+        range "-127..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.Offset";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.Offset";
+    }
+    leaf duration {
+      type uint32 {
+        range "0..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.Duration";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.Duration";
+    }
+    leaf num-c-ccycles {
+      type uint32 {
+        range "0..48";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.NumCCcycles";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.NumCCcycles";
+    }
+    leaf beacon-band-class {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.BeaconBandClass";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.BeaconBandClass";
+    }
+    leaf beacon-channel-freq {
+      type uint32 {
+        range "0..2016";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.BeaconChannelFreq";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.BeaconChannelFreq";
+    }
+    leaf beacon-pn-offset {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.BeaconPNOffset";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.BeaconPNOffset";
+    }
+    leaf tx-power {
+      type int32 {
+        range "-40..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.TxPower";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.TxPower";
+    }
+  }
+
+  grouping cell-config-cdma2000-hrpd-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.";
+    leaf pcfpdsn-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSNNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSNNumberOfEntries";
+    }
+    leaf max-batch-pcfpdsn-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.MaxBatchPCFPDSNEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.MaxBatchPCFPDSNEntries";
+    }
+    leaf batch-pcfpdsn-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSNNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSNNumberOfEntries";
+    }
+  }
+
+  grouping hrpd-access-auth-config-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthConfig.";
+    leaf a12-access-authentication-enable {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthConfig.A12AccessAuthenticationEnable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthConfig.A12AccessAuthenticationEnable";
+    }
+  }
+
+  grouping hrpd-access-auth-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.";
+    leaf an-ppp-authentication-attempts-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.AnPppAuthenticationAttemptsByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.AnPppAuthenticationAttemptsByNode";
+    }
+    leaf a12-requests-sent-from-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12RequestsSentFromNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12RequestsSentFromNode";
+    }
+    leaf a12-rejects-received-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12RejectsReceivedByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12RejectsReceivedByNode";
+    }
+    leaf a12-accepts-received-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12AcceptsReceivedByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12AcceptsReceivedByNode";
+    }
+    leaf a12-access-challenges-received-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12AccessChallengesReceivedByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12AccessChallengesReceivedByNode";
+    }
+    leaf a12-retransmits-sent-from-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12RetransmitsSentFromNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12RetransmitsSentFromNode";
+    }
+    leaf a12-timeouts-events-for-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TimeoutsEventsForNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TimeoutsEventsForNode";
+    }
+    leaf a12-malformedresponse-received-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12MalformedresponseReceivedByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12MalformedresponseReceivedByNode";
+    }
+    leaf a12-bad-authenticator-received-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12BadAuthenticatorReceivedByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12BadAuthenticatorReceivedByNode";
+    }
+    leaf a12-unknown-type-received-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12UnknownTypeReceivedByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12UnknownTypeReceivedByNode";
+    }
+    leaf a12-unknown-pkt-received-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12UnknownPktReceivedByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12UnknownPktReceivedByNode";
+    }
+    leaf a12-unknown-server-received-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12UnknownServerReceivedByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12UnknownServerReceivedByNode";
+    }
+    leaf a12-other-failure-occurences-in-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12OtherFailureOccurencesInNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12OtherFailureOccurencesInNode";
+    }
+    leaf a12-by-pass-num-ats-with-unknown-mfr-code-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12ByPassNumAtsWithUnknownMfrCodeByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12ByPassNumAtsWithUnknownMfrCodeByNode";
+    }
+    leaf a12-tx-path-fail-due-to-an-ppp-error-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToAnPppErrorByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToAnPppErrorByNode";
+    }
+    leaf a12-tx-path-fail-due-to-no-server-available-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToNoServerAvailableByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToNoServerAvailableByNode";
+    }
+    leaf a12-tx-path-fail-due-to-internal-error-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToInternalErrorByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToInternalErrorByNode";
+    }
+    leaf a12-tx-path-fail-due-to-no-packet-id-available-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToNoPacketIdAvailableByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToNoPacketIdAvailableByNode";
+    }
+    leaf a12-tx-path-fail-due-to-transmit-error-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToTransmitErrorByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToTransmitErrorByNode";
+    }
+    leaf a12-svr-timeouts-for-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12SvrTimeoutsForNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12SvrTimeoutsForNode";
+    }
+    leaf a12-enh-ta-bypass-lcp-timeout-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12EnhTaBypassLcpTimeoutByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12EnhTaBypassLcpTimeoutByNode";
+    }
+    leaf a12-enh-ta-bypass-chap-timeout-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12EnhTaBypassChapTimeoutByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12EnhTaBypassChapTimeoutByNode";
+    }
+    leaf a12-enh-ta-bypass-chap-invalid-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12EnhTaBypassChapInvalidByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12EnhTaBypassChapInvalidByNode";
+    }
+    leaf a12-enh-ta-bypass-chap-nai-matches-a12-bypass-list-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12EnhTaBypassChapNaiMatchesA12BypassListByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12EnhTaBypassChapNaiMatchesA12BypassListByNode";
+    }
+    leaf a12-session-ta-timeout-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12SessionTaTimeoutByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12SessionTaTimeoutByNode";
+    }
+    leaf access-auth-failed-due-to-session-close-total {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.AccessAuthFailedDueToSessionCloseTotal";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.AccessAuthFailedDueToSessionCloseTotal";
+    }
+    leaf access-auth-succeeded {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.AccessAuthSucceeded";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.AccessAuthSucceeded";
+    }
+  }
+
+  grouping hrpd-batch-pcfpdsn-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.Alias";
+    }
+    leaf batch-table-number {
+      type int32 {
+        range "0..127";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableNumber";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableNumber";
+    }
+    leaf batch-table-start-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableStartIPAddress";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableStartIPAddress";
+    }
+    leaf batch-table-end-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableEndIPAddress";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableEndIPAddress";
+    }
+    leaf batch-table-security-parameter-index {
+      type uint32 {
+        range "256..4294967295";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableSecurityParameterIndex";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableSecurityParameterIndex";
+    }
+    leaf batch-table-secret-key {
+      type string {
+        length "0..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableSecretKey";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableSecretKey";
+    }
+    leaf batch-table-ios-version {
+      type enumeration {
+        enum TIA-878-ballot {
+          description
+            "Enum Value - TIA-878-ballot";
+        }
+        enum TIA-878-1 {
+          description
+            "Enum Value - TIA-878-1";
+        }
+        enum TIA-878-a {
+          description
+            "Enum Value - TIA-878-a";
+        }
+        enum TIA-878-legacy {
+          description
+            "Enum Value - TIA-878-legacy";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableIOSVersion";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableIOSVersion";
+    }
+    leaf batch-table-pdsn-admin-status {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTablePDSNAdminStatus";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTablePDSNAdminStatus";
+    }
+    leaf pdsn-type {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.PDSNType";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.PDSNType";
+    }
+  }
+
+  grouping hrpd-call-control-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.";
+    leaf num-session-setup-attempts {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumSessionSetupAttempts";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumSessionSetupAttempts";
+    }
+    leaf num-session-setup-successful {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumSessionSetupSuccessful";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumSessionSetupSuccessful";
+    }
+    leaf num-current-sessions-established {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumCurrentSessionsEstablished";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumCurrentSessionsEstablished";
+    }
+    leaf num-page-messages-to-at {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumPageMessagesToAt";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumPageMessagesToAt";
+    }
+    leaf num-pages-succeeded {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumPagesSucceeded";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumPagesSucceeded";
+    }
+    leaf num-connections-opened {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumConnectionsOpened";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumConnectionsOpened";
+    }
+    leaf num-session-setups-failed-to-term-auth {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumSessionSetupsFailedToTermAuth";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumSessionSetupsFailedToTermAuth";
+    }
+    leaf num-forward-rlp-bytes {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumForwardRLPBytes";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumForwardRLPBytes";
+    }
+    leaf num-reverse-rlp-bytes {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumReverseRLPBytes";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumReverseRLPBytes";
+    }
+    leaf average-session-setup-time {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.AverageSessionSetupTime";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.AverageSessionSetupTime";
+    }
+    leaf average-page-setup-time {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.AveragePageSetupTime";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.AveragePageSetupTime";
+    }
+    leaf num-conn-setups-aborted {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumConnSetupsAborted";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumConnSetupsAborted";
+    }
+    leaf num-forward-pre-rlp-dropped-pkts {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumForwardPreRLPDroppedPkts";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumForwardPreRLPDroppedPkts";
+    }
+  }
+
+  grouping hrpd-pcf-config-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.";
+    leaf pcfpdsn-health-monitor-interval {
+      type uint32 {
+        range "0..180";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPDSNHealthMonitorInterval";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPDSNHealthMonitorInterval";
+    }
+  }
+
+  grouping pcf-config-pcf-performance-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.";
+    leaf a10-setup-failure-no-reason {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureNoReason";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureNoReason";
+    }
+    leaf a10-setup-failure-admin-prohibit {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureAdminProhibit";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureAdminProhibit";
+    }
+    leaf a10-setup-failure-insuff-resources {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureInsuffResources";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureInsuffResources";
+    }
+    leaf a10-setup-failure-failed-auth {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureFailedAuth";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureFailedAuth";
+    }
+    leaf a10-setup-failure-id-mismatch {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureIdMismatch";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureIdMismatch";
+    }
+    leaf a10-setup-failure-malformed-req {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureMalformedReq";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureMalformedReq";
+    }
+    leaf a10-setup-failure-unknown-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureUnknownPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureUnknownPDSN";
+    }
+    leaf a10-setup-failure-unsupp-vend-id {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureUnsuppVendId";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureUnsuppVendId";
+    }
+    leaf total-a10-closed-by-rnc {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10ClosedByRnc";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10ClosedByRnc";
+    }
+    leaf total-a10-closed-by-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10ClosedByPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10ClosedByPDSN";
+    }
+    leaf total-a10-success-pages {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10SuccessPages";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10SuccessPages";
+    }
+    leaf total-a10-failed-pages {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10FailedPages";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10FailedPages";
+    }
+    leaf total-a10-ingress-bytes {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10IngressBytes";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10IngressBytes";
+    }
+    leaf total-a10-egress-bytes {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10EgressBytes";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10EgressBytes";
+    }
+    leaf a10-reg-update-received {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10RegUpdateReceived";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10RegUpdateReceived";
+    }
+    leaf total-a10-dropped-pages {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10DroppedPages";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10DroppedPages";
+    }
+  }
+
+  grouping hrpd-pcfpdsn-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.Alias";
+    }
+    leaf pdsn-number {
+      type int32 {
+        range "0..127";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PDSNNumber";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PDSNNumber";
+    }
+    leaf security-parameter-index {
+      type uint32 {
+        range "256..4294967295";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.SecurityParameterIndex";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.SecurityParameterIndex";
+    }
+    leaf security-key {
+      type string {
+        length "0..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.SecurityKey";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.SecurityKey";
+    }
+    leaf ios-version {
+      type enumeration {
+        enum TIA-878-ballot {
+          description
+            "Enum Value - TIA-878-ballot";
+        }
+        enum TIA-878-1 {
+          description
+            "Enum Value - TIA-878-1";
+        }
+        enum TIA-878-a {
+          description
+            "Enum Value - TIA-878-a";
+        }
+        enum TIA-878-legacy {
+          description
+            "Enum Value - TIA-878-legacy";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.IOSVersion";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.IOSVersion";
+    }
+    leaf pds-nadmin-status {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PDSNadminStatus";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PDSNadminStatus";
+    }
+    leaf pdsn-health-status {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PDSNHealthStatus";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PDSNHealthStatus";
+    }
+    leaf pdsnip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PDSNIPAddress";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PDSNIPAddress";
+    }
+  }
+
+  grouping pcfpdsn-a11-reg-update-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.";
+    leaf pdsn-number-reg-update-perf {
+      type int32 {
+        range "0..127";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.PDSNNumberRegUpdatePerf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.PDSNNumberRegUpdatePerf";
+    }
+    leaf pdsnip-address-reg-update-perf {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.PDSNIPAddressRegUpdatePerf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.PDSNIPAddressRegUpdatePerf";
+    }
+    leaf a11-reg-update-received-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateReceivedPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateReceivedPDSN";
+    }
+    leaf a11-reg-update-id-check-fail-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateIDCheckFailPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateIDCheckFailPDSN";
+    }
+    leaf a11-reg-update-auth-check-fail-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateAuthCheckFailPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateAuthCheckFailPDSN";
+    }
+    leaf a11-reg-update-for-unknown-psipdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateForUnknownPSIPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateForUnknownPSIPDSN";
+    }
+    leaf a11-reg-update-unspecified-reason-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUnspecifiedReasonPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUnspecifiedReasonPDSN";
+    }
+    leaf a11-reg-update-ppp-timeout-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePppTimeoutPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePppTimeoutPDSN";
+    }
+    leaf a11-reg-update-registration-timeout-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateRegistrationTimeoutPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateRegistrationTimeoutPDSN";
+    }
+    leaf a11-reg-update-pdsn-error-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePDSNErrorPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePDSNErrorPDSN";
+    }
+    leaf a11-reg-update-inter-pcf-handoff-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateInterPCFHandoffPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateInterPCFHandoffPDSN";
+    }
+    leaf a11-reg-update-inter-pdsn-handoff-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateInterPDSNHandoffPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateInterPDSNHandoffPDSN";
+    }
+    leaf a11-reg-update-pdsnoamp-intervention-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePDSNOAMPInterventionPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePDSNOAMPInterventionPDSN";
+    }
+    leaf a11-reg-update-accounting-error-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateAccountingErrorPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateAccountingErrorPDSN";
+    }
+    leaf a11-reg-update-user-failed-authentication-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUserFailedAuthenticationPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUserFailedAuthenticationPDSN";
+    }
+    leaf a11-reg-update-unknown-cause-code-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUnknownCauseCodePDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUnknownCauseCodePDSN";
+    }
+    leaf a11-reg-update-without-reason-code-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateWithoutReasonCodePDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateWithoutReasonCodePDSN";
+    }
+  }
+
+  grouping pcfpdsn-a11-session-update-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.";
+    leaf pdsn-number-session-update-perf {
+      type int32 {
+        range "0..127";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.PDSNNumberSessionUpdatePerf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.PDSNNumberSessionUpdatePerf";
+    }
+    leaf pdsnip-address-session-update-perf {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.PDSNIPAddressSessionUpdatePerf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.PDSNIPAddressSessionUpdatePerf";
+    }
+    leaf a11-session-update-received-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateReceivedPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateReceivedPDSN";
+    }
+    leaf a11-session-update-accepted-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateAcceptedPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateAcceptedPDSN";
+    }
+    leaf a11-session-update-extended-apipdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateExtendedAPIPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateExtendedAPIPDSN";
+    }
+    leaf a11-session-update-for-unknown-psipdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateForUnknownPSIPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateForUnknownPSIPDSN";
+    }
+    leaf a11-session-update-denied-id-check-fail-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedIDCheckFailPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedIDCheckFailPDSN";
+    }
+    leaf a11-session-update-denied-auth-check-fail-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedAuthCheckFailPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedAuthCheckFailPDSN";
+    }
+    leaf a11-session-update-denied-reason-unspecified-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedReasonUnspecifiedPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedReasonUnspecifiedPDSN";
+    }
+    leaf a11-session-update-denied-poorly-formed-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedPoorlyFormedPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedPoorlyFormedPDSN";
+    }
+    leaf a11-session-update-denied-session-params-not-updated-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedSessionParamsNotUpdatedPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedSessionParamsNotUpdatedPDSN";
+    }
+    leaf a11-session-update-denied-qo-s-profile-id-not-supported-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedQoSProfileIdNotSupportedPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedQoSProfileIdNotSupportedPDSN";
+    }
+    leaf a11-session-update-denied-insufficient-resources-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedInsufficientResourcesPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedInsufficientResourcesPDSN";
+    }
+    leaf a11-session-update-denied-handoff-in-progress-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedHandoffInProgressPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedHandoffInProgressPDSN";
+    }
+  }
+
+  grouping pcfpdsn-aux-a10-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.";
+    leaf pdsn-number-aux-a10-perf {
+      type int32 {
+        range "0..127";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.PDSNNumberAuxA10Perf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.PDSNNumberAuxA10Perf";
+    }
+    leaf pdsnip-address-aux-a10-perf {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.PDSNIPAddressAuxA10Perf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.PDSNIPAddressAuxA10Perf";
+    }
+    leaf aux-a10-connections-created-in-first-reg-req-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10ConnectionsCreatedInFirstRegReqPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10ConnectionsCreatedInFirstRegReqPDSN";
+    }
+    leaf aux-a10-connections-created-in-subsequent-reg-req-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10ConnectionsCreatedInSubsequentRegReqPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10ConnectionsCreatedInSubsequentRegReqPDSN";
+    }
+    leaf aux-a10-fwd-ip-flows-created-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10FwdIpFlowsCreatedPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10FwdIpFlowsCreatedPDSN";
+    }
+    leaf aux-a10-rev-ip-flows-created-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10RevIpFlowsCreatedPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10RevIpFlowsCreatedPDSN";
+    }
+    leaf aux-a10-ip-flow-accounting-reg-requests-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10IpFlowAccountingRegRequestsPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10IpFlowAccountingRegRequestsPDSN";
+    }
+  }
+
+  grouping pcfpdsn-pcfpdsn-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.";
+    leaf a10-setup-attempts-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10SetupAttemptsPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10SetupAttemptsPDSN";
+    }
+    leaf a10-setup-successes-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10SetupSuccessesPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10SetupSuccessesPDSN";
+    }
+    leaf a10-setup-blocks-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10SetupBlocksPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10SetupBlocksPDSN";
+    }
+    leaf a11-reg-req-denied-id-mismatch-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedIdMismatchPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedIdMismatchPDSN";
+    }
+    leaf a11-reg-req-denied-unknown-pdsnpdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnknownPDSNPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnknownPDSNPDSN";
+    }
+    leaf a11-reg-req-denied-no-reason-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedNoReasonPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedNoReasonPDSN";
+    }
+    leaf a11-reg-req-denied-admin-prohibit-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedAdminProhibitPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedAdminProhibitPDSN";
+    }
+    leaf a11-reg-req-denied-insuff-resources-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedInsuffResourcesPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedInsuffResourcesPDSN";
+    }
+    leaf a11-reg-req-denied-failed-auth-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedFailedAuthPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedFailedAuthPDSN";
+    }
+    leaf a11-reg-req-denied-malformed-req-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedMalformedReqPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedMalformedReqPDSN";
+    }
+    leaf a11-reg-req-denied-unsupp-vend-id-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnsuppVendIdPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnsuppVendIdPDSN";
+    }
+    leaf a11-reg-req-denied-reverse-tunnel-unavailable-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedReverseTunnelUnavailablePDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedReverseTunnelUnavailablePDSN";
+    }
+    leaf a11-reg-req-denied-reverse-tunnel-tbit-not-set-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedReverseTunnelTbitNotSetPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedReverseTunnelTbitNotSetPDSN";
+    }
+    leaf a11-reg-req-denied-unknown-error-code-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnknownErrorCodePDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnknownErrorCodePDSN";
+    }
+    leaf a10-reg-req-for-registration-retransmissions-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForRegistrationRetransmissionsPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForRegistrationRetransmissionsPDSN";
+    }
+    leaf a10-reg-req-for-re-registration-retransmissions-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForReRegistrationRetransmissionsPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForReRegistrationRetransmissionsPDSN";
+    }
+    leaf a10-reg-req-for-release-retransmissions-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForReleaseRetransmissionsPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForReleaseRetransmissionsPDSN";
+    }
+    leaf pdsn-number-pdsn-perf {
+      type int32 {
+        range "0..127";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.PDSNNumberPDSNPerf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.PDSNNumberPDSNPerf";
+    }
+    leaf pds-nip-address-pdsn-perf {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.PDSNipAddressPDSNPerf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.PDSNipAddressPDSNPerf";
+    }
+  }
+
+  grouping hrpd-qo-s-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.";
+    leaf num-qo-s-subscriber-profile-updates-rcvd {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSSubscriberProfileUpdatesRcvd";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSSubscriberProfileUpdatesRcvd";
+    }
+    leaf num-pdsnip-flow-updates-msg-rcvd {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumPDSNIPFlowUpdatesMsgRcvd";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumPDSNIPFlowUpdatesMsgRcvd";
+    }
+    leaf num-pdsnip-flow-updates-msg-failed {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumPDSNIPFlowUpdatesMsgFailed";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumPDSNIPFlowUpdatesMsgFailed";
+    }
+    leaf num-qo-s-setup-requests-received {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSSetupRequestsReceived";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSSetupRequestsReceived";
+    }
+    leaf num-qo-s-setup-requests-accepted {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSSetupRequestsAccepted";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSSetupRequestsAccepted";
+    }
+    leaf num-qo-s-setup-requests-rejected {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSSetupRequestsRejected";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSSetupRequestsRejected";
+    }
+    leaf num-reservation-on-requests-received {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOnRequestsReceived";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOnRequestsReceived";
+    }
+    leaf num-reservation-on-requests-accepted {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOnRequestsAccepted";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOnRequestsAccepted";
+    }
+    leaf num-reservation-on-requests-rejected {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOnRequestsRejected";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOnRequestsRejected";
+    }
+    leaf num-reservation-on-requests-failed {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOnRequestsFailed";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOnRequestsFailed";
+    }
+    leaf num-fwd-reservation-on-messages-sent {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumFwdReservationOnMessagesSent";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumFwdReservationOnMessagesSent";
+    }
+    leaf num-rev-reservation-on-messages-sent {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumRevReservationOnMessagesSent";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumRevReservationOnMessagesSent";
+    }
+    leaf num-reservation-off-requests-received {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOffRequestsReceived";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOffRequestsReceived";
+    }
+    leaf num-reservation-off-requests-accepted {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOffRequestsAccepted";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOffRequestsAccepted";
+    }
+    leaf num-reservation-off-requests-rejected {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOffRequestsRejected";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOffRequestsRejected";
+    }
+    leaf num-fwd-reservation-off-messages-sent {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumFwdReservationOffMessagesSent";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumFwdReservationOffMessagesSent";
+    }
+    leaf num-rev-reservation-off-messages-sent {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumRevReservationOffMessagesSent";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumRevReservationOffMessagesSent";
+    }
+    leaf num-qo-s-release-requests-received {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSReleaseRequestsReceived";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSReleaseRequestsReceived";
+    }
+    leaf num-connection-close-initiated-no-ran-rsr {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumConnectionCloseInitiatedNoRANRsr";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumConnectionCloseInitiatedNoRANRsr";
+    }
+  }
+
+  grouping ran-rf-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.";
+    leaf hrpd-car-band-class {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.HRPDCarBandClass";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.HRPDCarBandClass";
+    }
+    leaf rfcnfl {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RFCNFL";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RFCNFL";
+    }
+    leaf rfcnfl-in-use {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RFCNFLInUse";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RFCNFLInUse";
+    }
+    leaf pilot-pn {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.PilotPN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.PilotPN";
+    }
+    leaf pilot-pn-in-use {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.PilotPNInUse";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.PilotPNInUse";
+    }
+    leaf max-fap-tx-power {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.MaxFAPTxPower";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.MaxFAPTxPower";
+    }
+    leaf max-fap-tx-power-in-use {
+      type int32 {
+        range "-200..200";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.MaxFAPTxPowerInUse";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.MaxFAPTxPowerInUse";
+    }
+    leaf control-channel-rate {
+      type int32;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ControlChannelRate";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ControlChannelRate";
+    }
+    leaf sync-capsule-offset {
+      type int32 {
+        range "0..3";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.SyncCapsuleOffset";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.SyncCapsuleOffset";
+    }
+    leaf rab-length {
+      type int32 {
+        range "8 | 16 | 32 | 64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RabLength";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RabLength";
+    }
+    leaf rab-offset {
+      type int32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RabOffset";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RabOffset";
+    }
+    leaf sector-id {
+      type string {
+        length "16";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.SectorID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.SectorID";
+    }
+    leaf color-code {
+      type int32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ColorCode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ColorCode";
+    }
+    leaf subnet-mask-length {
+      type int32 {
+        range "0..104";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.SubnetMaskLength";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.SubnetMaskLength";
+    }
+    leaf hrpd-sec-el-reverse-link-silence-duration {
+      type int32 {
+        range "0..3";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.HRPDSecElReverseLinkSilenceDuration";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.HRPDSecElReverseLinkSilenceDuration";
+    }
+    leaf hrpd-sec-el-reverse-link-silence-period {
+      type int32 {
+        range "0..3";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.HRPDSecElReverseLinkSilencePeriod";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.HRPDSecElReverseLinkSilencePeriod";
+    }
+    leaf open-loop-adjust {
+      type int32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.OpenLoopAdjust";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.OpenLoopAdjust";
+    }
+    leaf probe-initial-adjust {
+      type int32 {
+        range "-15..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ProbeInitialAdjust";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ProbeInitialAdjust";
+    }
+    leaf probe-num-steps {
+      type int32 {
+        range "1..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ProbeNumSteps";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ProbeNumSteps";
+    }
+    leaf probe-power-step {
+      type int32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ProbePowerStep";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ProbePowerStep";
+    }
+    leaf a-persistence {
+      type string {
+        length "min..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.APersistence";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.APersistence";
+    }
+    leaf rssirab-threshold {
+      type int32 {
+        range "-1600..1600";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RSSIRABThreshold";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RSSIRABThreshold";
+    }
+    leaf load-rab-threshold {
+      type uint32 {
+        range "0..480";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.LoadRABThreshold";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.LoadRABThreshold";
+    }
+    leaf connection-rate-limit {
+      type uint32 {
+        range "0..3";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ConnectionRateLimit";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ConnectionRateLimit";
+    }
+    leaf rfe-rl-balance-ratio {
+      type uint32 {
+        range "1..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RfeRLBalanceRatio";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RfeRLBalanceRatio";
+    }
+  }
+
+  grouping hrpd-rnc-sig-apps-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.";
+    leaf c-num-page-requests {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumPageRequests";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumPageRequests";
+    }
+    leaf s-num-page-requests {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumPageRequests";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumPageRequests";
+    }
+    leaf s-num-connection-setup-attempts {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumConnectionSetupAttempts";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumConnectionSetupAttempts";
+    }
+    leaf c-num-connection-setup-attempts {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumConnectionSetupAttempts";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumConnectionSetupAttempts";
+    }
+    leaf s-num-connection-setup-success {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumConnectionSetupSuccess";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumConnectionSetupSuccess";
+    }
+    leaf c-num-connection-setup-success {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumConnectionSetupSuccess";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumConnectionSetupSuccess";
+    }
+    leaf s-num-normal-connection-closes {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNormalConnectionCloses";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNormalConnectionCloses";
+    }
+    leaf c-num-normal-connection-closes {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNormalConnectionCloses";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNormalConnectionCloses";
+    }
+    leaf s-num-total-connection-closes {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumTotalConnectionCloses";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumTotalConnectionCloses";
+    }
+    leaf c-num-total-connection-closes {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumTotalConnectionCloses";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumTotalConnectionCloses";
+    }
+    leaf s-num-rf-related-drops {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumRFRelatedDrops";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumRFRelatedDrops";
+    }
+    leaf c-num-rf-related-drops {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumRFRelatedDrops";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumRFRelatedDrops";
+    }
+    leaf s-num-page-responses {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumPageResponses";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumPageResponses";
+    }
+    leaf c-num-page-responses {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumPageResponses";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumPageResponses";
+    }
+    leaf s-num-rf-related-drops-rtc-lost {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumRFRelatedDropsRTCLost";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumRFRelatedDropsRTCLost";
+    }
+    leaf c-num-rf-related-drops-rtc-lost {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumRFRelatedDropsRTCLost";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumRFRelatedDropsRTCLost";
+    }
+    leaf s-num-rf-related-drops-no-ftc {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumRFRelatedDropsNoFTC";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumRFRelatedDropsNoFTC";
+    }
+    leaf c-num-rf-related-drops-no-ftc {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumRFRelatedDropsNoFTC";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumRFRelatedDropsNoFTC";
+    }
+    leaf s-num-network-error-drops {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNetworkErrorDrops";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNetworkErrorDrops";
+    }
+    leaf c-num-network-error-drops {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNetworkErrorDrops";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNetworkErrorDrops";
+    }
+    leaf s-num-network-error-drops-rnc-internal {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNetworkErrorDropsRNCInternal";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNetworkErrorDropsRNCInternal";
+    }
+    leaf c-num-network-error-drops-rnc-internal {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNetworkErrorDropsRNCInternal";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNetworkErrorDropsRNCInternal";
+    }
+    leaf s-num-network-error-drops-rnc-external {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNetworkErrorDropsRNCExternal";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNetworkErrorDropsRNCExternal";
+    }
+    leaf c-num-network-error-drops-rnc-external {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNetworkErrorDropsRNCExternal";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNetworkErrorDropsRNCExternal";
+    }
+    leaf s-num-network-error-drops-a10-setup-fail {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNetworkErrorDropsA10SetupFail";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNetworkErrorDropsA10SetupFail";
+    }
+    leaf c-num-network-error-drops-a10-setup-fail {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNetworkErrorDropsA10SetupFail";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNetworkErrorDropsA10SetupFail";
+    }
+    leaf s-num-misc-drops-sector-down {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumMiscDropsSectorDown";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumMiscDropsSectorDown";
+    }
+    leaf c-num-misc-drops-sector-down {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumMiscDropsSectorDown";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumMiscDropsSectorDown";
+    }
+    leaf s-num-misc-drops-internal-error {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumMiscDropsInternalError";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumMiscDropsInternalError";
+    }
+    leaf c-num-misc-drops-internal-error {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumMiscDropsInternalError";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumMiscDropsInternalError";
+    }
+    leaf c-num-misc-drops-state-mismatch {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumMiscDropsStateMismatch";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumMiscDropsStateMismatch";
+    }
+    leaf s-num-misc-drops-state-mismatch {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumMiscDropsStateMismatch";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumMiscDropsStateMismatch";
+    }
+    leaf s-num-misc-drops-due-to-rlp {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumMiscDropsDueToRLP";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumMiscDropsDueToRLP";
+    }
+    leaf c-num-misc-drops-due-to-rlp {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumMiscDropsDueToRLP";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumMiscDropsDueToRLP";
+    }
+  }
+
+  grouping hrpd-redirect-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.Redirect.";
+    leaf redirect-channel-number {
+      type uint32 {
+        range "0..2047";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.Redirect.RedirectChannelNumber";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.Redirect.RedirectChannelNumber";
+    }
+    leaf redirect-band-class {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.Redirect.RedirectBandClass";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.Redirect.RedirectBandClass";
+    }
+  }
+
+  grouping cell-config-cdma2000-one-x-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.";
+    leaf pcfpdsn-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSNNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSNNumberOfEntries";
+    }
+    leaf max-batch-pcfpdsn-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.MaxBatchPCFPDSNEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.MaxBatchPCFPDSNEntries";
+    }
+    leaf batch-pcfpdsn-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSNNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSNNumberOfEntries";
+    }
+  }
+
+  grouping one-x-batch-pcfpdsn-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.Alias";
+    }
+    leaf batch-table-number {
+      type int32 {
+        range "0..127";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableNumber";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableNumber";
+    }
+    leaf batch-table-start-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableStartIPAddress";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableStartIPAddress";
+    }
+    leaf batch-table-end-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableEndIPAddress";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableEndIPAddress";
+    }
+    leaf batch-table-security-parameter-index {
+      type uint32 {
+        range "256..4294967295";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableSecurityParameterIndex";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableSecurityParameterIndex";
+    }
+    leaf batch-table-secret-key {
+      type string {
+        length "0..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableSecretKey";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableSecretKey";
+    }
+    leaf batch-table-ios-version {
+      type enumeration {
+        enum TIA-878-ballot {
+          description
+            "Enum Value - TIA-878-ballot";
+        }
+        enum TIA-878-1 {
+          description
+            "Enum Value - TIA-878-1";
+        }
+        enum TIA-878-a {
+          description
+            "Enum Value - TIA-878-a";
+        }
+        enum TIA-878-legacy {
+          description
+            "Enum Value - TIA-878-legacy";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableIOSVersion";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableIOSVersion";
+    }
+    leaf batch-table-pdsn-admin-status {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTablePDSNAdminStatus";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTablePDSNAdminStatus";
+    }
+    leaf pdsn-type {
+      type enumeration {
+        enum OneX {
+          description
+            "Enum Value - OneX";
+        }
+        enum HRPDRev0 {
+          description
+            "Enum Value - HRPDRev0";
+        }
+        enum HRPDRevA {
+          description
+            "Enum Value - HRPDRevA";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.PDSNType";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.PDSNType";
+    }
+  }
+
+  grouping one-x-pcf-config-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.";
+    leaf pcfpdsn-health-monitor-interval {
+      type uint32 {
+        range "0..180";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPDSNHealthMonitorInterval";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPDSNHealthMonitorInterval";
+    }
+  }
+
+  grouping one-x-pcf-config-pcf-performance-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.";
+    leaf a10-setup-failure-no-reason {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureNoReason";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureNoReason";
+    }
+    leaf a10-setup-failure-admin-prohibit {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureAdminProhibit";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureAdminProhibit";
+    }
+    leaf a10-setup-failure-insuff-resources {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureInsuffResources";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureInsuffResources";
+    }
+    leaf a10-setup-failure-failed-auth {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureFailedAuth";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureFailedAuth";
+    }
+    leaf a10-setup-failure-id-mismatch {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureIdMismatch";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureIdMismatch";
+    }
+    leaf a10-setup-failure-malformed-req {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureMalformedReq";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureMalformedReq";
+    }
+    leaf a10-setup-failure-unknown-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureUnknownPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureUnknownPDSN";
+    }
+    leaf a10-setup-failure-unsupp-vend-id {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureUnsuppVendId";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureUnsuppVendId";
+    }
+    leaf total-a10-closed-by-rnc {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10ClosedByRnc";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10ClosedByRnc";
+    }
+    leaf total-a10-closed-by-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10ClosedByPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10ClosedByPDSN";
+    }
+    leaf total-a10-success-pages {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10SuccessPages";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10SuccessPages";
+    }
+    leaf total-a10-failed-pages {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10FailedPages";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10FailedPages";
+    }
+    leaf total-a10-ingress-bytes {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10IngressBytes";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10IngressBytes";
+    }
+    leaf total-a10-egress-bytes {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10EgressBytes";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10EgressBytes";
+    }
+    leaf a10-reg-update-received {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10RegUpdateReceived";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10RegUpdateReceived";
+    }
+    leaf total-a10-dropped-pages {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10DroppedPages";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10DroppedPages";
+    }
+  }
+
+  grouping one-x-pcfpdsn-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.Alias";
+    }
+    leaf pdsn-number {
+      type int32 {
+        range "0..127";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PDSNNumber";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PDSNNumber";
+    }
+    leaf security-parameter-index {
+      type uint32 {
+        range "256..4294967295";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.SecurityParameterIndex";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.SecurityParameterIndex";
+    }
+    leaf security-key {
+      type string {
+        length "0..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.SecurityKey";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.SecurityKey";
+    }
+    leaf ios-version {
+      type enumeration {
+        enum TIA-878-ballot {
+          description
+            "Enum Value - TIA-878-ballot";
+        }
+        enum TIA-878-1 {
+          description
+            "Enum Value - TIA-878-1";
+        }
+        enum TIA-878-a {
+          description
+            "Enum Value - TIA-878-a";
+        }
+        enum TIA-878-legacy {
+          description
+            "Enum Value - TIA-878-legacy";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.IOSVersion";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.IOSVersion";
+    }
+    leaf pds-nadmin-status {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PDSNadminStatus";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PDSNadminStatus";
+    }
+    leaf pdsn-health-status {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PDSNHealthStatus";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PDSNHealthStatus";
+    }
+    leaf pdsnip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PDSNIPAddress";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PDSNIPAddress";
+    }
+  }
+
+  grouping one-x-pcfpdsn-a11-reg-update-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.";
+    leaf pdsn-number-reg-update-perf {
+      type int32 {
+        range "0..127";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.PDSNNumberRegUpdatePerf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.PDSNNumberRegUpdatePerf";
+    }
+    leaf pdsnip-address-reg-update-perf {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.PDSNIPAddressRegUpdatePerf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.PDSNIPAddressRegUpdatePerf";
+    }
+    leaf a11-reg-update-received-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateReceivedPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateReceivedPDSN";
+    }
+    leaf a11-reg-update-id-check-fail-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateIDCheckFailPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateIDCheckFailPDSN";
+    }
+    leaf a11-reg-update-auth-check-fail-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateAuthCheckFailPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateAuthCheckFailPDSN";
+    }
+    leaf a11-reg-update-for-unknown-psipdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateForUnknownPSIPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateForUnknownPSIPDSN";
+    }
+    leaf a11-reg-update-unspecified-reason-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUnspecifiedReasonPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUnspecifiedReasonPDSN";
+    }
+    leaf a11-reg-update-ppp-timeout-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePppTimeoutPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePppTimeoutPDSN";
+    }
+    leaf a11-reg-update-registration-timeout-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateRegistrationTimeoutPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateRegistrationTimeoutPDSN";
+    }
+    leaf a11-reg-update-pdsn-error-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePDSNErrorPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePDSNErrorPDSN";
+    }
+    leaf a11-reg-update-inter-pcf-handoff-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateInterPCFHandoffPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateInterPCFHandoffPDSN";
+    }
+    leaf a11-reg-update-inter-pdsn-handoff-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateInterPDSNHandoffPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateInterPDSNHandoffPDSN";
+    }
+    leaf a11-reg-update-pdsnoamp-intervention-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePDSNOAMPInterventionPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePDSNOAMPInterventionPDSN";
+    }
+    leaf a11-reg-update-accounting-error-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateAccountingErrorPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateAccountingErrorPDSN";
+    }
+    leaf a11-reg-update-user-failed-authentication-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUserFailedAuthenticationPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUserFailedAuthenticationPDSN";
+    }
+    leaf a11-reg-update-unknown-cause-code-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUnknownCauseCodePDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUnknownCauseCodePDSN";
+    }
+    leaf a11-reg-update-without-reason-code-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateWithoutReasonCodePDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateWithoutReasonCodePDSN";
+    }
+  }
+
+  grouping one-x-pcfpdsn-pcfpdsn-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.";
+    leaf a10-setup-attempts-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10SetupAttemptsPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10SetupAttemptsPDSN";
+    }
+    leaf a10-setup-successes-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10SetupSuccessesPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10SetupSuccessesPDSN";
+    }
+    leaf a10-setup-blocks-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10SetupBlocksPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10SetupBlocksPDSN";
+    }
+    leaf a11-reg-req-denied-id-mismatch-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedIdMismatchPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedIdMismatchPDSN";
+    }
+    leaf a11-reg-req-denied-unknown-pdsnpdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnknownPDSNPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnknownPDSNPDSN";
+    }
+    leaf a11-reg-req-denied-no-reason-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedNoReasonPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedNoReasonPDSN";
+    }
+    leaf a11-reg-req-denied-admin-prohibit-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedAdminProhibitPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedAdminProhibitPDSN";
+    }
+    leaf a11-reg-req-denied-insuff-resources-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedInsuffResourcesPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedInsuffResourcesPDSN";
+    }
+    leaf a11-reg-req-denied-failed-auth-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedFailedAuthPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedFailedAuthPDSN";
+    }
+    leaf a11-reg-req-denied-malformed-req-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedMalformedReqPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedMalformedReqPDSN";
+    }
+    leaf a11-reg-req-denied-unsupp-vend-id-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnsuppVendIdPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnsuppVendIdPDSN";
+    }
+    leaf a11-reg-req-denied-reverse-tunnel-unavailable-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedReverseTunnelUnavailablePDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedReverseTunnelUnavailablePDSN";
+    }
+    leaf a11-reg-req-denied-reverse-tunnel-tbit-not-set-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedReverseTunnelTbitNotSetPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedReverseTunnelTbitNotSetPDSN";
+    }
+    leaf a11-reg-req-denied-unknown-error-code-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnknownErrorCodePDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnknownErrorCodePDSN";
+    }
+    leaf a10-reg-req-for-registration-retransmissions-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForRegistrationRetransmissionsPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForRegistrationRetransmissionsPDSN";
+    }
+    leaf a10-reg-req-for-re-registration-retransmissions-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForReRegistrationRetransmissionsPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForReRegistrationRetransmissionsPDSN";
+    }
+    leaf a10-reg-req-for-release-retransmissions-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForReleaseRetransmissionsPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForReleaseRetransmissionsPDSN";
+    }
+    leaf pdsn-number-pdsn-perf {
+      type int32 {
+        range "0..127";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.PDSNNumberPDSNPerf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.PDSNNumberPDSNPerf";
+    }
+    leaf pds-nip-address-pdsn-perf {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.PDSNipAddressPDSNPerf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.PDSNipAddressPDSNPerf";
+    }
+  }
+
+  grouping one-x-ran-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.";
+    leaf one-x-sector-nid {
+      type int32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.OneXSectorNID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.OneXSectorNID";
+    }
+    leaf one-x-sector-sid {
+      type int32 {
+        range "0..32767";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.OneXSectorSID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.OneXSectorSID";
+    }
+    leaf one-xpzid {
+      type int32;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.OneXPZID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.OneXPZID";
+    }
+    leaf base-id {
+      type int32;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.BaseID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.BaseID";
+    }
+    leaf max-neighbor-list-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.MaxNeighborListEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.MaxNeighborListEntries";
+    }
+    leaf neighbor-list-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborListNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborListNumberOfEntries";
+    }
+  }
+
+  grouping ran-apidm-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.";
+    leaf association-type {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.AssociationType";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.AssociationType";
+    }
+    leaf apidlen {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.APIDLEN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.APIDLEN";
+    }
+    leaf apid {
+      type string {
+        length "0..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.APID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.APID";
+    }
+    leaf apidmask {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.APIDMASK";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.APIDMASK";
+    }
+    leaf iosmscid {
+      type uint32 {
+        range "0..16777215";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.IOSMSCID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.IOSMSCID";
+    }
+    leaf ioscellid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.IOSCELLID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.IOSCELLID";
+    }
+    leaf intrafreqhohysincl {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTRAFREQHOHYSINCL";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTRAFREQHOHYSINCL";
+    }
+    leaf intrafreqhohys {
+      type uint32 {
+        range "0..127";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTRAFREQHOHYS";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTRAFREQHOHYS";
+    }
+    leaf intrafreqhoslopeincl {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTRAFREQHOSLOPEINCL";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTRAFREQHOSLOPEINCL";
+    }
+    leaf intrafreqhoslope {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTRAFREQHOSLOPE";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTRAFREQHOSLOPE";
+    }
+    leaf interfreqhohysincl {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQHOHYSINCL";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQHOHYSINCL";
+    }
+    leaf interfreqhohys {
+      type uint32 {
+        range "0..127";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQHOHYS";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQHOHYS";
+    }
+    leaf interfreqhoslopeincl {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQHOSLOPEINCL";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQHOSLOPEINCL";
+    }
+    leaf interfreqhoslope {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQHOSLOPE";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQHOSLOPE";
+    }
+    leaf interfreqsrchthincl {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQSRCHTHINCL";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQSRCHTHINCL";
+    }
+    leaf interfreqsrchth {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQSRCHTH";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQSRCHTH";
+    }
+  }
+
+  grouping ran-apidtm-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.";
+    leaf apidtextcha-ri-len {
+      type uint32 {
+        range "0..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.APIDTEXTCHARiLEN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.APIDTEXTCHARiLEN";
+    }
+    leaf apidtextmsgencoding {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.APIDTEXTMSGENCODING";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.APIDTEXTMSGENCODING";
+    }
+    leaf apidtextcha-ri {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.APIDTEXTCHARi";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.APIDTEXTCHARi";
+    }
+  }
+
+  grouping ran-appim-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.";
+    leaf lifetime {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.LIFETIME";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.LIFETIME";
+    }
+    leaf numappirec {
+      type uint32 {
+        range "0..511";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.NUMAPPIREC";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.NUMAPPIREC";
+    }
+    leaf appirec-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIRECNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIRECNumberOfEntries";
+    }
+  }
+
+  grouping appim-appirec-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.Alias";
+    }
+    leaf apassntype {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APASSNTYPE";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APASSNTYPE";
+    }
+    leaf apsidsameasprevious {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APSIDSAMEASPREVIOUS";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APSIDSAMEASPREVIOUS";
+    }
+    leaf apnidsameasprevious {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APNIDSAMEASPREVIOUS";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APNIDSAMEASPREVIOUS";
+    }
+    leaf apbandsameasprevious {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APBANDSAMEASPREVIOUS";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APBANDSAMEASPREVIOUS";
+    }
+    leaf apfreqsameasprevious {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APFREQSAMEASPREVIOUS";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APFREQSAMEASPREVIOUS";
+    }
+    leaf appnrecsameasprevious {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APPNRECSAMEASPREVIOUS";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APPNRECSAMEASPREVIOUS";
+    }
+    leaf apsid {
+      type uint32 {
+        range "0..32767";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APSID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APSID";
+    }
+    leaf apnid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APNID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APNID";
+    }
+    leaf apband {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APBAND";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APBAND";
+    }
+    leaf apfreq {
+      type uint32 {
+        range "0..2047";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APFREQ";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APFREQ";
+    }
+    leaf appnrectype {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APPNRECTYPE";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APPNRECTYPE";
+    }
+    leaf appnreclen {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APPNRECLEN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APPNRECLEN";
+    }
+    leaf appnrec {
+      type string {
+        length "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APPNREC";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APPNREC";
+    }
+  }
+
+  grouping ran-access-parameters-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.";
+    leaf nom-pwr {
+      type int32 {
+        range "-7..8";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.NomPwr";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.NomPwr";
+    }
+    leaf init-pwr {
+      type int32 {
+        range "-15..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.InitPwr";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.InitPwr";
+    }
+    leaf pwr-step-indb {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.PwrStepIndb";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.PwrStepIndb";
+    }
+    leaf nom-pwr-ext {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.NomPwrExt";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.NomPwrExt";
+    }
+    leaf apm-auth {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.APMAuth";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.APMAuth";
+    }
+    leaf apm-rand-update-prd {
+      type uint32 {
+        range "16..14400";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.APMRandUpdatePrd";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.APMRandUpdatePrd";
+    }
+    leaf initialpwr {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Initialpwr";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Initialpwr";
+    }
+    leaf pwr-step {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.PwrStep";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.PwrStep";
+    }
+    leaf num-step {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.NumStep";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.NumStep";
+    }
+    leaf max-cap-size {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.MaxCapSize";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.MaxCapSize";
+    }
+    leaf preamble-size {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.PreambleSize";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.PreambleSize";
+    }
+    leaf psist09 {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist09";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist09";
+    }
+    leaf psist10 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist10";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist10";
+    }
+    leaf psist11 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist11";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist11";
+    }
+    leaf psist12 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist12";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist12";
+    }
+    leaf psist13 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist13";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist13";
+    }
+    leaf psist14 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist14";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist14";
+    }
+    leaf psist15 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist15";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist15";
+    }
+    leaf msg-psist {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.MsgPsist";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.MsgPsist";
+    }
+    leaf reg-psist {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.RegPsist";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.RegPsist";
+    }
+    leaf probe-pn-ran {
+      type uint32 {
+        range "0..9";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.ProbePNRan";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.ProbePNRan";
+    }
+    leaf acc-tmo {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.AccTmo";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.AccTmo";
+    }
+    leaf probe-bkoff {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.ProbeBkoff";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.ProbeBkoff";
+    }
+    leaf bkoff {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Bkoff";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Bkoff";
+    }
+    leaf max-req-seq {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.MaxReqSeq";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.MaxReqSeq";
+    }
+    leaf max-rsp-seq {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.MaxRspSeq";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.MaxRspSeq";
+    }
+  }
+
+  grouping ran-extended-system-parameters-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.";
+    leaf prev {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.Prev";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.Prev";
+    }
+    leaf p-min-rev {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.PMinRev";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.PMinRev";
+    }
+    leaf delete-for-tmsi {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.DeleteForTMSI";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.DeleteForTMSI";
+    }
+    leaf use-tmsi {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.UseTMSI";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.UseTMSI";
+    }
+    leaf pref-msid-type {
+      type uint32 {
+        range "0..3";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.PrefMSIDType";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.PrefMSIDType";
+    }
+    leaf mcc {
+      type uint32 {
+        range "0..1023";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.MCC";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.MCC";
+    }
+    leaf imsi1112 {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.IMSI1112";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.IMSI1112";
+    }
+    leaf tmsi-zone-len {
+      type uint32 {
+        range "1..8";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.TMSIZoneLen";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.TMSIZoneLen";
+    }
+    leaf tmsi-zone {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.TMSIZone";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.TMSIZone";
+    }
+    leaf bcast-index {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.BcastIndex";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.BcastIndex";
+    }
+    leaf imsit-supported {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.IMSITSupported";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.IMSITSupported";
+    }
+    leaf soft-slope {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.SoftSlope";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.SoftSlope";
+    }
+    leaf add-intercept {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AddIntercept";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AddIntercept";
+    }
+    leaf drop-intercept {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.DropIntercept";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.DropIntercept";
+    }
+    leaf max-num-alt-so {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.MaxNumAltSo";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.MaxNumAltSo";
+    }
+    leaf reselected-included {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.ReselectedIncluded";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.ReselectedIncluded";
+    }
+    leaf ec-thresh {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.EcThresh";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.EcThresh";
+    }
+    leaf ec-io-thresh {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.EcIoThresh";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.EcIoThresh";
+    }
+    leaf pilot-report {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.PilotReport";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.PilotReport";
+    }
+    leaf nghbr-set-entry-info {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.NghbrSetEntryInfo";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.NghbrSetEntryInfo";
+    }
+    leaf access-ho-order {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccessHOOrder";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccessHOOrder";
+    }
+    leaf nghbr-set-access-info {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.NghbrSetAccessInfo";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.NghbrSetAccessInfo";
+    }
+    leaf access-ho {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccessHO";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccessHO";
+    }
+    leaf access-ho-msg-rsp {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccessHOMsgRsp";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccessHOMsgRsp";
+    }
+    leaf access-probe-ho {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccessProbeHO";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccessProbeHO";
+    }
+    leaf acc-ho-list-upd {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccHOListUpd";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccHOListUpd";
+    }
+    leaf acc-probe-ho-other-msg {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccProbeHOOtherMsg";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccProbeHOOtherMsg";
+    }
+    leaf max-num-probe-ho {
+      type uint32 {
+        range "0..3";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.MaxNumProbeHO";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.MaxNumProbeHO";
+    }
+    leaf brdcast-gps-assit {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.BrdcastGPSAssit";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.BrdcastGPSAssit";
+    }
+    leaf qpch-supported {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHSupported";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHSupported";
+    }
+    leaf num-qpch {
+      type uint32 {
+        range "1..3";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.NumQPCH";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.NumQPCH";
+    }
+    leaf qpch-rate {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHRate";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHRate";
+    }
+    leaf qpch-pwr-level-page {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHPwrLevelPage";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHPwrLevelPage";
+    }
+    leaf qpc-hcci-supported {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHcciSupported";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHcciSupported";
+    }
+    leaf qpch-pwr-level-config {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHPwrLevelConfig";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHPwrLevelConfig";
+    }
+    leaf sdb-supported {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.SDBSupported";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.SDBSupported";
+    }
+    leaf r-lgain-traffic-pilot {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.RLgainTrafficPilot";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.RLgainTrafficPilot";
+    }
+    leaf rvs-pwr-ctrl-delay-incl {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.RvsPwrCtrlDelayIncl";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.RvsPwrCtrlDelayIncl";
+    }
+    leaf rvs-pwr-ctrl-delay {
+      type uint32 {
+        range "0..3";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.RvsPwrCtrlDelay";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.RvsPwrCtrlDelay";
+    }
+  }
+
+  grouping ran-forward-pwr-ctr-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.";
+    leaf fpcfch-init-setpt {
+      type int32 {
+        range "-128..127";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCFCHInitSetpt";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCFCHInitSetpt";
+    }
+    leaf fpc-subchan-gain {
+      type int32 {
+        range "-16..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCSubchanGain";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCSubchanGain";
+    }
+    leaf rl-gain-adj {
+      type int32 {
+        range "-8..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.RLGainAdj";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.RLGainAdj";
+    }
+    leaf fpcfchfer {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCFCHFER";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCFCHFER";
+    }
+    leaf fpcfch-min-setpt {
+      type int32 {
+        range "-128..127";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCFCHMinSetpt";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCFCHMinSetpt";
+    }
+    leaf fpcfch-max-setpt {
+      type int32 {
+        range "-128..127";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCFCHMaxSetpt";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCFCHMaxSetpt";
+    }
+  }
+
+  grouping ran-hard-handoff-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.";
+    leaf handout-enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.HandoutEnable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.HandoutEnable";
+    }
+    leaf ho-pilot-power-thresh {
+      type int32 {
+        range "0..5";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.HOPilotPowerThresh";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.HOPilotPowerThresh";
+    }
+    leaf ho-pilot-duration {
+      type uint32 {
+        range "20..50";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.HOPilotDuration";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.HOPilotDuration";
+    }
+  }
+
+  grouping hard-handoff-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.";
+    leaf tx-ho-required {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.TxHORequired";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.TxHORequired";
+    }
+    leaf rx-ho-command {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.RxHOCommand";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.RxHOCommand";
+    }
+    leaf ho-required-rejected {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.HORequiredRejected";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.HORequiredRejected";
+    }
+    leaf ho-required-unanswered {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.HORequiredUnanswered";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.HORequiredUnanswered";
+    }
+    leaf tx-uhdm {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.TxUHDM";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.TxUHDM";
+    }
+    leaf rx-ns-ack {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.RxNSAck";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.RxNSAck";
+    }
+    leaf ho-failure-count {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.HOFailureCount";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.HOFailureCount";
+    }
+    leaf call-drop-count {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.CallDropCount";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.CallDropCount";
+    }
+    leaf tx-ho-commence {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.TxHOCommence";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.TxHOCommence";
+    }
+    leaf rx-ho-session-clear {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.RxHOSessionClear";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.RxHOSessionClear";
+    }
+    leaf return-on-failure-count {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.ReturnOnFailureCount";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.ReturnOnFailureCount";
+    }
+    leaf one-pilot-report-count {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.OnePilotReportCount";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.OnePilotReportCount";
+    }
+    leaf two-pilot-report-count {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.TwoPilotReportCount";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.TwoPilotReportCount";
+    }
+    leaf three-pilot-report-count {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.ThreePilotReportCount";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.ThreePilotReportCount";
+    }
+  }
+
+  grouping ran-neighbor-list-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.Alias";
+    }
+    leaf pilot-inc {
+      type int32 {
+        range "1..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.PilotInc";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.PilotInc";
+    }
+    leaf one-x-neighbor-index {
+      type int32 {
+        range "0..19";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborIndex";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborIndex";
+    }
+    leaf neighbor-config {
+      type enumeration {
+        enum SameConfig {
+          description
+            "Enum Value - SameConfig";
+        }
+        enum SamePaging {
+          description
+            "Enum Value - SamePaging";
+        }
+        enum DiffPaging {
+          description
+            "Enum Value - DiffPaging";
+        }
+        enum Unknown {
+          description
+            "Enum Value - Unknown";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborConfig";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborConfig";
+    }
+    leaf neighbor-pn {
+      type int32 {
+        range "0..511";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborPN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborPN";
+    }
+    leaf search-priority {
+      type enumeration {
+        enum Low {
+          description
+            "Enum Value - Low";
+        }
+        enum Medium {
+          description
+            "Enum Value - Medium";
+        }
+        enum High {
+          description
+            "Enum Value - High";
+        }
+        enum VeryHigh {
+          description
+            "Enum Value - VeryHigh";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.SearchPriority";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.SearchPriority";
+    }
+    leaf neighbor-band {
+      type enumeration {
+        enum 0 {
+          description
+            "Enum Value - 0";
+        }
+        enum 1 {
+          description
+            "Enum Value - 1";
+        }
+        enum 2 {
+          description
+            "Enum Value - 2";
+        }
+        enum 3 {
+          description
+            "Enum Value - 3";
+        }
+        enum 4 {
+          description
+            "Enum Value - 4";
+        }
+        enum 5 {
+          description
+            "Enum Value - 5";
+        }
+        enum 6 {
+          description
+            "Enum Value - 6";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborBand";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborBand";
+    }
+    leaf neighbor-frequency {
+      type int32 {
+        range "0..2016";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborFrequency";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborFrequency";
+    }
+    leaf frequency-included {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.FrequencyIncluded";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.FrequencyIncluded";
+    }
+    leaf in-traffic {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.InTraffic";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.InTraffic";
+    }
+    leaf overhead-msg {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OverheadMsg";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OverheadMsg";
+    }
+    leaf base-identifier {
+      type int32;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.BaseIdentifier";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.BaseIdentifier";
+    }
+    leaf air-interface {
+      type enumeration {
+        enum OneX {
+          description
+            "Enum Value - OneX";
+        }
+        enum IS95 {
+          description
+            "Enum Value - IS95";
+        }
+        enum HRPD {
+          description
+            "Enum Value - HRPD";
+        }
+        enum Other {
+          description
+            "Enum Value - Other";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.AirInterface";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.AirInterface";
+    }
+    leaf hand-out-capable {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.HandOutCapable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.HandOutCapable";
+    }
+    leaf one-x-neighbor-longitude {
+      type string {
+        length "min..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborLongitude";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborLongitude";
+    }
+    leaf one-x-neighbor-latitude {
+      type string {
+        length "min..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborLatitude";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborLatitude";
+    }
+    leaf one-x-neighbor-msc-id {
+      type uint32 {
+        range "0..16777215";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborMSCId";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborMSCId";
+    }
+    leaf one-x-neighbor-ios-cell-id {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborIOSCellId";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborIOSCellId";
+    }
+    leaf force-in-overhead {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.ForceInOverhead";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.ForceInOverhead";
+    }
+    leaf included-in-overhead {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.IncludedInOverhead";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.IncludedInOverhead";
+    }
+  }
+
+  grouping ran-network-listen-mode-config-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.";
+    leaf rfcnfl-margin {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.RFCNFLMargin";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.RFCNFLMargin";
+    }
+    leaf fap-coverage-target {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.FAPCoverageTarget";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.FAPCoverageTarget";
+    }
+    leaf fap-beacon-coverage-target {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.FAPBeaconCoverageTarget";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.FAPBeaconCoverageTarget";
+    }
+    leaf max-coverage-edge-pilot-strength {
+      type int32 {
+        range "-300..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.MaxCoverageEdgePilotStrength";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.MaxCoverageEdgePilotStrength";
+    }
+    leaf max-allowable-pilot-strength-degradation {
+      type int32 {
+        range "0..150";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.MaxAllowablePilotStrengthDegradation";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.MaxAllowablePilotStrengthDegradation";
+    }
+    leaf rfcnfl-to-protect {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.RFCNFLToProtect";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.RFCNFLToProtect";
+    }
+    leaf fap-allowed-adj-chan-coverage-hole {
+      type uint32 {
+        range "30..150";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.FAPAllowedAdjChanCoverageHole";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.FAPAllowedAdjChanCoverageHole";
+    }
+    leaf acir {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.ACIR";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.ACIR";
+    }
+  }
+
+  grouping ran-power-control-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.";
+    leaf one-xpcfpc-incl {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCFPCIncl";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCFPCIncl";
+    }
+    leaf one-xpcfpcfch-min-setpt {
+      type int32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCFPCFCHMinSetpt";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCFPCFCHMinSetpt";
+    }
+    leaf one-xpcfpcfch-max-setpt {
+      type int32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCFPCFCHMaxSetpt";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCFPCFCHMaxSetpt";
+    }
+    leaf one-xpcrpc-incl {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCRPCIncl";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCRPCIncl";
+    }
+    leaf one-xpcfch-chan-adj-gain {
+      type int32 {
+        range "-48..48";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCFCHChanAdjGain";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCFCHChanAdjGain";
+    }
+    leaf one-xpc-pwr-rep-thresh {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCPwrRepThresh";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCPwrRepThresh";
+    }
+    leaf one-xpc-pwr-rep-frames {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCPwrRepFrames";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCPwrRepFrames";
+    }
+    leaf one-x-pwr-thresh-enable {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPwrThreshEnable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPwrThreshEnable";
+    }
+    leaf one-xpc-pwr-period-enable {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCPwrPeriodEnable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCPwrPeriodEnable";
+    }
+    leaf one-xpc-pwr-rep-delay {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCPwrRepDelay";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCPwrRepDelay";
+    }
+  }
+
+  grouping one-x-ran-rf-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.";
+    leaf rfcnfl {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.RFCNFL";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.RFCNFL";
+    }
+    leaf rfcnfl-band-in-use {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.RFCNFLBandInUse";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.RFCNFLBandInUse";
+    }
+    leaf rfcnfl-in-use {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.RFCNFLInUse";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.RFCNFLInUse";
+    }
+    leaf pilot-pn {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.PilotPN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.PilotPN";
+    }
+    leaf pilot-pn-in-use {
+      type uint32 {
+        range "0..511";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.PilotPNInUse";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.PilotPNInUse";
+    }
+    leaf max-fap-tx-power {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.MaxFAPTxPower";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.MaxFAPTxPower";
+    }
+    leaf max-fap-tx-power-in-use {
+      type int32 {
+        range "-400..200";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.MaxFAPTxPowerInUse";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.MaxFAPTxPowerInUse";
+    }
+    leaf pch-pwr-percentage {
+      type uint32 {
+        range "1000..1000000";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.PchPwrPercentage";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.PchPwrPercentage";
+    }
+    leaf pilot-pwr-percentage {
+      type uint32 {
+        range "1000..1000000";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.PilotPwrPercentage";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.PilotPwrPercentage";
+    }
+    leaf sync-pwr-percentage {
+      type uint32 {
+        range "1000..1000000";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.SyncPwrPercentage";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.SyncPwrPercentage";
+    }
+  }
+
+  grouping ran-system-parameters-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.";
+    leaf reg-zone {
+      type uint32 {
+        range "0..4095";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.RegZone";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.RegZone";
+    }
+    leaf total-zones {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.TotalZones";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.TotalZones";
+    }
+    leaf zone-timer {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.ZoneTimer";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.ZoneTimer";
+    }
+    leaf reg-period {
+      type uint32 {
+        range "29..85";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.RegPeriod";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.RegPeriod";
+    }
+    leaf srch-win-a {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.SrchWinA";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.SrchWinA";
+    }
+    leaf srch-win-n {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.SrchWinN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.SrchWinN";
+    }
+    leaf srch-win-r {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.SrchWinR";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.SrchWinR";
+    }
+    leaf nghbr-max-age {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.NghbrMaxAge";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.NghbrMaxAge";
+    }
+    leaf pwr-rep-thresh {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrRepThresh";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrRepThresh";
+    }
+    leaf pwr-rep-frames {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrRepFrames";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrRepFrames";
+    }
+    leaf pwr-thresh-enable {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrThreshEnable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrThreshEnable";
+    }
+    leaf pwr-period-enable {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrPeriodEnable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrPeriodEnable";
+    }
+    leaf pwr-rep-delay {
+      type uint32 {
+        range "0..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrRepDelay";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrRepDelay";
+    }
+    leaf rescan {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.Rescan";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.Rescan";
+    }
+    leaf tadd {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.Tadd";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.Tadd";
+    }
+    leaf tdrop {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.Tdrop";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.Tdrop";
+    }
+    leaf tcomp {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.Tcomp";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.Tcomp";
+    }
+    leaf t-tdrop {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.TTdrop";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.TTdrop";
+    }
+    leaf in-traffic-tadd {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.InTrafficTadd";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.InTrafficTadd";
+    }
+    leaf in-traffic-tdrop {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.InTrafficTdrop";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.InTrafficTdrop";
+    }
+    leaf in-traffic-tcomp {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.InTrafficTcomp";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.InTrafficTcomp";
+    }
+    leaf in-traffic-ttdrop {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.InTrafficTtdrop";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.InTrafficTtdrop";
+    }
+  }
+
+  grouping one-x-redirect-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.Redirect.";
+    leaf redirect-channel-number {
+      type uint32 {
+        range "0..2047";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Redirect.RedirectChannelNumber";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Redirect.RedirectChannelNumber";
+    }
+    leaf redirect-band-class {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Redirect.RedirectBandClass";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Redirect.RedirectBandClass";
+    }
+  }
+
+  grouping one-x-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.";
+    leaf registration-attempts {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RegistrationAttempts";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RegistrationAttempts";
+    }
+    leaf registration-fails {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RegistrationFails";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RegistrationFails";
+    }
+    leaf registrations-blocked {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RegistrationsBlocked";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RegistrationsBlocked";
+    }
+    leaf page-attempts {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.PageAttempts";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.PageAttempts";
+    }
+    leaf page-fails {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.PageFails";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.PageFails";
+    }
+    leaf voice-call-attempts {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.VoiceCallAttempts";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.VoiceCallAttempts";
+    }
+    leaf voice-call-failures {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.VoiceCallFailures";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.VoiceCallFailures";
+    }
+    leaf voice-calls-blocked {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.VoiceCallsBlocked";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.VoiceCallsBlocked";
+    }
+    leaf voice-calls-dropped {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.VoiceCallsDropped";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.VoiceCallsDropped";
+    }
+    leaf data-call-attempts {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.DataCallAttempts";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.DataCallAttempts";
+    }
+    leaf data-call-failures {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.DataCallFailures";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.DataCallFailures";
+    }
+    leaf data-calls-blocked {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.DataCallsBlocked";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.DataCallsBlocked";
+    }
+    leaf data-calls-dropped {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.DataCallsDropped";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.DataCallsDropped";
+    }
+    leaf average-voice-call {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.AverageVoiceCall";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.AverageVoiceCall";
+    }
+    leaf average-data-call {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.AverageDataCall";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.AverageDataCall";
+    }
+    leaf average-session-in-sec {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.AverageSessionInSec";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.AverageSessionInSec";
+    }
+    leaf total-voice-calls {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.TotalVoiceCalls";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.TotalVoiceCalls";
+    }
+    leaf total-data-calls {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.TotalDataCalls";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.TotalDataCalls";
+    }
+    leaf fwd-voice-packet-drop-percentage {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.FwdVoicePacketDropPercentage";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.FwdVoicePacketDropPercentage";
+    }
+    leaf rev-voice-packet-drop-percentage {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RevVoicePacketDropPercentage";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RevVoicePacketDropPercentage";
+    }
+    leaf fwd-avg-data-rate {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.FwdAvgDataRate";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.FwdAvgDataRate";
+    }
+    leaf rev-avg-data-rate {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RevAvgDataRate";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RevAvgDataRate";
+    }
+    leaf bc-index-zero-to-one-transitions {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.BcIndexZeroToOneTransitions";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.BcIndexZeroToOneTransitions";
+    }
+    leaf bc-index-one-to-zero-transitions {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.BcIndexOneToZeroTransitions";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.BcIndexOneToZeroTransitions";
+    }
+  }
+
+  grouping cell-config-lte-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.";
+    leaf tunnel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.TunnelNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.TunnelNumberOfEntries";
+    }
+  }
+
+  grouping lte-epc-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.EPC.";
+    leaf allowed-ciphering-algorithm-list {
+      type enumeration {
+        enum EEA0 {
+          description
+            "Enum Value - EEA0";
+        }
+        enum 128-EEA1 {
+          description
+            "Enum Value - 128-EEA1";
+        }
+        enum 128-EEA2 {
+          description
+            "Enum Value - 128-EEA2";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.AllowedCipheringAlgorithmList";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.AllowedCipheringAlgorithmList";
+    }
+    leaf allowed-integrity-protection-algorithm-list {
+      type enumeration {
+        enum 128-EIA1 {
+          description
+            "Enum Value - 128-EIA1";
+        }
+        enum 128-EIA2 {
+          description
+            "Enum Value - 128-EIA2";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.AllowedIntegrityProtectionAlgorithmList";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.AllowedIntegrityProtectionAlgorithmList";
+    }
+    leaf tac {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.TAC";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.TAC";
+    }
+    leaf eaid {
+      type uint32 {
+        range "0..16777216";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.EAID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.EAID";
+    }
+    leaf max-plmn-list-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.MaxPLMNListEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.MaxPLMNListEntries";
+    }
+    leaf plmn-list-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNListNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNListNumberOfEntries";
+    }
+    leaf max-qo-s-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.MaxQoSEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.MaxQoSEntries";
+    }
+    leaf qo-s-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.QoSNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.QoSNumberOfEntries";
+    }
+  }
+
+  grouping ho-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.";
+    leaf toe-nb-att {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToeNBAtt";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToeNBAtt";
+    }
+    leaf toe-nb-succ {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToeNBSucc";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToeNBSucc";
+    }
+    leaf toe-nb-fail {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToeNBFail";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToeNBFail";
+    }
+    leaf frome-nb-att {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.FromeNBAtt";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.FromeNBAtt";
+    }
+    leaf frome-nb-succ {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.FromeNBSucc";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.FromeNBSucc";
+    }
+    leaf frome-nb-fail {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.FromeNBFail";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.FromeNBFail";
+    }
+    leaf to-utran-att {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToUtranAtt";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToUtranAtt";
+    }
+    leaf to-utran-succ {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToUtranSucc";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToUtranSucc";
+    }
+    leaf to-utran-fail {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToUtranFail";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToUtranFail";
+    }
+    leaf to-geran-att {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToGeranAtt";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToGeranAtt";
+    }
+    leaf to-geran-succ {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToGeranSucc";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToGeranSucc";
+    }
+    leaf to-geran-fail {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToGeranFail";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToGeranFail";
+    }
+  }
+
+  grouping epc-plmn-list-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.Alias";
+    }
+    leaf is-primary {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.IsPrimary";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.IsPrimary";
+    }
+    leaf plmnid {
+      type string {
+        length "min..6";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.PLMNID";
+    }
+    leaf cell-reserved-for-operator-use {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.CellReservedForOperatorUse";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.CellReservedForOperatorUse";
+    }
+  }
+
+  grouping epc-qo-s-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Alias";
+    }
+    leaf qci {
+      type uint32 {
+        range "1..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.QCI";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.QCI";
+    }
+    leaf type {
+      type enumeration {
+        enum GBR {
+          description
+            "Enum Value - GBR";
+        }
+        enum Non-GBR {
+          description
+            "Enum Value - Non-GBR";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Type";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Type";
+    }
+    leaf priority {
+      type uint32 {
+        range "1..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Priority";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Priority";
+    }
+    leaf packet-delay-budget {
+      type uint32 {
+        range "50 | 100 | 150 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | 1000 | 1500 | 2000";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.PacketDelayBudget";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.PacketDelayBudget";
+    }
+  }
+
+  grouping lte-energy-savings-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.EnergySavings.";
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.Enable";
+    }
+    leaf state {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.State";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.State";
+    }
+    leaf not-allowed-time-period-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriodNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriodNumberOfEntries";
+    }
+  }
+
+  grouping energy-savings-activation-candidate-cells-load-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.EnergySavings.ActivationCandidateCellsLoad.";
+    leaf threshold {
+      type uint32 {
+        range "min..100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.ActivationCandidateCellsLoad.Threshold";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.ActivationCandidateCellsLoad.Threshold";
+    }
+    leaf time-duration {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.ActivationCandidateCellsLoad.TimeDuration";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.ActivationCandidateCellsLoad.TimeDuration";
+    }
+  }
+
+  grouping energy-savings-deactivation-candidate-cells-load-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.EnergySavings.DeactivationCandidateCellsLoad.";
+    leaf threshold {
+      type uint32 {
+        range "min..100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.DeactivationCandidateCellsLoad.Threshold";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.DeactivationCandidateCellsLoad.Threshold";
+    }
+    leaf time-duration {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.DeactivationCandidateCellsLoad.TimeDuration";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.DeactivationCandidateCellsLoad.TimeDuration";
+    }
+  }
+
+  grouping energy-savings-not-allowed-time-period-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.Enable";
+    }
+    leaf start-time {
+      type string;
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.StartTime";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.StartTime";
+    }
+    leaf end-time {
+      type string;
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.EndTime";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.EndTime";
+    }
+    leaf days-of-week {
+      type enumeration {
+        enum Monday {
+          description
+            "Enum Value - Monday";
+        }
+        enum Tuesday {
+          description
+            "Enum Value - Tuesday";
+        }
+        enum Wednesday {
+          description
+            "Enum Value - Wednesday";
+        }
+        enum Thursday {
+          description
+            "Enum Value - Thursday";
+        }
+        enum Friday {
+          description
+            "Enum Value - Friday";
+        }
+        enum Saturday {
+          description
+            "Enum Value - Saturday";
+        }
+        enum Sunday {
+          description
+            "Enum Value - Sunday";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.DaysOfWeek";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.DaysOfWeek";
+    }
+  }
+
+  grouping csg-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.";
+    leaf mean-nbr-usr {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.MeanNbrUsr";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.MeanNbrUsr";
+    }
+    leaf att-inbound-mobility {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.AttInboundMobility";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.AttInboundMobility";
+    }
+    leaf succ-inbound-mobility {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.SuccInboundMobility";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.SuccInboundMobility";
+    }
+    leaf failed-inbound-mobility {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.FailedInboundMobility";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.FailedInboundMobility";
+    }
+  }
+
+  grouping ran-cell-restriction-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.";
+    leaf cell-barred {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.CellBarred";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.CellBarred";
+    }
+    leaf cell-reserved-for-operator-use {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.CellReservedForOperatorUse";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.CellReservedForOperatorUse";
+    }
+    leaf barring-for-emergency {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.BarringForEmergency";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.BarringForEmergency";
+    }
+  }
+
+  grouping ran-common-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Common.";
+    leaf cell-identity {
+      type uint32 {
+        range "0..268435455";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Common.CellIdentity";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Common.CellIdentity";
+    }
+  }
+
+  grouping drb-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.";
+    leaf pdcp-sdu-bitrate-dl {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduBitrateDl";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduBitrateDl";
+    }
+    leaf pdcp-sdu-bitrate-ul {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduBitrateUl";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduBitrateUl";
+    }
+    leaf pdcp-sdu-bitrate-dl-max {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduBitrateDlMax";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduBitrateDlMax";
+    }
+    leaf pdcp-sdu-bitrate-ul-max {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduBitrateUlMax";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduBitrateUlMax";
+    }
+    leaf pdcp-sdu-delay-dl {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduDelayDl";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduDelayDl";
+    }
+    leaf pdcp-sdu-drop-rate-dl {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduDropRateDl";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduDropRateDl";
+    }
+    leaf pdcp-sdu-air-loss-rate-dl {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduAirLossRateDl";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduAirLossRateDl";
+    }
+    leaf pdcp-sdu-loss-rate-ul {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduLossRateUl";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduLossRateUl";
+    }
+    leaf ue-active-dl {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.UEActiveDl";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.UEActiveDl";
+    }
+    leaf ue-active-ul {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.UEActiveUl";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.UEActiveUl";
+    }
+  }
+
+  grouping erab-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.";
+    leaf estab-init-att-nbr {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabInitAttNbr";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabInitAttNbr";
+    }
+    leaf estab-init-succ-nbr {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabInitSuccNbr";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabInitSuccNbr";
+    }
+    leaf estab-init-fail-nbr {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabInitFailNbr";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabInitFailNbr";
+    }
+    leaf estab-att-nbr {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabAttNbr";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabAttNbr";
+    }
+    leaf estab-succ-nbr {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabSuccNbr";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabSuccNbr";
+    }
+    leaf estab-fail-nbr {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabFailNbr";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabFailNbr";
+    }
+    leaf rel-enb-nbr-qci {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.RelEnbNbrQCI";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.RelEnbNbrQCI";
+    }
+    leaf rel-enb-nbr-cause {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.RelEnbNbrCause";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.RelEnbNbrCause";
+    }
+    leaf lgw-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGWNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGWNumberOfEntries";
+    }
+  }
+
+  grouping stats-lgw-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf correlation-id {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.CorrelationID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.CorrelationID";
+    }
+    leaf estab-direct-path-lgw-att-nbr {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.EstabDirectPathLGWAttNbr";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.EstabDirectPathLGWAttNbr";
+    }
+    leaf estab-direct-path-lgw-succ-nbr {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.EstabDirectPathLGWSuccNbr";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.EstabDirectPathLGWSuccNbr";
+    }
+    leaf estab-direct-path-lgw-fail-nbr {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.EstabDirectPathLGWFailNbr";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.EstabDirectPathLGWFailNbr";
+    }
+  }
+
+  grouping mac-drx-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.";
+    leaf drx-enabled {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXEnabled";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXEnabled";
+    }
+    leaf on-duration-timer {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.OnDurationTimer";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.OnDurationTimer";
+    }
+    leaf drx-inactivity-timer {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXInactivityTimer";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXInactivityTimer";
+    }
+    leaf drx-retransmission-timer {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXRetransmissionTimer";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXRetransmissionTimer";
+    }
+    leaf long-drx-cycle {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.LongDRXCycle";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.LongDRXCycle";
+    }
+    leaf drx-start-offset {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXStartOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXStartOffset";
+    }
+    leaf short-drx-cycle {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.ShortDRXCycle";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.ShortDRXCycle";
+    }
+    leaf drx-short-cycle-timer {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXShortCycleTimer";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXShortCycleTimer";
+    }
+  }
+
+  grouping mac-rach-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.";
+    leaf number-of-ra-preambles {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.NumberOfRaPreambles";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.NumberOfRaPreambles";
+    }
+    leaf size-of-ra-group-a {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.SizeOfRaGroupA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.SizeOfRaGroupA";
+    }
+    leaf message-size-group-a {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.MessageSizeGroupA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.MessageSizeGroupA";
+    }
+    leaf message-power-offset-group-b {
+      type int32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.MessagePowerOffsetGroupB";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.MessagePowerOffsetGroupB";
+    }
+    leaf power-ramping-step {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.PowerRampingStep";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.PowerRampingStep";
+    }
+    leaf preamble-initial-received-target-power {
+      type int32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.PreambleInitialReceivedTargetPower";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.PreambleInitialReceivedTargetPower";
+    }
+    leaf preamble-trans-max {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.PreambleTransMax";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.PreambleTransMax";
+    }
+    leaf response-window-size {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.ResponseWindowSize";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.ResponseWindowSize";
+    }
+    leaf contention-resolution-timer {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.ContentionResolutionTimer";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.ContentionResolutionTimer";
+    }
+    leaf max-harq-msg3-tx {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.MaxHARQMsg3Tx";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.MaxHARQMsg3Tx";
+    }
+  }
+
+  grouping mac-ulsch-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.";
+    leaf max-harq-tx {
+      type uint32 {
+        range "1..8 | 10 | 12 | 16 | 20 | 24 | 28";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.MaxHARQTx";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.MaxHARQTx";
+    }
+    leaf periodic-bsr-timer {
+      type uint32 {
+        range "0 | 5 | 10 | 16 | 20 | 32 | 40 | 64 | 80 | 128 | 160 | 320 | 640 | 1280 | 2560";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.PeriodicBSRTimer";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.PeriodicBSRTimer";
+    }
+    leaf retx-bsr-timer {
+      type uint32 {
+        range "320 | 640 | 1280 | 2560 | 5120 | 10240";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.RetxBSRTimer";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.RetxBSRTimer";
+    }
+    leaf tti-bundling {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.TTIBundling";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.TTIBundling";
+    }
+  }
+
+  grouping conn-mode-eutra-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.";
+    leaf filter-coefficient-rsrp {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.FilterCoefficientRSRP";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.FilterCoefficientRSRP";
+    }
+    leaf filter-coefficient-rsrq {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.FilterCoefficientRSRQ";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.FilterCoefficientRSRQ";
+    }
+    leaf a1-threshold-rsrp {
+      type uint32 {
+        range "0..97";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A1ThresholdRSRP";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A1ThresholdRSRP";
+    }
+    leaf a1-threshold-rsrq {
+      type uint32 {
+        range "0..34";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A1ThresholdRSRQ";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A1ThresholdRSRQ";
+    }
+    leaf a2-threshold-rsrp {
+      type uint32 {
+        range "0..97";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A2ThresholdRSRP";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A2ThresholdRSRP";
+    }
+    leaf a2-threshold-rsrq {
+      type uint32 {
+        range "0..34";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A2ThresholdRSRQ";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A2ThresholdRSRQ";
+    }
+    leaf a3-offset {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A3Offset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A3Offset";
+    }
+    leaf report-on-leave {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportOnLeave";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportOnLeave";
+    }
+    leaf a4-threshold-rsrp {
+      type uint32 {
+        range "0..97";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A4ThresholdRSRP";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A4ThresholdRSRP";
+    }
+    leaf a4-threshold-rsrq {
+      type uint32 {
+        range "0..34";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A4ThresholdRSRQ";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A4ThresholdRSRQ";
+    }
+    leaf a5-threshold1-rsrp {
+      type uint32 {
+        range "0..97";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A5Threshold1RSRP";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A5Threshold1RSRP";
+    }
+    leaf a5-threshold1-rsrq {
+      type uint32 {
+        range "0..34";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A5Threshold1RSRQ";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A5Threshold1RSRQ";
+    }
+    leaf a5-threshold2-rsrp {
+      type uint32 {
+        range "0..97";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A5Threshold2RSRP";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A5Threshold2RSRP";
+    }
+    leaf a5-threshold2-rsrq {
+      type uint32 {
+        range "0..34";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A5Threshold2RSRQ";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A5Threshold2RSRQ";
+    }
+    leaf hysteresis {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.Hysteresis";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.Hysteresis";
+    }
+    leaf time-to-trigger {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.TimeToTrigger";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.TimeToTrigger";
+    }
+    leaf trigger-quantity {
+      type enumeration {
+        enum RSRP {
+          description
+            "Enum Value - RSRP";
+        }
+        enum RSRQ {
+          description
+            "Enum Value - RSRQ";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.TriggerQuantity";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.TriggerQuantity";
+    }
+    leaf report-quantity {
+      type enumeration {
+        enum SameAsTriggerQuantity {
+          description
+            "Enum Value - SameAsTriggerQuantity";
+        }
+        enum Both {
+          description
+            "Enum Value - Both";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportQuantity";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportQuantity";
+    }
+    leaf max-report-cells {
+      type uint32 {
+        range "1..8";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.MaxReportCells";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.MaxReportCells";
+    }
+    leaf report-interval {
+      type uint32 {
+        range "120 | 240 | 480 | 640 | 1024 | 2048 | 5120 | 10240 | 60000 | 360000 | 720000 | 1800000 | 3600000";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportInterval";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportInterval";
+    }
+    leaf report-amount {
+      type uint32 {
+        range "0..2 | 4 | 8 | 16 | 32 | 64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportAmount";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportAmount";
+    }
+  }
+
+  grouping conn-mode-irat-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.";
+    leaf qoffsett-utra {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.QoffsettUTRA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.QoffsettUTRA";
+    }
+    leaf filter-coefficient-utra {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.FilterCoefficientUTRA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.FilterCoefficientUTRA";
+    }
+    leaf meas-quantity-utrafdd {
+      type enumeration {
+        enum CPICH-RSCP {
+          description
+            "Enum Value - CPICH-RSCP";
+        }
+        enum CPICH-EcN0 {
+          description
+            "Enum Value - CPICH-EcN0";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.MeasQuantityUTRAFDD";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.MeasQuantityUTRAFDD";
+    }
+    leaf b1-threshold-utrarscp {
+      type int32 {
+        range "-5..91";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B1ThresholdUTRARSCP";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B1ThresholdUTRARSCP";
+    }
+    leaf b1-threshold-utra-ec-n0 {
+      type uint32 {
+        range "0..49";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B1ThresholdUTRAEcN0";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B1ThresholdUTRAEcN0";
+    }
+    leaf qoffset-geran {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.QoffsetGERAN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.QoffsetGERAN";
+    }
+    leaf filter-coefficient-geran {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.FilterCoefficientGERAN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.FilterCoefficientGERAN";
+    }
+    leaf b1-threshold-geran {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B1ThresholdGERAN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B1ThresholdGERAN";
+    }
+    leaf qoffset-cdma2000 {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.QoffsetCDMA2000";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.QoffsetCDMA2000";
+    }
+    leaf meas-quantity-cdma2000 {
+      type enumeration {
+        enum PilotStrength {
+          description
+            "Enum Value - PilotStrength";
+        }
+        enum PilotPnPhaseAndPilotStrength {
+          description
+            "Enum Value - PilotPnPhaseAndPilotStrength";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.MeasQuantityCDMA2000";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.MeasQuantityCDMA2000";
+    }
+    leaf b1-threshold-cdma2000 {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B1ThresholdCDMA2000";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B1ThresholdCDMA2000";
+    }
+    leaf b2-threshold2-utrarscp {
+      type int32 {
+        range "-5..91";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B2Threshold2UTRARSCP";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B2Threshold2UTRARSCP";
+    }
+    leaf b2-threshold2-utra-ec-n0 {
+      type uint32 {
+        range "0..49";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B2Threshold2UTRAEcN0";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B2Threshold2UTRAEcN0";
+    }
+    leaf b2-threshold2-geran {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B2Threshold2GERAN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B2Threshold2GERAN";
+    }
+    leaf b2-threshold2-cdma2000 {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B2Threshold2CDMA2000";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B2Threshold2CDMA2000";
+    }
+    leaf hysteresis {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.Hysteresis";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.Hysteresis";
+    }
+    leaf time-to-trigger {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.TimeToTrigger";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.TimeToTrigger";
+    }
+    leaf max-report-cells {
+      type uint32 {
+        range "1..8";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.MaxReportCells";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.MaxReportCells";
+    }
+    leaf report-interval {
+      type uint32 {
+        range "120 | 240 | 480 | 640 | 1024 | 2048 | 5120 | 10240 | 60000 | 360000 | 720000 | 1800000 | 3600000";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.ReportInterval";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.ReportInterval";
+    }
+    leaf report-amount {
+      type uint32 {
+        range "0..2 | 4 | 8 | 16 | 32 | 64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.ReportAmount";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.ReportAmount";
+    }
+  }
+
+  grouping idle-mode-common-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.";
+    leaf qhyst {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.Qhyst";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.Qhyst";
+    }
+    leaf q-hyst-sf-medium {
+      type int32 {
+        range "-6 | -4 | -2 | 0";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.QHystSFMedium";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.QHystSFMedium";
+    }
+    leaf q-hyst-sf-high {
+      type int32 {
+        range "-6 | -4 | -2 | 0";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.QHystSFHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.QHystSFHigh";
+    }
+    leaf t-evaluation {
+      type uint32 {
+        range "30 | 60 | 120 | 180 | 240";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.TEvaluation";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.TEvaluation";
+    }
+    leaf t-hyst-normal {
+      type uint32 {
+        range "30 | 60 | 120 | 180 | 240";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.THystNormal";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.THystNormal";
+    }
+    leaf n-cell-change-medium {
+      type uint32 {
+        range "1..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.NCellChangeMedium";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.NCellChangeMedium";
+    }
+    leaf n-cell-change-high {
+      type uint32 {
+        range "1..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.NCellChangeHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.NCellChangeHigh";
+    }
+  }
+
+  grouping irat-cdma2000-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.";
+    leaf search-window-size {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.SearchWindowSize";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.SearchWindowSize";
+    }
+    leaf t-reselection-cdma2000 {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.TReselectionCDMA2000";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.TReselectionCDMA2000";
+    }
+    leaf t-reselection-cdma2000-sf-medium {
+      type uint32 {
+        range "25 | 50 | 75 | 100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.TReselectionCDMA2000SFMedium";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.TReselectionCDMA2000SFMedium";
+    }
+    leaf t-reselection-cdma2000-sf-high {
+      type uint32 {
+        range "25 | 50 | 75 | 100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.TReselectionCDMA2000SFHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.TReselectionCDMA2000SFHigh";
+    }
+    leaf max-cdma2000-band-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.MaxCDMA2000BandEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.MaxCDMA2000BandEntries";
+    }
+    leaf cdma2000-band-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000BandNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000BandNumberOfEntries";
+    }
+  }
+
+  grouping cdma2000-cdma2000-band-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.Alias";
+    }
+    leaf band-class {
+      type uint32 {
+        range "0..17";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.BandClass";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.BandClass";
+    }
+    leaf cell-reselection-priority {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.CellReselectionPriority";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.CellReselectionPriority";
+    }
+    leaf thresh-x-high {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.ThreshXHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.ThreshXHigh";
+    }
+    leaf thresh-x-low {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.ThreshXLow";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.ThreshXLow";
+    }
+  }
+
+  grouping irat-geran-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.";
+    leaf t-reselection-geran {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.TReselectionGERAN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.TReselectionGERAN";
+    }
+    leaf t-reselection-geransf-medium {
+      type uint32 {
+        range "25 | 50 | 75 | 100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.TReselectionGERANSFMedium";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.TReselectionGERANSFMedium";
+    }
+    leaf t-reselection-geransf-high {
+      type uint32 {
+        range "25 | 50 | 75 | 100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.TReselectionGERANSFHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.TReselectionGERANSFHigh";
+    }
+    leaf max-geran-freq-group-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.MaxGERANFreqGroupEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.MaxGERANFreqGroupEntries";
+    }
+    leaf geran-freq-group-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroupNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroupNumberOfEntries";
+    }
+  }
+
+  grouping geran-geran-freq-group-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.Alias";
+    }
+    leaf band-indicator {
+      type enumeration {
+        enum GSM850 {
+          description
+            "Enum Value - GSM850";
+        }
+        enum GSM900 {
+          description
+            "Enum Value - GSM900";
+        }
+        enum DCS1800 {
+          description
+            "Enum Value - DCS1800";
+        }
+        enum PCS1900 {
+          description
+            "Enum Value - PCS1900";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.BandIndicator";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.BandIndicator";
+    }
+    leaf bccharfcn {
+      type uint32 {
+        range "0..1023";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.BCCHARFCN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.BCCHARFCN";
+    }
+    leaf q-rx-lev-min {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.QRxLevMin";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.QRxLevMin";
+    }
+    leaf cell-reselection-priority {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.CellReselectionPriority";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.CellReselectionPriority";
+    }
+    leaf thresh-x-high {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.ThreshXHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.ThreshXHigh";
+    }
+    leaf thresh-x-low {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.ThreshXLow";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.ThreshXLow";
+    }
+  }
+
+  grouping irat-utra-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.";
+    leaf t-reselection-utra {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.TReselectionUTRA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.TReselectionUTRA";
+    }
+    leaf t-reselection-utrasf-medium {
+      type uint32 {
+        range "25 | 50 | 75 | 100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.TReselectionUTRASFMedium";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.TReselectionUTRASFMedium";
+    }
+    leaf t-reselection-utrasf-high {
+      type uint32 {
+        range "25 | 50 | 75 | 100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.TReselectionUTRASFHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.TReselectionUTRASFHigh";
+    }
+    leaf max-utranfdd-freq-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.MaxUTRANFDDFreqEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.MaxUTRANFDDFreqEntries";
+    }
+    leaf utranfdd-freq-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreqNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreqNumberOfEntries";
+    }
+  }
+
+  grouping utra-utranfdd-freq-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.Alias";
+    }
+    leaf utra-carrier-arfcn {
+      type uint32 {
+        range "0..16383";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.UTRACarrierARFCN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.UTRACarrierARFCN";
+    }
+    leaf q-rx-lev-min {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.QRxLevMin";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.QRxLevMin";
+    }
+    leaf q-qual-min {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.QQualMin";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.QQualMin";
+    }
+    leaf cell-reselection-priority {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.CellReselectionPriority";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.CellReselectionPriority";
+    }
+    leaf thresh-x-high {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.ThreshXHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.ThreshXHigh";
+    }
+    leaf thresh-x-low {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.ThreshXLow";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.ThreshXLow";
+    }
+    leaf p-max-utra {
+      type int32 {
+        range "-50..33";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.PMaxUTRA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.PMaxUTRA";
+    }
+  }
+
+  grouping idle-mode-inter-freq-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.";
+    leaf max-carrier-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.MaxCarrierEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.MaxCarrierEntries";
+    }
+    leaf carrier-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.CarrierNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.CarrierNumberOfEntries";
+    }
+  }
+
+  grouping inter-freq-carrier-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.Alias";
+    }
+    leaf eutra-carrier-arfcn {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.EUTRACarrierARFCN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.EUTRACarrierARFCN";
+    }
+    leaf q-rx-lev-min-si-b5 {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.QRxLevMinSIB5";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.QRxLevMinSIB5";
+    }
+    leaf q-offset-freq {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.QOffsetFreq";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.QOffsetFreq";
+    }
+    leaf t-reselection-eutra {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.TReselectionEUTRA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.TReselectionEUTRA";
+    }
+    leaf cell-reselection-priority {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.CellReselectionPriority";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.CellReselectionPriority";
+    }
+    leaf thresh-x-high {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.ThreshXHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.ThreshXHigh";
+    }
+    leaf thresh-x-low {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.ThreshXLow";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.ThreshXLow";
+    }
+    leaf p-max {
+      type int32 {
+        range "-30..33";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.PMax";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.PMax";
+    }
+    leaf t-reselection-eutrasf-medium {
+      type uint32 {
+        range "25 | 50 | 75 | 100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.TReselectionEUTRASFMedium";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.TReselectionEUTRASFMedium";
+    }
+    leaf t-reselection-eutrasf-high {
+      type uint32 {
+        range "25 | 50 | 75 | 100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.TReselectionEUTRASFHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.TReselectionEUTRASFHigh";
+    }
+  }
+
+  grouping idle-mode-intra-freq-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.";
+    leaf q-rx-lev-min-si-b1 {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.QRxLevMinSIB1";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.QRxLevMinSIB1";
+    }
+    leaf q-rx-lev-min-si-b3 {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.QRxLevMinSIB3";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.QRxLevMinSIB3";
+    }
+    leaf q-rx-lev-min-offset {
+      type uint32 {
+        range "1..8";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.QRxLevMinOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.QRxLevMinOffset";
+    }
+    leaf s-intra-search {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.SIntraSearch";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.SIntraSearch";
+    }
+    leaf t-reselection-eutra {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.TReselectionEUTRA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.TReselectionEUTRA";
+    }
+    leaf s-non-intra-search {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.SNonIntraSearch";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.SNonIntraSearch";
+    }
+    leaf cell-reselection-priority {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.CellReselectionPriority";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.CellReselectionPriority";
+    }
+    leaf p-max {
+      type int32 {
+        range "-30..33";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.PMax";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.PMax";
+    }
+    leaf thresh-serving-low {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.ThreshServingLow";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.ThreshServingLow";
+    }
+    leaf t-reselection-eutrasf-medium {
+      type uint32 {
+        range "25 | 50 | 75 | 100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.TReselectionEUTRASFMedium";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.TReselectionEUTRASFMedium";
+    }
+    leaf t-reselection-eutrasf-high {
+      type uint32 {
+        range "25 | 50 | 75 | 100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.TReselectionEUTRASFHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.TReselectionEUTRASFHigh";
+    }
+  }
+
+  grouping lte-ran-neighbor-list-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborList.";
+    leaf max-lte-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.MaxLTECellEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.MaxLTECellEntries";
+    }
+    leaf lte-cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECellNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECellNumberOfEntries";
+    }
+  }
+
+  grouping neighbor-list-inter-rat-cell-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.";
+    leaf max-umts-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.MaxUMTSEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.MaxUMTSEntries";
+    }
+    leaf max-gsm-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.MaxGSMEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.MaxGSMEntries";
+    }
+    leaf max-cdma2000-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.MaxCDMA2000Entries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.MaxCDMA2000Entries";
+    }
+    leaf umts-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTSNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTSNumberOfEntries";
+    }
+    leaf gsm-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSMNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSMNumberOfEntries";
+    }
+    leaf cdma2000-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000NumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000NumberOfEntries";
+    }
+  }
+
+  grouping inter-rat-cell-cdma2000-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.Alias";
+    }
+    leaf must-include {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.MustInclude";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.MustInclude";
+    }
+    leaf band-class {
+      type uint32 {
+        range "0..17";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.BandClass";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.BandClass";
+    }
+    leaf arfcn {
+      type uint32 {
+        range "0..2047";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.ARFCN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.ARFCN";
+    }
+    leaf pn-offset {
+      type uint32 {
+        range "0..511";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.PNOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.PNOffset";
+    }
+    leaf type {
+      type enumeration {
+        enum 1xRTT {
+          description
+            "Enum Value - 1xRTT";
+        }
+        enum HRPD {
+          description
+            "Enum Value - HRPD";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.Type";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.Type";
+    }
+    leaf cid {
+      type string {
+        length "min..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.CID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.CID";
+    }
+  }
+
+  grouping inter-rat-cell-gsm-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.Alias";
+    }
+    leaf must-include {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.MustInclude";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.MustInclude";
+    }
+    leaf plmnid {
+      type string {
+        length "min..6";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.PLMNID";
+    }
+    leaf lac {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.LAC";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.LAC";
+    }
+    leaf bsic {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.BSIC";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.BSIC";
+    }
+    leaf ci {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.CI";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.CI";
+    }
+    leaf band-indicator {
+      type enumeration {
+        enum GSM850 {
+          description
+            "Enum Value - GSM850";
+        }
+        enum GSM900 {
+          description
+            "Enum Value - GSM900";
+        }
+        enum DCS1800 {
+          description
+            "Enum Value - DCS1800";
+        }
+        enum PCS1900 {
+          description
+            "Enum Value - PCS1900";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.BandIndicator";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.BandIndicator";
+    }
+    leaf bccharfcn {
+      type uint32 {
+        range "0..1023";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.BCCHARFCN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.BCCHARFCN";
+    }
+  }
+
+  grouping inter-rat-cell-umts-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.Alias";
+    }
+    leaf must-include {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.MustInclude";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.MustInclude";
+    }
+    leaf plmnid {
+      type string {
+        length "min..6";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.PLMNID";
+    }
+    leaf rncid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.RNCID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.RNCID";
+    }
+    leaf cid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.CID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.CID";
+    }
+    leaf lac {
+      type uint32 {
+        range "1..65533 | 65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.LAC";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.LAC";
+    }
+    leaf rac {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.RAC";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.RAC";
+    }
+    leaf ura {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.URA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.URA";
+    }
+    leaf uarfcnul {
+      type uint32 {
+        range "0..16383";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.UARFCNUL";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.UARFCNUL";
+    }
+    leaf uarfcndl {
+      type uint32 {
+        range "0..16383";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.UARFCNDL";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.UARFCNDL";
+    }
+    leaf pcpich-scrambling-code {
+      type uint32 {
+        range "0..511";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.PCPICHScramblingCode";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.PCPICHScramblingCode";
+    }
+    leaf pcpich-tx-power {
+      type int32 {
+        range "-100..500";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.PCPICHTxPower";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.PCPICHTxPower";
+    }
+  }
+
+  grouping neighbor-list-lte-cell-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.Alias";
+    }
+    leaf must-include {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.MustInclude";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.MustInclude";
+    }
+    leaf plmnid {
+      type string {
+        length "min..6";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.PLMNID";
+    }
+    leaf cid {
+      type uint32 {
+        range "0..268435455";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.CID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.CID";
+    }
+    leaf eutra-carrier-arfcn {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.EUTRACarrierARFCN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.EUTRACarrierARFCN";
+    }
+    leaf phy-cell-id {
+      type uint32 {
+        range "0..503";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.PhyCellID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.PhyCellID";
+    }
+    leaf q-offset {
+      type int32 {
+        range "-24..-8 | -6..6 | 8..24";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.QOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.QOffset";
+    }
+    leaf cio {
+      type int32 {
+        range "-24..-8 | -6..6 | 8..24";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.CIO";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.CIO";
+    }
+    leaf rs-tx-power {
+      type int32 {
+        range "-60..50";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.RSTxPower";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.RSTxPower";
+    }
+    leaf blacklisted {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.Blacklisted";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.Blacklisted";
+    }
+  }
+
+  grouping ran-neighbor-list-in-use-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.";
+    leaf max-lte-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.MaxLTECellEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.MaxLTECellEntries";
+    }
+    leaf lte-cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECellNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECellNumberOfEntries";
+    }
+  }
+
+  grouping neighbor-list-in-use-inter-rat-cell-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.";
+    leaf max-umts-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.MaxUMTSEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.MaxUMTSEntries";
+    }
+    leaf max-gsm-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.MaxGSMEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.MaxGSMEntries";
+    }
+    leaf max-cdma2000-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.MaxCDMA2000Entries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.MaxCDMA2000Entries";
+    }
+    leaf umts-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTSNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTSNumberOfEntries";
+    }
+    leaf gsm-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSMNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSMNumberOfEntries";
+    }
+    leaf cdma2000-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000NumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000NumberOfEntries";
+    }
+  }
+
+  grouping neighbor-list-in-use-inter-rat-cell-cdma2000-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf band-class {
+      type uint32 {
+        range "0..17";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.BandClass";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.BandClass";
+    }
+    leaf arfcn {
+      type uint32 {
+        range "0..2047";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.ARFCN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.ARFCN";
+    }
+    leaf pn-offset {
+      type uint32 {
+        range "0..511";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.PNOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.PNOffset";
+    }
+    leaf type {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.Type";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.Type";
+    }
+    leaf cid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.CID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.CID";
+    }
+  }
+
+  grouping neighbor-list-in-use-inter-rat-cell-gsm-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf plmnid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.PLMNID";
+    }
+    leaf lac {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.LAC";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.LAC";
+    }
+    leaf bsic {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BSIC";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BSIC";
+    }
+    leaf ci {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.CI";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.CI";
+    }
+    leaf band-indicator {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BandIndicator";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BandIndicator";
+    }
+    leaf bccharfcn {
+      type uint32 {
+        range "0..1023";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BCCHARFCN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BCCHARFCN";
+    }
+  }
+
+  grouping neighbor-list-in-use-inter-rat-cell-umts-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf plmnid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.PLMNID";
+    }
+    leaf rncid {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.RNCID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.RNCID";
+    }
+    leaf cid {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.CID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.CID";
+    }
+    leaf lac {
+      type uint32 {
+        range "1..65533 | 65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.LAC";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.LAC";
+    }
+    leaf rac {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.RAC";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.RAC";
+    }
+    leaf ura {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.URA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.URA";
+    }
+    leaf uarfcnul {
+      type uint32 {
+        range "0..16383";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.UARFCNUL";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.UARFCNUL";
+    }
+    leaf uarfcndl {
+      type uint32 {
+        range "0..16383";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.UARFCNDL";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.UARFCNDL";
+    }
+    leaf pcpich-scrambling-code {
+      type uint32 {
+        range "0..511";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.PCPICHScramblingCode";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.PCPICHScramblingCode";
+    }
+    leaf pcpich-tx-power {
+      type int32 {
+        range "-100..500";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.PCPICHTxPower";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.PCPICHTxPower";
+    }
+  }
+
+  grouping neighbor-list-in-use-lte-cell-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf plmnid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.PLMNID";
+    }
+    leaf cid {
+      type uint32 {
+        range "0..268435455";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.CID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.CID";
+    }
+    leaf eutra-carrier-arfcn {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.EUTRACarrierARFCN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.EUTRACarrierARFCN";
+    }
+    leaf phy-cell-id {
+      type uint32 {
+        range "0..503";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.PhyCellID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.PhyCellID";
+    }
+    leaf q-offset {
+      type int32 {
+        range "-24..-8 | -6..6 | 8..24";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.QOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.QOffset";
+    }
+    leaf cio {
+      type int32 {
+        range "-24..-8 | -6..6 | 8..24";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.CIO";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.CIO";
+    }
+    leaf rs-tx-power {
+      type int32 {
+        range "-60..50";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.RSTxPower";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.RSTxPower";
+    }
+    leaf blacklisted {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.Blacklisted";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.Blacklisted";
+    }
+  }
+
+  grouping phy-antenna-info-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.AntennaInfo.";
+    leaf antenna-ports-count {
+      type uint32 {
+        range "1 | 2 | 4";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.AntennaInfo.AntennaPortsCount";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.AntennaInfo.AntennaPortsCount";
+    }
+  }
+
+  grouping phy-mbsfn-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.";
+    leaf neigh-cell-config {
+      type uint32 {
+        range "0..3";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.NeighCellConfig";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.NeighCellConfig";
+    }
+    leaf max-sf-config-list-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.MaxSFConfigListEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.MaxSFConfigListEntries";
+    }
+    leaf sf-config-list-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigListNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigListNumberOfEntries";
+    }
+  }
+
+  grouping mbsfn-sf-config-list-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.Alias";
+    }
+    leaf sync-stratum-id {
+      type uint32 {
+        range "1..8";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.SyncStratumID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.SyncStratumID";
+    }
+    leaf radio-frame-allocation-period {
+      type uint32 {
+        range "1..2 | 4 | 8 | 16 | 32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.RadioFrameAllocationPeriod";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.RadioFrameAllocationPeriod";
+    }
+    leaf radioframe-allocation-offset {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.RadioframeAllocationOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.RadioframeAllocationOffset";
+    }
+    leaf radio-frame-allocation-size {
+      type uint32 {
+        range "1 | 4";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.RadioFrameAllocationSize";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.RadioFrameAllocationSize";
+    }
+    leaf sub-frame-allocations {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.SubFrameAllocations";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.SubFrameAllocations";
+    }
+  }
+
+  grouping phy-pdsch-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.PDSCH.";
+    leaf pb {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PDSCH.Pb";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PDSCH.Pb";
+    }
+    leaf pa {
+      type int32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PDSCH.Pa";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PDSCH.Pa";
+    }
+  }
+
+  grouping phy-prach-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.";
+    leaf root-sequence-index {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.RootSequenceIndex";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.RootSequenceIndex";
+    }
+    leaf configuration-index {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.ConfigurationIndex";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.ConfigurationIndex";
+    }
+    leaf high-speed-flag {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.HighSpeedFlag";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.HighSpeedFlag";
+    }
+    leaf zero-correlation-zone-config {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.ZeroCorrelationZoneConfig";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.ZeroCorrelationZoneConfig";
+    }
+    leaf freq-offset {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.FreqOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.FreqOffset";
+    }
+  }
+
+  grouping phy-prs-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.";
+    leaf num-prs-resource-blocks {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.NumPRSResourceBlocks";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.NumPRSResourceBlocks";
+    }
+    leaf prs-configuration-index {
+      type uint32 {
+        range "0..4095";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.PRSConfigurationIndex";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.PRSConfigurationIndex";
+    }
+    leaf num-consecutive-prs-subfames {
+      type uint32 {
+        range "1..2 | 4 | 6";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.NumConsecutivePRSSubfames";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.NumConsecutivePRSSubfames";
+    }
+  }
+
+  grouping phy-pucch-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.";
+    leaf delta-pucch-shift {
+      type enumeration {
+        enum ds1 {
+          description
+            "Enum Value - ds1";
+        }
+        enum ds2 {
+          description
+            "Enum Value - ds2";
+        }
+        enum ds3 {
+          description
+            "Enum Value - ds3";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.DeltaPUCCHShift";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.DeltaPUCCHShift";
+    }
+    leaf nrbcqi {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.NRBCQI";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.NRBCQI";
+    }
+    leaf ncsan {
+      type uint32 {
+        range "0..7";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.NCSAN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.NCSAN";
+    }
+    leaf n1-pucchan {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.N1PUCCHAN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.N1PUCCHAN";
+    }
+    leaf cqipucch-resource-index {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.CQIPUCCHResourceIndex";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.CQIPUCCHResourceIndex";
+    }
+    leaf k {
+      type uint32 {
+        range "1..4";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.K";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.K";
+    }
+  }
+
+  grouping phy-pusch-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.";
+    leaf nsb {
+      type uint32 {
+        range "1..4";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.NSB";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.NSB";
+    }
+    leaf hopping-mode {
+      type enumeration {
+        enum InterSubFrame {
+          description
+            "Enum Value - InterSubFrame";
+        }
+        enum IntraAndInterSubFrame {
+          description
+            "Enum Value - IntraAndInterSubFrame";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.HoppingMode";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.HoppingMode";
+    }
+    leaf hopping-offset {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.HoppingOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.HoppingOffset";
+    }
+    leaf enable64-qam {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.Enable64QAM";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.Enable64QAM";
+    }
+  }
+
+  grouping pusch-ulrs-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.";
+    leaf group-hopping-enabled {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.GroupHoppingEnabled";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.GroupHoppingEnabled";
+    }
+    leaf group-assignment-pusch {
+      type uint32 {
+        range "0..29";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.GroupAssignmentPUSCH";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.GroupAssignmentPUSCH";
+    }
+    leaf sequence-hopping-enabled {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.SequenceHoppingEnabled";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.SequenceHoppingEnabled";
+    }
+    leaf cyclic-shift {
+      type uint32 {
+        range "0..7";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.CyclicShift";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.CyclicShift";
+    }
+  }
+
+  grouping phy-srs-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.";
+    leaf srs-enabled {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.SRSEnabled";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.SRSEnabled";
+    }
+    leaf srs-bandwidth-config {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.SRSBandwidthConfig";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.SRSBandwidthConfig";
+    }
+    leaf srs-max-up-pts {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.SRSMaxUpPTS";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.SRSMaxUpPTS";
+    }
+    leaf ack-nack-srs-simultaneous-transmission {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.AckNackSRSSimultaneousTransmission";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.AckNackSRSSimultaneousTransmission";
+    }
+  }
+
+  grouping phy-tdd-frame-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.TDDFrame.";
+    leaf sub-frame-assignment {
+      type uint32 {
+        range "0..6";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.TDDFrame.SubFrameAssignment";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.TDDFrame.SubFrameAssignment";
+    }
+    leaf special-subframe-patterns {
+      type uint32 {
+        range "0..8";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.TDDFrame.SpecialSubframePatterns";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.TDDFrame.SpecialSubframePatterns";
+    }
+  }
+
+  grouping phy-ul-power-control-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.";
+    leaf p0-nominal-pusch {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.P0NominalPUSCH";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.P0NominalPUSCH";
+    }
+    leaf alpha {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.Alpha";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.Alpha";
+    }
+    leaf p0-nominal-pucch {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.P0NominalPUCCH";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.P0NominalPUCCH";
+    }
+    leaf delta-fpucch-format1 {
+      type int32 {
+        range "-2 | 0 | 2";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat1";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat1";
+    }
+    leaf delta-fpucch-format1b {
+      type uint32 {
+        range "1 | 3 | 5";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat1b";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat1b";
+    }
+    leaf delta-fpucch-format2 {
+      type int32 {
+        range "-2 | 0..2";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat2";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat2";
+    }
+    leaf delta-fpucch-format2a {
+      type int32 {
+        range "-2 | 0 | 2";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat2a";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat2a";
+    }
+    leaf delta-fpucch-format2b {
+      type int32 {
+        range "-2 | 0 | 2";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat2b";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat2b";
+    }
+    leaf delta-preamble-msg3 {
+      type int32 {
+        range "-1..6";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaPreambleMsg3";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaPreambleMsg3";
+    }
+  }
+
+  grouping lte-ran-rf-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.RF.";
+    leaf earfcndl {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.EARFCNDL";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.EARFCNDL";
+    }
+    leaf earfcnul {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.EARFCNUL";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.EARFCNUL";
+    }
+    leaf freq-band-indicator {
+      type uint32 {
+        range "1..40";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.FreqBandIndicator";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.FreqBandIndicator";
+    }
+    leaf dl-bandwidth {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.DLBandwidth";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.DLBandwidth";
+    }
+    leaf ul-bandwidth {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.ULBandwidth";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.ULBandwidth";
+    }
+    leaf reference-signal-power {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.ReferenceSignalPower";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.ReferenceSignalPower";
+    }
+    leaf phy-cell-id {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.PhyCellID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.PhyCellID";
+    }
+    leaf psch-power-offset {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.PSCHPowerOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.PSCHPowerOffset";
+    }
+    leaf ssch-power-offset {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.SSCHPowerOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.SSCHPowerOffset";
+    }
+    leaf pbch-power-offset {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.PBCHPowerOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.PBCHPowerOffset";
+    }
+  }
+
+  grouping rlc-sr-b1-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.";
+    leaf default-configuration {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.DefaultConfiguration";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.DefaultConfiguration";
+    }
+    leaf t-poll-retransmit {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.TPollRetransmit";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.TPollRetransmit";
+    }
+    leaf poll-pdu {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.PollPDU";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.PollPDU";
+    }
+    leaf poll-byte {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.PollByte";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.PollByte";
+    }
+    leaf max-retx-threshold {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.MaxRetxThreshold";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.MaxRetxThreshold";
+    }
+    leaf t-reordering {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.TReordering";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.TReordering";
+    }
+    leaf t-status-prohibit {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.TStatusProhibit";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.TStatusProhibit";
+    }
+  }
+
+  grouping rlc-sr-b2-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.";
+    leaf default-configuration {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.DefaultConfiguration";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.DefaultConfiguration";
+    }
+    leaf t-poll-retransmit {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.TPollRetransmit";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.TPollRetransmit";
+    }
+    leaf poll-pdu {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.PollPDU";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.PollPDU";
+    }
+    leaf poll-byte {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.PollByte";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.PollByte";
+    }
+    leaf max-retx-threshold {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.MaxRetxThreshold";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.MaxRetxThreshold";
+    }
+    leaf t-reordering {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.TReordering";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.TReordering";
+    }
+    leaf t-status-prohibit {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.TStatusProhibit";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.TStatusProhibit";
+    }
+  }
+
+  grouping rrc-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.RRC.Stats.";
+    leaf att-conn-estab {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRC.Stats.AttConnEstab";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRC.Stats.AttConnEstab";
+    }
+    leaf fail-conn-estab {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRC.Stats.FailConnEstab";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRC.Stats.FailConnEstab";
+    }
+    leaf succ-conn-estab {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRC.Stats.SuccConnEstab";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRC.Stats.SuccConnEstab";
+    }
+  }
+
+  grouping ran-rrc-timers-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.";
+    leaf t300 {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T300";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T300";
+    }
+    leaf t301 {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T301";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T301";
+    }
+    leaf t302 {
+      type uint32 {
+        range "100 | 200 | 300 | 400 | 600 | 1000 | 1500 | 2000";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T302";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T302";
+    }
+    leaf t304-eutra {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T304EUTRA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T304EUTRA";
+    }
+    leaf t304-irat {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T304IRAT";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T304IRAT";
+    }
+    leaf t310 {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T310";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T310";
+    }
+    leaf t311 {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T311";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T311";
+    }
+    leaf t320 {
+      type uint32 {
+        range "5 | 10 | 20 | 30 | 60 | 120 | 180";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T320";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T320";
+    }
+    leaf n310 {
+      type uint32 {
+        range "1..4 | 6 | 8 | 10 | 20";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.N310";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.N310";
+    }
+    leaf n311 {
+      type uint32 {
+        range "1..6 | 8 | 10";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.N311";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.N311";
+    }
+  }
+
+  grouping rru-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.RRU.Stats.";
+    leaf prb-tot-dl {
+      type uint32 {
+        range "0..100";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRU.Stats.PrbTotDl";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRU.Stats.PrbTotDl";
+    }
+    leaf prb-tot-ul {
+      type uint32 {
+        range "0..100";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRU.Stats.PrbTotUl";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRU.Stats.PrbTotUl";
+    }
+  }
+
+  grouping ran-s1-ap-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.S1AP.";
+    leaf t-reloc-prep {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.S1AP.TRelocPrep";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.S1AP.TRelocPrep";
+    }
+    leaf t-reloc-overall {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.S1AP.TRelocOverall";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.S1AP.TRelocOverall";
+    }
+  }
+
+  grouping ran-s1-u-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.S1U.";
+    leaf gtpu-echo-interval {
+      type uint32 {
+        range "0..60";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.S1U.GTPUEchoInterval";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.S1U.GTPUEchoInterval";
+    }
+  }
+
+  grouping lte-tunnel-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.Tunnel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.Tunnel.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.Tunnel.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.Tunnel.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.Tunnel.{i}.Alias";
+    }
+    leaf tunnel-ref {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.Tunnel.{i}.TunnelRef";
+      reference
+        "FAPService.{i}.CellConfig.LTE.Tunnel.{i}.TunnelRef";
+    }
+    leaf plmnid {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.Tunnel.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.Tunnel.{i}.PLMNID";
+    }
+  }
+
+  grouping cell-config-umts-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.";
+    leaf tunnel-instance {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.TunnelInstance";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.TunnelInstance";
+    }
+  }
+
+  grouping umts-cn-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.CN.";
+    leaf plmn-type {
+      type enumeration {
+        enum GSM-MAP {
+          description
+            "Enum Value - GSM-MAP";
+        }
+        enum ANSI-41 {
+          description
+            "Enum Value - ANSI-41";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PLMNType";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PLMNType";
+    }
+    leaf plmnid {
+      type string {
+        length "min..6";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PLMNID";
+    }
+    leaf equiv-plmnid {
+      type string {
+        length "min..6";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.EquivPLMNID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.EquivPLMNID";
+    }
+    leaf sac {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.SAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.SAC";
+    }
+    leaf broadcast-sac {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.BroadcastSAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.BroadcastSAC";
+    }
+    leaf lacrac {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.LACRAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.LACRAC";
+    }
+    leaf lac-in-use {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.LACInUse";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.LACInUse";
+    }
+    leaf rac-in-use {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.RACInUse";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.RACInUse";
+    }
+  }
+
+  grouping cn-cs-domain-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.CN.CSDomain.";
+    leaf t3212 {
+      type uint32 {
+        range "0..91800";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.T3212";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.T3212";
+    }
+    leaf imsi-attach-detach-enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.IMSIAttachDetachEnable";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.IMSIAttachDetachEnable";
+    }
+  }
+
+  grouping hho-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.";
+    leaf att3-g-macro-to-hnb-csho {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.Att3GMacroToHnbCSHO";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.Att3GMacroToHnbCSHO";
+    }
+    leaf succ3-g-macro-to-hnb-csho {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.Succ3GMacroToHnbCSHO";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.Succ3GMacroToHnbCSHO";
+    }
+    leaf att2-g-macro-to-hnb-csho {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.Att2GMacroToHnbCSHO";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.Att2GMacroToHnbCSHO";
+    }
+    leaf succ2-g-macro-to-hnb-csho {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.Succ2GMacroToHnbCSHO";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.Succ2GMacroToHnbCSHO";
+    }
+  }
+
+  grouping rab-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.";
+    leaf att-estab-cs {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.AttEstabCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.AttEstabCS";
+    }
+    leaf fail-estab-cs {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.FailEstabCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.FailEstabCS";
+    }
+    leaf succ-estab-cs {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.SuccEstabCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.SuccEstabCS";
+    }
+    leaf rel-drop-cs {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.RelDropCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.RelDropCS";
+    }
+  }
+
+  grouping cn-hho-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.CN.HHO.Stats.";
+    leaf succ-hnb-umts-intra-freq {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.HHO.Stats.SuccHnbUmtsIntraFreq";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.HHO.Stats.SuccHnbUmtsIntraFreq";
+    }
+    leaf att-hnb-umts-intra-freq {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.HHO.Stats.AttHnbUmtsIntraFreq";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.HHO.Stats.AttHnbUmtsIntraFreq";
+    }
+    leaf att-hnb-umts-inter-freq {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.HHO.Stats.AttHnbUmtsInterFreq";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.HHO.Stats.AttHnbUmtsInterFreq";
+    }
+  }
+
+  grouping cn-ps-domain-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.CN.PSDomain.";
+    leaf network-mode-operation-combined {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.NetworkModeOperationCombined";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.NetworkModeOperationCombined";
+    }
+  }
+
+  grouping ps-domain-rab-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.";
+    leaf att-estab-ps {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.AttEstabPS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.AttEstabPS";
+    }
+    leaf succ-estab-ps {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.SuccEstabPS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.SuccEstabPS";
+    }
+    leaf fail-estab-ps {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.FailEstabPS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.FailEstabPS";
+    }
+    leaf rel-drop-ps {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.RelDropPS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.RelDropPS";
+    }
+    leaf ul-num-user-bits-edch {
+      type uint64;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.ULNumUserBitsEDCH";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.ULNumUserBitsEDCH";
+    }
+    leaf ul-num-user-bits64-k {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.ULNumUserBits64K";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.ULNumUserBits64K";
+    }
+    leaf ul-num-user-bits128-k {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.ULNumUserBits128K";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.ULNumUserBits128K";
+    }
+    leaf ul-num-user-bits384-k {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.ULNumUserBits384K";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.ULNumUserBits384K";
+    }
+    leaf dl-num-user-bits-hsdpa {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.DLNumUserBitsHSDPA";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.DLNumUserBitsHSDPA";
+    }
+    leaf dl-num-user-bits64-k {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.DLNumUserBits64K";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.DLNumUserBits64K";
+    }
+    leaf dl-num-user-bits128-k {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.DLNumUserBits128K";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.DLNumUserBits128K";
+    }
+    leaf dl-num-user-bits384-k {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.DLNumUserBits384K";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.DLNumUserBits384K";
+    }
+    leaf lgw-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGWNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGWNumberOfEntries";
+    }
+  }
+
+  grouping rab-stats-lgw-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf correlation-id {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.CorrelationID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.CorrelationID";
+    }
+    leaf estab-direct-path-lgw-att-nbr {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.EstabDirectPathLGWAttNbr";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.EstabDirectPathLGWAttNbr";
+    }
+    leaf estab-direct-path-lgw-succ-nbr {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.EstabDirectPathLGWSuccNbr";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.EstabDirectPathLGWSuccNbr";
+    }
+    leaf estab-direct-path-lgw-fail-nbr {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.EstabDirectPathLGWFailNbr";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.EstabDirectPathLGWFailNbr";
+    }
+  }
+
+  grouping umts-rab-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAB.";
+    leaf rab-succ-estab-cs {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABSuccEstabCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABSuccEstabCS";
+    }
+    leaf rab-fail-estab-cs {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABFailEstabCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABFailEstabCS";
+    }
+    leaf rab-succ-estab-ps {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABSuccEstabPS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABSuccEstabPS";
+    }
+    leaf rab-fail-estab-ps {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABFailEstabPS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABFailEstabPS";
+    }
+    leaf rabcs-setup-time-mean {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABCSSetupTimeMean";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABCSSetupTimeMean";
+    }
+    leaf rabcs-setup-time-max {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABCSSetupTimeMax";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABCSSetupTimeMax";
+    }
+    leaf rabps-setup-time-mean {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABPSSetupTimeMean";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABPSSetupTimeMean";
+    }
+    leaf rabps-setup-time-max {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABPSSetupTimeMax";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABPSSetupTimeMax";
+    }
+    leaf fail-ho {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAB.FailHO";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAB.FailHO";
+    }
+    leaf succ-ho {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAB.SuccHO";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAB.SuccHO";
+    }
+  }
+
+  grouping umts-ran-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.";
+    leaf ura-list {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.URAList";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.URAList";
+    }
+    leaf ura-in-use {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.URAInUse";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.URAInUse";
+    }
+    leaf rncid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RNCID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RNCID";
+    }
+    leaf cell-id {
+      type uint32 {
+        range "min..268435455";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellID";
+    }
+    leaf t-rat-c {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.TRatC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.TRatC";
+    }
+    leaf t-raf-c {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.TRafC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.TRafC";
+    }
+    leaf n-raf-c {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NRafC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NRafC";
+    }
+    leaf tig-or {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.TigOR";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.TigOR";
+    }
+    leaf tin-tr {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.TinTR";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.TinTR";
+    }
+    leaf t-data-fwd {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.TDataFwd";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.TDataFwd";
+    }
+    leaf t-reloc-prep {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.TRelocPrep";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.TRelocPrep";
+    }
+    leaf t-reloc-overall {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.TRelocOverall";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.TRelocOverall";
+    }
+    leaf hnbid-realm {
+      type string {
+        length "min..182";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.HNBIDRealm";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.HNBIDRealm";
+    }
+    leaf hs-flag {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.HSFlag";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.HSFlag";
+    }
+    leaf hs-enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.HSEnable";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.HSEnable";
+    }
+    leaf num-of-hspdsc-hs {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NumOfHSPDSCHs";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NumOfHSPDSCHs";
+    }
+    leaf num-of-hsscc-hs {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NumOfHSSCCHs";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NumOfHSSCCHs";
+    }
+  }
+
+  grouping umts-ran-csg-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.CSG.";
+    leaf csg-indicator {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGIndicator";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGIndicator";
+    }
+    leaf uarfcndl-list {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CSG.UARFCNDLList";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CSG.UARFCNDLList";
+    }
+  }
+
+  grouping csg-csgpsc-split-info-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.";
+    leaf start-psc-range1-coefficient {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.StartPSCRange1Coefficient";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.StartPSCRange1Coefficient";
+    }
+    leaf number-of-ps-cs {
+      type enumeration {
+        enum 5 {
+          description
+            "Enum Value - 5";
+        }
+        enum 10 {
+          description
+            "Enum Value - 10";
+        }
+        enum 15 {
+          description
+            "Enum Value - 15";
+        }
+        enum 20 {
+          description
+            "Enum Value - 20";
+        }
+        enum 30 {
+          description
+            "Enum Value - 30";
+        }
+        enum 40 {
+          description
+            "Enum Value - 40";
+        }
+        enum 50 {
+          description
+            "Enum Value - 50";
+        }
+        enum 64 {
+          description
+            "Enum Value - 64";
+        }
+        enum 80 {
+          description
+            "Enum Value - 80";
+        }
+        enum 120 {
+          description
+            "Enum Value - 120";
+        }
+        enum 160 {
+          description
+            "Enum Value - 160";
+        }
+        enum 256 {
+          description
+            "Enum Value - 256";
+        }
+        enum alltherest {
+          description
+            "Enum Value - alltherest";
+        }
+        enum spare3 {
+          description
+            "Enum Value - spare3";
+        }
+        enum spare2 {
+          description
+            "Enum Value - spare2";
+        }
+        enum spare1 {
+          description
+            "Enum Value - spare1";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs";
+    }
+    leaf psc-range2-offset {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.PSCRange2Offset";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.PSCRange2Offset";
+    }
+  }
+
+  grouping umts-ran-cell-restriction-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.";
+    leaf cell-barred {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.CellBarred";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.CellBarred";
+    }
+    leaf intra-freq-cell-reselection-indicator {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.IntraFreqCellReselectionIndicator";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.IntraFreqCellReselectionIndicator";
+    }
+    leaf t-barred {
+      type uint32 {
+        range "10 | 20 | 40 | 80 | 160 | 320 | 640 | 1280";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.TBarred";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.TBarred";
+    }
+    leaf access-class-barred-list-cs {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.AccessClassBarredListCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.AccessClassBarredListCS";
+    }
+    leaf access-class-barred-list-ps {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.AccessClassBarredListPS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.AccessClassBarredListPS";
+    }
+    leaf cell-reserved-for-operator-use {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.CellReservedForOperatorUse";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.CellReservedForOperatorUse";
+    }
+  }
+
+  grouping ran-cell-selection-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.";
+    leaf quality-measure-cpich {
+      type enumeration {
+        enum Ec/No {
+          description
+            "Enum Value - Ec/No";
+        }
+        enum RSCP {
+          description
+            "Enum Value - RSCP";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QualityMeasureCPICH";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QualityMeasureCPICH";
+    }
+    leaf qqual-min {
+      type int32 {
+        range "-24..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QqualMin";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QqualMin";
+    }
+    leaf qqual-min-offset {
+      type uint32 {
+        range "1..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QqualMinOffset";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QqualMinOffset";
+    }
+    leaf q-rx-lev-min {
+      type int32 {
+        range "-115..-25";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QRxLevMin";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QRxLevMin";
+    }
+    leaf delta-q-rx-lev-min {
+      type int32 {
+        range "-4 | -2";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.DeltaQRxLevMin";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.DeltaQRxLevMin";
+    }
+    leaf q-rx-lev-min-offset {
+      type uint32 {
+        range "2 | 4 | 6 | 8 | 10 | 12 | 14 | 16";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QRxLevMinOffset";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QRxLevMinOffset";
+    }
+    leaf q-hyst1s {
+      type uint32 {
+        range "0..40";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QHyst1s";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QHyst1s";
+    }
+    leaf q-hyst2s {
+      type uint32 {
+        range "0..40";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QHyst2s";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QHyst2s";
+    }
+    leaf t-reselections {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TReselections";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TReselections";
+    }
+    leaf s-intrasearch {
+      type int32 {
+        range "-32..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SIntrasearch";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SIntrasearch";
+    }
+    leaf s-intersearch {
+      type int32 {
+        range "-32..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SIntersearch";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SIntersearch";
+    }
+    leaf s-search-hcs {
+      type int32 {
+        range "-105..91";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SSearchHCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SSearchHCS";
+    }
+    leaf s-search-rat {
+      type int32 {
+        range "-32..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SSearchRAT";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SSearchRAT";
+    }
+    leaf shcsrat {
+      type int32 {
+        range "-105..91";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SHCSRAT";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SHCSRAT";
+    }
+    leaf s-limit-search-rat {
+      type int32 {
+        range "-32..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SLimitSearchRAT";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SLimitSearchRAT";
+    }
+    leaf non-hcstcr-max {
+      type enumeration {
+        enum "not used" {
+          description
+            "Enum Value - not used";
+        }
+        enum 30 {
+          description
+            "Enum Value - 30";
+        }
+        enum 60 {
+          description
+            "Enum Value - 60";
+        }
+        enum 120 {
+          description
+            "Enum Value - 120";
+        }
+        enum 180 {
+          description
+            "Enum Value - 180";
+        }
+        enum 240 {
+          description
+            "Enum Value - 240";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMax";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMax";
+    }
+    leaf non-hcsncr {
+      type uint32 {
+        range "1..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSNCR";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSNCR";
+    }
+    leaf non-hcstcr-max-hyst {
+      type enumeration {
+        enum "not used" {
+          description
+            "Enum Value - not used";
+        }
+        enum 10 {
+          description
+            "Enum Value - 10";
+        }
+        enum 20 {
+          description
+            "Enum Value - 20";
+        }
+        enum 30 {
+          description
+            "Enum Value - 30";
+        }
+        enum 40 {
+          description
+            "Enum Value - 40";
+        }
+        enum 50 {
+          description
+            "Enum Value - 50";
+        }
+        enum 60 {
+          description
+            "Enum Value - 60";
+        }
+        enum 70 {
+          description
+            "Enum Value - 70";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMaxHyst";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMaxHyst";
+    }
+    leaf qhcs {
+      type uint32 {
+        range "0..99";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QHCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QHCS";
+    }
+    leaf use-of-hcs {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.UseOfHCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.UseOfHCS";
+    }
+    leaf hcs-prio {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.HCSPrio";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.HCSPrio";
+    }
+    leaf tcr-max {
+      type enumeration {
+        enum "not used" {
+          description
+            "Enum Value - not used";
+        }
+        enum 30 {
+          description
+            "Enum Value - 30";
+        }
+        enum 60 {
+          description
+            "Enum Value - 60";
+        }
+        enum 120 {
+          description
+            "Enum Value - 120";
+        }
+        enum 180 {
+          description
+            "Enum Value - 180";
+        }
+        enum 240 {
+          description
+            "Enum Value - 240";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMax";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMax";
+    }
+    leaf ncr {
+      type uint32 {
+        range "1..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NCR";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NCR";
+    }
+    leaf tcr-max-hyst {
+      type enumeration {
+        enum "not used" {
+          description
+            "Enum Value - not used";
+        }
+        enum 10 {
+          description
+            "Enum Value - 10";
+        }
+        enum 20 {
+          description
+            "Enum Value - 20";
+        }
+        enum 30 {
+          description
+            "Enum Value - 30";
+        }
+        enum 40 {
+          description
+            "Enum Value - 40";
+        }
+        enum 50 {
+          description
+            "Enum Value - 50";
+        }
+        enum 60 {
+          description
+            "Enum Value - 60";
+        }
+        enum 70 {
+          description
+            "Enum Value - 70";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMaxHyst";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMaxHyst";
+    }
+    leaf ue-tx-pwr-max-rach {
+      type int32 {
+        range "-50..33";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.UETxPwrMaxRACH";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.UETxPwrMaxRACH";
+    }
+  }
+
+  grouping ran-drx-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.DRX.";
+    leaf drx-cycle-length-coefficient-cs {
+      type uint32 {
+        range "6..9";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.DRX.DRXCycleLengthCoefficientCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.DRX.DRXCycleLengthCoefficientCS";
+    }
+    leaf drx-cycle-length-coefficient-ps {
+      type uint32 {
+        range "6..9";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.DRX.DRXCycleLengthCoefficientPS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.DRX.DRXCycleLengthCoefficientPS";
+    }
+    leaf utrandrx-cycle-length-coefficient {
+      type uint32 {
+        range "3..9";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.DRX.UTRANDRXCycleLengthCoefficient";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.DRX.UTRANDRXCycleLengthCoefficient";
+    }
+  }
+
+  grouping ran-inter-freq-meas-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.";
+    leaf measurement-quantity {
+      type enumeration {
+        enum "CPICH Ec/No" {
+          description
+            "Enum Value - CPICH Ec/No";
+        }
+        enum "CPICH RSCP" {
+          description
+            "Enum Value - CPICH RSCP";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.MeasurementQuantity";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.MeasurementQuantity";
+    }
+    leaf filter-coefficient {
+      type uint32 {
+        range "0..9 | 11 | 13 | 15 | 17 | 19";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.FilterCoefficient";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.FilterCoefficient";
+    }
+    leaf inter-frequency-event-identity {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.InterFrequencyEventIdentity";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.InterFrequencyEventIdentity";
+    }
+    leaf weighting-factor-event2a {
+      type uint32 {
+        range "0..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.WeightingFactorEvent2a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.WeightingFactorEvent2a";
+    }
+    leaf weighting-factor-event2b {
+      type uint32 {
+        range "0..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.WeightingFactorEvent2b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.WeightingFactorEvent2b";
+    }
+    leaf weighting-factor-event2d {
+      type uint32 {
+        range "0..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.WeightingFactorEvent2d";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.WeightingFactorEvent2d";
+    }
+    leaf weighting-factor-event2f {
+      type uint32 {
+        range "0..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.WeightingFactorEvent2f";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.WeightingFactorEvent2f";
+    }
+    leaf hysteresis-event2a {
+      type uint32 {
+        range "0..29";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.HysteresisEvent2a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.HysteresisEvent2a";
+    }
+    leaf hysteresis-event2b {
+      type uint32 {
+        range "0..29";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.HysteresisEvent2b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.HysteresisEvent2b";
+    }
+    leaf hysteresis-event2d {
+      type uint32 {
+        range "0..29";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.HysteresisEvent2d";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.HysteresisEvent2d";
+    }
+    leaf hysteresis-event2f {
+      type uint32 {
+        range "0..29";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.HysteresisEvent2f";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.HysteresisEvent2f";
+    }
+    leaf time-to-trigger-event2a {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.TimeToTriggerEvent2a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.TimeToTriggerEvent2a";
+    }
+    leaf time-to-trigger-event2b {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.TimeToTriggerEvent2b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.TimeToTriggerEvent2b";
+    }
+    leaf time-to-trigger-event2d {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.TimeToTriggerEvent2d";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.TimeToTriggerEvent2d";
+    }
+    leaf time-to-trigger-event2f {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.TimeToTriggerEvent2f";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.TimeToTriggerEvent2f";
+    }
+    leaf threshold-used-frequency-event2b {
+      type int32 {
+        range "-120..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.ThresholdUsedFrequencyEvent2b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.ThresholdUsedFrequencyEvent2b";
+    }
+    leaf threshold-used-frequency-event2d {
+      type int32 {
+        range "-120..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.ThresholdUsedFrequencyEvent2d";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.ThresholdUsedFrequencyEvent2d";
+    }
+    leaf threshold-used-frequency-event2f {
+      type int32 {
+        range "-120..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.ThresholdUsedFrequencyEvent2f";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.ThresholdUsedFrequencyEvent2f";
+    }
+    leaf instance-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.InstanceNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.InstanceNumberOfEntries";
+    }
+  }
+
+  grouping inter-freq-meas-instance-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.Alias";
+    }
+    leaf intra-frequency-event-identity {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.IntraFrequencyEventIdentity";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.IntraFrequencyEventIdentity";
+    }
+    leaf event-description {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.EventDescription";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.EventDescription";
+    }
+    leaf measurement-quantity {
+      type enumeration {
+        enum "CPICH Ec/No" {
+          description
+            "Enum Value - CPICH Ec/No";
+        }
+        enum "CPICH RSCP" {
+          description
+            "Enum Value - CPICH RSCP";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.MeasurementQuantity";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.MeasurementQuantity";
+    }
+    leaf filter-coefficient {
+      type uint32 {
+        range "0..9 | 11 | 13 | 15 | 17 | 19";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.FilterCoefficient";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.FilterCoefficient";
+    }
+    leaf weighting-factor {
+      type uint32 {
+        range "0..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.WeightingFactor";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.WeightingFactor";
+    }
+    leaf hysteresis {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.Hysteresis";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.Hysteresis";
+    }
+    leaf time-to-trigger {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.TimeToTrigger";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.TimeToTrigger";
+    }
+    leaf threshold-used-frequency {
+      type int32 {
+        range "-120..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.ThresholdUsedFrequency";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.ThresholdUsedFrequency";
+    }
+    leaf threshold-non-used-frequency {
+      type int32 {
+        range "-120..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.ThresholdNonUsedFrequency";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.ThresholdNonUsedFrequency";
+    }
+  }
+
+  grouping ran-inter-rat-meas-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.";
+    leaf gsm-filter-coefficient {
+      type uint32 {
+        range "0..9 | 11 | 13 | 15 | 17 | 19";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.GSMFilterCoefficient";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.GSMFilterCoefficient";
+    }
+    leaf bsic-verification-required {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.BSICVerificationRequired";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.BSICVerificationRequired";
+    }
+    leaf weighting-factor {
+      type uint32 {
+        range "0..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.WeightingFactor";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.WeightingFactor";
+    }
+    leaf hysteresis {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Hysteresis";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Hysteresis";
+    }
+    leaf time-to-trigger {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.TimeToTrigger";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.TimeToTrigger";
+    }
+    leaf threshold-own-system {
+      type int32 {
+        range "-115..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.ThresholdOwnSystem";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.ThresholdOwnSystem";
+    }
+    leaf threshold-other-system {
+      type int32 {
+        range "-115..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.ThresholdOtherSystem";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.ThresholdOtherSystem";
+    }
+    leaf instance-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.InstanceNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.InstanceNumberOfEntries";
+    }
+  }
+
+  grouping inter-rat-meas-instance-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.Alias";
+    }
+    leaf inter-rat-event-identity {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.InterRATEventIdentity";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.InterRATEventIdentity";
+    }
+    leaf event-description {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.EventDescription";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.EventDescription";
+    }
+    leaf filter-coefficient {
+      type uint32 {
+        range "0..9 | 11 | 13 | 15 | 17 | 19";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.FilterCoefficient";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.FilterCoefficient";
+    }
+    leaf bsic-verification-required {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.BSICVerificationRequired";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.BSICVerificationRequired";
+    }
+    leaf weighting-factor {
+      type uint32 {
+        range "0..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.WeightingFactor";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.WeightingFactor";
+    }
+    leaf hysteresis {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.Hysteresis";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.Hysteresis";
+    }
+    leaf time-to-trigger {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.TimeToTrigger";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.TimeToTrigger";
+    }
+    leaf threshold-own-system {
+      type int32 {
+        range "-115..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.ThresholdOwnSystem";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.ThresholdOwnSystem";
+    }
+    leaf threshold-other-system {
+      type int32 {
+        range "-115..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.ThresholdOtherSystem";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.ThresholdOtherSystem";
+    }
+  }
+
+  grouping ran-intra-freq-meas-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.";
+    leaf measurement-quantity {
+      type enumeration {
+        enum "CPICH Ec/No" {
+          description
+            "Enum Value - CPICH Ec/No";
+        }
+        enum "CPICH RSCP" {
+          description
+            "Enum Value - CPICH RSCP";
+        }
+        enum Pathloss {
+          description
+            "Enum Value - Pathloss";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.MeasurementQuantity";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.MeasurementQuantity";
+    }
+    leaf filter-coefficient {
+      type uint32 {
+        range "0..9 | 11 | 13 | 15 | 17 | 19";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.FilterCoefficient";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.FilterCoefficient";
+    }
+    leaf intra-frequency-event-identity {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.IntraFrequencyEventIdentity";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.IntraFrequencyEventIdentity";
+    }
+    leaf triggering-condition2-event1a {
+      type enumeration {
+        enum Active {
+          description
+            "Enum Value - Active";
+        }
+        enum Monitored {
+          description
+            "Enum Value - Monitored";
+        }
+        enum "Active and Monitored" {
+          description
+            "Enum Value - Active and Monitored";
+        }
+        enum Detected {
+          description
+            "Enum Value - Detected";
+        }
+        enum "Detected and Monitored" {
+          description
+            "Enum Value - Detected and Monitored";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition2Event1a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition2Event1a";
+    }
+    leaf triggering-condition1-event1b {
+      type enumeration {
+        enum Active {
+          description
+            "Enum Value - Active";
+        }
+        enum Monitored {
+          description
+            "Enum Value - Monitored";
+        }
+        enum "Active and Monitored" {
+          description
+            "Enum Value - Active and Monitored";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition1Event1b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition1Event1b";
+    }
+    leaf triggering-condition2-event1e {
+      type enumeration {
+        enum Active {
+          description
+            "Enum Value - Active";
+        }
+        enum Monitored {
+          description
+            "Enum Value - Monitored";
+        }
+        enum "Active and Monitored" {
+          description
+            "Enum Value - Active and Monitored";
+        }
+        enum Detected {
+          description
+            "Enum Value - Detected";
+        }
+        enum "Detected and Monitored" {
+          description
+            "Enum Value - Detected and Monitored";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition2Event1e";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition2Event1e";
+    }
+    leaf triggering-condition1-event1f {
+      type enumeration {
+        enum Active {
+          description
+            "Enum Value - Active";
+        }
+        enum Monitored {
+          description
+            "Enum Value - Monitored";
+        }
+        enum "Active and Monitored" {
+          description
+            "Enum Value - Active and Monitored";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition1Event1f";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition1Event1f";
+    }
+    leaf reporting-range-event1a {
+      type uint32 {
+        range "0..29";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingRangeEvent1a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingRangeEvent1a";
+    }
+    leaf reporting-range-event1b {
+      type uint32 {
+        range "0..29";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingRangeEvent1b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingRangeEvent1b";
+    }
+    leaf weighting-factor-event1a {
+      type uint32 {
+        range "0..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.WeightingFactorEvent1a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.WeightingFactorEvent1a";
+    }
+    leaf weighting-factor-event1b {
+      type uint32 {
+        range "0..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.WeightingFactorEvent1b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.WeightingFactorEvent1b";
+    }
+    leaf report-deactivation-threshold-event1a {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportDeactivationThresholdEvent1a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportDeactivationThresholdEvent1a";
+    }
+    leaf reporting-amount-event1a {
+      type int32 {
+        range "-1 | 1..2 | 4 | 8 | 16 | 32 | 64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingAmountEvent1a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingAmountEvent1a";
+    }
+    leaf reporting-amount-event1c {
+      type int32 {
+        range "-1 | 1..2 | 4 | 8 | 16 | 32 | 64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingAmountEvent1c";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingAmountEvent1c";
+    }
+    leaf reporting-interval-event1a {
+      type uint32 {
+        range "0 | 250 | 500 | 1000 | 2000 | 4000 | 8000 | 16000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingIntervalEvent1a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingIntervalEvent1a";
+    }
+    leaf reporting-interval-event1c {
+      type uint32 {
+        range "0 | 250 | 500 | 1000 | 2000 | 4000 | 8000 | 16000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingIntervalEvent1c";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingIntervalEvent1c";
+    }
+    leaf hysteresis-event1a {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1a";
+    }
+    leaf hysteresis-event1b {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1b";
+    }
+    leaf hysteresis-event1c {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1c";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1c";
+    }
+    leaf hysteresis-event1d {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1d";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1d";
+    }
+    leaf hysteresis-event1e {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1e";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1e";
+    }
+    leaf hysteresis-event1f {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1f";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1f";
+    }
+    leaf time-to-trigger-event1a {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1a";
+    }
+    leaf time-to-trigger-event1b {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1b";
+    }
+    leaf time-to-trigger-event1c {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1c";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1c";
+    }
+    leaf time-to-trigger-event1d {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1d";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1d";
+    }
+    leaf time-to-trigger-event1e {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1e";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1e";
+    }
+    leaf time-to-trigger-event1f {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1f";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1f";
+    }
+    leaf threshold-used-frequency-event1e {
+      type int32 {
+        range "-120..165";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ThresholdUsedFrequencyEvent1e";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ThresholdUsedFrequencyEvent1e";
+    }
+    leaf threshold-used-frequency-event1f {
+      type int32 {
+        range "-120..165";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ThresholdUsedFrequencyEvent1f";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ThresholdUsedFrequencyEvent1f";
+    }
+    leaf replacement-activation-threshold-event1c {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReplacementActivationThresholdEvent1c";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReplacementActivationThresholdEvent1c";
+    }
+    leaf instance-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.InstanceNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.InstanceNumberOfEntries";
+    }
+  }
+
+  grouping intra-freq-meas-instance-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.Alias";
+    }
+    leaf intra-frequency-event-identity {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.IntraFrequencyEventIdentity";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.IntraFrequencyEventIdentity";
+    }
+    leaf event-description {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.EventDescription";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.EventDescription";
+    }
+    leaf measurement-quantity {
+      type enumeration {
+        enum "CPICH Ec/No" {
+          description
+            "Enum Value - CPICH Ec/No";
+        }
+        enum "CPICH RSCP" {
+          description
+            "Enum Value - CPICH RSCP";
+        }
+        enum Pathloss {
+          description
+            "Enum Value - Pathloss";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.MeasurementQuantity";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.MeasurementQuantity";
+    }
+    leaf filter-coefficient {
+      type uint32 {
+        range "0..9 | 11 | 13 | 15 | 17 | 19";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.FilterCoefficient";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.FilterCoefficient";
+    }
+    leaf triggering-condition {
+      type enumeration {
+        enum Active {
+          description
+            "Enum Value - Active";
+        }
+        enum Monitored {
+          description
+            "Enum Value - Monitored";
+        }
+        enum "Active and Monitored" {
+          description
+            "Enum Value - Active and Monitored";
+        }
+        enum Detected {
+          description
+            "Enum Value - Detected";
+        }
+        enum "Detected and Monitored" {
+          description
+            "Enum Value - Detected and Monitored";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.TriggeringCondition";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.TriggeringCondition";
+    }
+    leaf reporting-range {
+      type uint32 {
+        range "0..29";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReportingRange";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReportingRange";
+    }
+    leaf weighting-factor {
+      type uint32 {
+        range "0..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.WeightingFactor";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.WeightingFactor";
+    }
+    leaf report-deactivation-threshold {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReportDeactivationThreshold";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReportDeactivationThreshold";
+    }
+    leaf reporting-amount {
+      type int32 {
+        range "-1 | 1..2 | 4 | 8 | 16 | 32 | 64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReportingAmount";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReportingAmount";
+    }
+    leaf reporting-interval {
+      type uint32 {
+        range "0 | 250 | 500 | 1000 | 2000 | 4000 | 8000 | 16000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReportingInterval";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReportingInterval";
+    }
+    leaf hysteresis {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.Hysteresis";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.Hysteresis";
+    }
+    leaf time-to-trigger {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.TimeToTrigger";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.TimeToTrigger";
+    }
+    leaf threshold-used-frequency {
+      type int32 {
+        range "-120..165";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ThresholdUsedFrequency";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ThresholdUsedFrequency";
+    }
+    leaf replacement-activation-threshold {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReplacementActivationThreshold";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReplacementActivationThreshold";
+    }
+  }
+
+  grouping umts-ran-neighbor-list-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.";
+    leaf max-intra-freq-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.MaxIntraFreqCellEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.MaxIntraFreqCellEntries";
+    }
+    leaf max-inter-freq-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.MaxInterFreqCellEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.MaxInterFreqCellEntries";
+    }
+    leaf intra-freq-cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCellNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCellNumberOfEntries";
+    }
+    leaf inter-freq-cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCellNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCellNumberOfEntries";
+    }
+  }
+
+  grouping neighbor-list-inter-freq-cell-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.Alias";
+    }
+    leaf must-include {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.MustInclude";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.MustInclude";
+    }
+    leaf plmnid {
+      type string {
+        length "min..6";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.PLMNID";
+    }
+    leaf rncid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.RNCID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.RNCID";
+    }
+    leaf cid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.CID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.CID";
+    }
+    leaf lac {
+      type uint32 {
+        range "1..65533 | 65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.LAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.LAC";
+    }
+    leaf rac {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.RAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.RAC";
+    }
+    leaf ura {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.URA";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.URA";
+    }
+    leaf uarfcnul {
+      type uint32 {
+        range "0..16383";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.UARFCNUL";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.UARFCNUL";
+    }
+    leaf uarfcndl {
+      type uint32 {
+        range "0..16383";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.UARFCNDL";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.UARFCNDL";
+    }
+    leaf pcpich-scrambling-code {
+      type uint32 {
+        range "0..511";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.PCPICHScramblingCode";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.PCPICHScramblingCode";
+    }
+    leaf pcpich-tx-power {
+      type int32 {
+        range "-100..500";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.PCPICHTxPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.PCPICHTxPower";
+    }
+  }
+
+  grouping ran-neighbor-list-inter-rat-cell-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.";
+    leaf max-gsm-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.MaxGSMEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.MaxGSMEntries";
+    }
+    leaf gsm-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSMNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSMNumberOfEntries";
+    }
+  }
+
+  grouping neighbor-list-inter-rat-cell-gsm-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.Alias";
+    }
+    leaf must-include {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.MustInclude";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.MustInclude";
+    }
+    leaf plmnid {
+      type string {
+        length "min..6";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.PLMNID";
+    }
+    leaf lac {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.LAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.LAC";
+    }
+    leaf bsic {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.BSIC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.BSIC";
+    }
+    leaf ci {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.CI";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.CI";
+    }
+    leaf band-indicator {
+      type enumeration {
+        enum "GSM 850" {
+          description
+            "Enum Value - GSM 850";
+        }
+        enum "GSM 900" {
+          description
+            "Enum Value - GSM 900";
+        }
+        enum "DCS 1800" {
+          description
+            "Enum Value - DCS 1800";
+        }
+        enum "PCS 1900" {
+          description
+            "Enum Value - PCS 1900";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.BandIndicator";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.BandIndicator";
+    }
+    leaf bccharfcn {
+      type uint32 {
+        range "0..1023";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.BCCHARFCN";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.BCCHARFCN";
+    }
+  }
+
+  grouping neighbor-list-intra-freq-cell-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.Alias";
+    }
+    leaf must-include {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.MustInclude";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.MustInclude";
+    }
+    leaf plmnid {
+      type string {
+        length "min..6";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.PLMNID";
+    }
+    leaf rncid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.RNCID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.RNCID";
+    }
+    leaf cid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.CID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.CID";
+    }
+    leaf lac {
+      type uint32 {
+        range "1..65533 | 65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.LAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.LAC";
+    }
+    leaf rac {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.RAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.RAC";
+    }
+    leaf ura {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.URA";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.URA";
+    }
+    leaf pcpich-scrambling-code {
+      type uint32 {
+        range "0..511";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.PCPICHScramblingCode";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.PCPICHScramblingCode";
+    }
+    leaf pcpich-tx-power {
+      type int32 {
+        range "-100..500";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.PCPICHTxPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.PCPICHTxPower";
+    }
+    leaf collocated-inter-freq-cell {
+      type uint32 {
+        range "0..268435455";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.CollocatedInterFreqCell";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.CollocatedInterFreqCell";
+    }
+    leaf max-tx-power {
+      type int32 {
+        range "-300..600";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.MaxTxPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.MaxTxPower";
+    }
+    leaf max-dpc-htx-power {
+      type int32 {
+        range "-400..500";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.MaxDPCHtxPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.MaxDPCHtxPower";
+    }
+  }
+
+  grouping umts-ran-neighbor-list-in-use-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.";
+    leaf max-intra-freq-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.MaxIntraFreqCellEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.MaxIntraFreqCellEntries";
+    }
+    leaf max-inter-freq-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.MaxInterFreqCellEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.MaxInterFreqCellEntries";
+    }
+    leaf intra-freq-cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCellNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCellNumberOfEntries";
+    }
+    leaf inter-freq-cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCellNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCellNumberOfEntries";
+    }
+  }
+
+  grouping neighbor-list-in-use-inter-freq-cell-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf plmnid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.PLMNID";
+    }
+    leaf rncid {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.RNCID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.RNCID";
+    }
+    leaf cid {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.CID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.CID";
+    }
+    leaf lac {
+      type uint32 {
+        range "1..65533 | 65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.LAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.LAC";
+    }
+    leaf rac {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.RAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.RAC";
+    }
+    leaf ura {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.URA";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.URA";
+    }
+    leaf uarfcnul {
+      type uint32 {
+        range "0..16383";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.UARFCNUL";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.UARFCNUL";
+    }
+    leaf uarfcndl {
+      type uint32 {
+        range "0..16383";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.UARFCNDL";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.UARFCNDL";
+    }
+    leaf pcpich-scrambling-code {
+      type uint32 {
+        range "0..511";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.PCPICHScramblingCode";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.PCPICHScramblingCode";
+    }
+  }
+
+  grouping ran-neighbor-list-in-use-inter-rat-cell-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.";
+    leaf max-gsm-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.MaxGSMEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.MaxGSMEntries";
+    }
+    leaf gsm-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSMNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSMNumberOfEntries";
+    }
+  }
+
+  grouping ran-neighbor-list-in-use-inter-rat-cell-gsm-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf plmnid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.PLMNID";
+    }
+    leaf lac {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.LAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.LAC";
+    }
+    leaf bsic {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BSIC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BSIC";
+    }
+    leaf ci {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.CI";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.CI";
+    }
+    leaf band-indicator {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BandIndicator";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BandIndicator";
+    }
+    leaf bccharfcn {
+      type uint32 {
+        range "0..1023";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BCCHARFCN";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BCCHARFCN";
+    }
+  }
+
+  grouping neighbor-list-in-use-intra-freq-cell-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf plmnid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.PLMNID";
+    }
+    leaf rncid {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.RNCID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.RNCID";
+    }
+    leaf cid {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.CID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.CID";
+    }
+    leaf lac {
+      type uint32 {
+        range "1..65533 | 65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.LAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.LAC";
+    }
+    leaf rac {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.RAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.RAC";
+    }
+    leaf ura {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.URA";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.URA";
+    }
+    leaf pcpich-scrambling-code {
+      type uint32 {
+        range "0..511";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.PCPICHScramblingCode";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.PCPICHScramblingCode";
+    }
+  }
+
+  grouping umts-ran-power-control-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.";
+    leaf constant-value {
+      type int32 {
+        range "-35..-10";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.ConstantValue";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.ConstantValue";
+    }
+    leaf power-ramp-step-up {
+      type uint32 {
+        range "1..8";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.PowerRampStepUp";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.PowerRampStepUp";
+    }
+    leaf preamble-retrans-max {
+      type uint32 {
+        range "1..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.PreambleRetransMax";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.PreambleRetransMax";
+    }
+    leaf persistence-scale-factor {
+      type uint32 {
+        range "2..9";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.PersistenceScaleFactor";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.PersistenceScaleFactor";
+    }
+    leaf m-max {
+      type uint32 {
+        range "1..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.MMax";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.MMax";
+    }
+    leaf nb01-min {
+      type uint32 {
+        range "0..50";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.NB01Min";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.NB01Min";
+    }
+    leaf nb01-max {
+      type uint32 {
+        range "0..50";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.NB01Max";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.NB01Max";
+    }
+  }
+
+  grouping umts-ran-rf-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.RF.";
+    leaf uarfcndl {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.UARFCNDL";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.UARFCNDL";
+    }
+    leaf uarfcndl-in-use {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.UARFCNDLInUse";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.UARFCNDLInUse";
+    }
+    leaf uarfcnul-in-use {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.UARFCNULInUse";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.UARFCNULInUse";
+    }
+    leaf uarfcndl-to-protect {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.UARFCNDLToProtect";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.UARFCNDLToProtect";
+    }
+    leaf primary-scrambling-code {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PrimaryScramblingCode";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PrimaryScramblingCode";
+    }
+    leaf primary-scrambling-code-in-use {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PrimaryScramblingCodeInUse";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PrimaryScramblingCodeInUse";
+    }
+    leaf max-fap-tx-power-expanded {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxFAPTxPowerExpanded";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxFAPTxPowerExpanded";
+    }
+    leaf max-fap-tx-power-in-use-expanded {
+      type int32 {
+        range "-300..200";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxFAPTxPowerInUseExpanded";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxFAPTxPowerInUseExpanded";
+    }
+    leaf max-ul-tx-power {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxULTxPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxULTxPower";
+    }
+    leaf max-ul-tx-power-in-use {
+      type int32 {
+        range "-50..33";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxULTxPowerInUse";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxULTxPowerInUse";
+    }
+    leaf pcpich-power {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PCPICHPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PCPICHPower";
+    }
+    leaf pcpich-power-in-use {
+      type int32 {
+        range "-100..200";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PCPICHPowerInUse";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PCPICHPowerInUse";
+    }
+    leaf power-offset-pilot-dpdch {
+      type uint32 {
+        range "0..24";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PowerOffsetPilotDPDCH";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PowerOffsetPilotDPDCH";
+    }
+    leaf fap-coverage-target {
+      type uint32 {
+        range "50..150";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.FAPCoverageTarget";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.FAPCoverageTarget";
+    }
+    leaf fap-quality-target-ec-io {
+      type int32 {
+        range "-200..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.FAPQualityTargetEcIo";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.FAPQualityTargetEcIo";
+    }
+    leaf psch-power {
+      type int32 {
+        range "-350..150";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PSCHPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PSCHPower";
+    }
+    leaf ssch-power {
+      type int32 {
+        range "-350..150";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.SSCHPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.SSCHPower";
+    }
+    leaf pich-power {
+      type int32 {
+        range "-10..5";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PICHPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PICHPower";
+    }
+    leaf pch-power {
+      type int32 {
+        range "-350..150";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PCHPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PCHPower";
+    }
+    leaf fach-power {
+      type int32 {
+        range "-350..150";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.FACHPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.FACHPower";
+    }
+    leaf bch-power {
+      type int32 {
+        range "-350..150";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.BCHPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.BCHPower";
+    }
+    leaf aich-power {
+      type int32 {
+        range "-22..5";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.AICHPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.AICHPower";
+    }
+    leaf ctch-allocation-period {
+      type uint32 {
+        range "1..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.CTCHAllocationPeriod";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.CTCHAllocationPeriod";
+    }
+    leaf cbs-frame-offset {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.CBSFrameOffset";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.CBSFrameOffset";
+    }
+    leaf max-tti {
+      type uint32 {
+        range "1..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxTTI";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxTTI";
+    }
+    leaf noise-rise-limit-lower-value {
+      type uint32 {
+        range "0..500";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.NoiseRiseLimitLowerValue";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.NoiseRiseLimitLowerValue";
+    }
+    leaf noise-rise-limit-upper-value {
+      type uint32 {
+        range "0..500";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.NoiseRiseLimitUpperValue";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.NoiseRiseLimitUpperValue";
+    }
+    leaf noise-rise-limit-in-use {
+      type uint32 {
+        range "0..500";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.NoiseRiseLimitInUse";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.NoiseRiseLimitInUse";
+    }
+  }
+
+  grouping ran-rrc-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.RRC.Stats.";
+    leaf att-conn-estab {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRC.Stats.AttConnEstab";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRC.Stats.AttConnEstab";
+    }
+    leaf fail-conn-estab {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRC.Stats.FailConnEstab";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRC.Stats.FailConnEstab";
+    }
+    leaf succ-conn-estab {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRC.Stats.SuccConnEstab";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRC.Stats.SuccConnEstab";
+    }
+  }
+
+  grouping umts-ran-rrc-timers-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.";
+    leaf t300 {
+      type uint32 {
+        range "100..8000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T300";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T300";
+    }
+    leaf t301 {
+      type uint32 {
+        range "100..8000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T301";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T301";
+    }
+    leaf t302 {
+      type uint32 {
+        range "100..8000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T302";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T302";
+    }
+    leaf t304 {
+      type uint32 {
+        range "100 | 200 | 400 | 1000 | 2000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T304";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T304";
+    }
+    leaf t305 {
+      type int32 {
+        range "-1 | 5 | 10 | 30 | 60 | 120 | 360 | 720";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T305";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T305";
+    }
+    leaf t307 {
+      type uint32 {
+        range "5 | 10 | 15 | 20 | 30 | 40 | 50";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T307";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T307";
+    }
+    leaf t308 {
+      type uint32 {
+        range "40 | 80 | 160 | 320";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T308";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T308";
+    }
+    leaf t309 {
+      type uint32 {
+        range "1..8";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T309";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T309";
+    }
+    leaf t310 {
+      type uint32 {
+        range "40 | 80 | 120 | 160 | 200 | 240 | 280 | 320";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T310";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T310";
+    }
+    leaf t311 {
+      type uint32 {
+        range "250 | 500 | 750 | 1000 | 1250 | 1500 | 1750 | 2000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T311";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T311";
+    }
+    leaf t312 {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T312";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T312";
+    }
+    leaf t313 {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T313";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T313";
+    }
+    leaf t314 {
+      type uint32 {
+        range "0 | 2 | 4 | 6 | 8 | 12 | 16 | 20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T314";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T314";
+    }
+    leaf t315 {
+      type uint32 {
+        range "0 | 10 | 30 | 60 | 180 | 600 | 1200 | 1800";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T315";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T315";
+    }
+    leaf t316 {
+      type int32 {
+        range "-1 | 0 | 10 | 20 | 30 | 40 | 50";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T316";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T316";
+    }
+    leaf t317 {
+      type uint32 {
+        range "0 | 10 | 30 | 60 | 180 | 600 | 1200 | 1800";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T317";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T317";
+    }
+    leaf n300 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N300";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N300";
+    }
+    leaf n301 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N301";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N301";
+    }
+    leaf n302 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N302";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N302";
+    }
+    leaf n304 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N304";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N304";
+    }
+    leaf n310 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N310";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N310";
+    }
+    leaf n312 {
+      type uint32 {
+        range "1..1000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N312";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N312";
+    }
+    leaf n313 {
+      type uint32 {
+        range "1 | 2 | 4 | 10 | 20 | 50 | 100 | 200";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N313";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N313";
+    }
+    leaf n315 {
+      type uint32 {
+        range "1..1000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N315";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N315";
+    }
+    leaf wait-time {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.WaitTime";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.WaitTime";
+    }
+  }
+
+  grouping ran-ue-internal-meas-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.";
+    leaf filter-coefficient {
+      type uint32 {
+        range "0..9 | 11 | 13 | 15 | 17 | 19";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.FilterCoefficient";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.FilterCoefficient";
+    }
+    leaf ue-tx-pwr-threshold-event6a {
+      type int32 {
+        range "-50..33";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.UETxPwrThresholdEvent6a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.UETxPwrThresholdEvent6a";
+    }
+    leaf time-to-trigger-event6a {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.TimeToTriggerEvent6a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.TimeToTriggerEvent6a";
+    }
+    leaf ue-tx-pwr-threshold-event6b {
+      type int32 {
+        range "-50..33";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.UETxPwrThresholdEvent6b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.UETxPwrThresholdEvent6b";
+    }
+    leaf time-to-trigger-event6b {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.TimeToTriggerEvent6b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.TimeToTriggerEvent6b";
+    }
+  }
+
+  grouping fap-service-fap-control-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.";
+    leaf self-config-events {
+      type enumeration {
+        enum InitialREM {
+          description
+            "Enum Value - InitialREM";
+        }
+      }
+      description
+        "FAPService.{i}.FAPControl.SelfConfigEvents";
+      reference
+        "FAPService.{i}.FAPControl.SelfConfigEvents";
+    }
+    leaf enclosure-tampering-detected {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.EnclosureTamperingDetected";
+      reference
+        "FAPService.{i}.FAPControl.EnclosureTamperingDetected";
+    }
+  }
+
+  grouping fap-control-cdma2000-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.";
+    leaf home-domain {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HomeDomain";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HomeDomain";
+    }
+    leaf remote-ip-access-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.RemoteIPAccessEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.RemoteIPAccessEnable";
+    }
+    leaf pm-config {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.PMConfig";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.PMConfig";
+    }
+  }
+
+  grouping cdma2000-gateway-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.Gateway.";
+    leaf sec-gw-server1 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.Gateway.SecGWServer1";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.Gateway.SecGWServer1";
+    }
+    leaf sec-gw-server2 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.Gateway.SecGWServer2";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.Gateway.SecGWServer2";
+    }
+    leaf sec-gw-server3 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.Gateway.SecGWServer3";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.Gateway.SecGWServer3";
+    }
+    leaf sec-gw-switchover-count {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.Gateway.SecGWSwitchoverCount";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.Gateway.SecGWSwitchoverCount";
+    }
+  }
+
+  grouping fap-control-cdma2000-hrpd-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.HRPD.";
+    leaf op-state {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.OpState";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.OpState";
+    }
+    leaf admin-state {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.AdminState";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.AdminState";
+    }
+    leaf rf-tx-status {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.RFTxStatus";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.RFTxStatus";
+    }
+    leaf a13-session-transfer-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13SessionTransferEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13SessionTransferEnable";
+    }
+    leaf local-ip-access-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.LocalIPAccessEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.LocalIPAccessEnable";
+    }
+  }
+
+  grouping hrpd-a13-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.";
+    leaf color-code-to-uati104-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104NumberOfEntries";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104NumberOfEntries";
+    }
+    leaf hrpd-subnet-to-ip-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIPNumberOfEntries";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIPNumberOfEntries";
+    }
+  }
+
+  grouping a13-color-code-to-uati104-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.Enable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.Alias";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.Alias";
+    }
+    leaf color-code {
+      type uint32 {
+        range "0..256";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.ColorCode";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.ColorCode";
+    }
+    leaf uati104 {
+      type string {
+        length "0..13";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.UATI104";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.UATI104";
+    }
+  }
+
+  grouping a13-hrpd-subnet-to-ip-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.Enable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.Alias";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.Alias";
+    }
+    leaf hrpd-subnet-length {
+      type uint32 {
+        range "1..104";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.HRPDSubnetLength";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.HRPDSubnetLength";
+    }
+    leaf hrpd-subnet {
+      type string {
+        length "0..13";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.HRPDSubnet";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.HRPDSubnet";
+    }
+    leaf a13-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.A13IPAddress";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.A13IPAddress";
+    }
+  }
+
+  grouping cdma2000-hrpd-self-config-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.";
+    leaf rfcnfl-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.RFCNFLSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.RFCNFLSelfConfigEnable";
+    }
+    leaf pilot-pn-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.PilotPNSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.PilotPNSelfConfigEnable";
+    }
+    leaf max-fap-tx-power-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.MaxFAPTxPowerSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.MaxFAPTxPowerSelfConfigEnable";
+    }
+    leaf max-hrpd-beacon-tx-power-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.MaxHRPDBeaconTxPowerSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.MaxHRPDBeaconTxPowerSelfConfigEnable";
+    }
+  }
+
+  grouping fap-control-cdma2000-one-x-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.OneX.";
+    leaf admin-state {
+      type enumeration {
+        enum Lock {
+          description
+            "Enum Value - Lock";
+        }
+        enum Unlock {
+          description
+            "Enum Value - Unlock";
+        }
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.AdminState";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.AdminState";
+    }
+    leaf op-state {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.OpState";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.OpState";
+    }
+    leaf rf-tx-status {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.RFTxStatus";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.RFTxStatus";
+    }
+    leaf daylight {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.Daylight";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.Daylight";
+    }
+    leaf max-p-rev {
+      type int32 {
+        range "6..9";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.MaxPRev";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.MaxPRev";
+    }
+    leaf reregister {
+      type uint32;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.Reregister";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.Reregister";
+    }
+    leaf emergency-session-period {
+      type uint32 {
+        range "15..1800";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.EmergencySessionPeriod";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.EmergencySessionPeriod";
+    }
+    leaf location-area-code {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.LocationAreaCode";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.LocationAreaCode";
+    }
+    leaf msc-id {
+      type uint32;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.MSCId";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.MSCId";
+    }
+    leaf active-handin-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinEnable";
+    }
+  }
+
+  grouping one-x-active-handin-measurement-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.";
+    leaf active-handin-measurement-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.ActiveHandinMeasurementEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.ActiveHandinMeasurementEnable";
+    }
+    leaf active-hand-in-measurement-duration {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.ActiveHandInMeasurementDuration";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.ActiveHandInMeasurementDuration";
+    }
+    leaf measurement-report-threshold {
+      type int32 {
+        range "-150..0";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.MeasurementReportThreshold";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.MeasurementReportThreshold";
+    }
+  }
+
+  grouping cdma2000-one-x-self-config-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.";
+    leaf rfcnfl-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.RFCNFLSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.RFCNFLSelfConfigEnable";
+    }
+    leaf pilot-pn-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.PilotPNSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.PilotPNSelfConfigEnable";
+    }
+    leaf max-fap-tx-power-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.MaxFAPTxPowerSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.MaxFAPTxPowerSelfConfigEnable";
+    }
+    leaf max-fap-beacon-tx-power-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.MaxFAPBeaconTxPowerSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.MaxFAPBeaconTxPowerSelfConfigEnable";
+    }
+  }
+
+  grouping cdma2000-time-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.Time.";
+    leaf local-time-zone {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.Time.LocalTimeZone";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.Time.LocalTimeZone";
+    }
+    leaf current-local-time {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.Time.CurrentLocalTime";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.Time.CurrentLocalTime";
+    }
+    leaf leap-seconds {
+      type int32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.Time.LeapSeconds";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.Time.LeapSeconds";
+    }
+    leaf daylight-savings-used {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.Time.DaylightSavingsUsed";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.Time.DaylightSavingsUsed";
+    }
+  }
+
+  grouping fap-control-lte-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.LTE.";
+    leaf op-state {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.LTE.OpState";
+      reference
+        "FAPService.{i}.FAPControl.LTE.OpState";
+    }
+    leaf admin-state {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.LTE.AdminState";
+      reference
+        "FAPService.{i}.FAPControl.LTE.AdminState";
+    }
+    leaf rf-tx-status {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.LTE.RFTxStatus";
+      reference
+        "FAPService.{i}.FAPControl.LTE.RFTxStatus";
+    }
+    leaf pm-config {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.FAPControl.LTE.PMConfig";
+      reference
+        "FAPService.{i}.FAPControl.LTE.PMConfig";
+    }
+  }
+
+  grouping lte-gateway-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.LTE.Gateway.";
+    leaf sec-gw-server1 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.LTE.Gateway.SecGWServer1";
+      reference
+        "FAPService.{i}.FAPControl.LTE.Gateway.SecGWServer1";
+    }
+    leaf sec-gw-server2 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.LTE.Gateway.SecGWServer2";
+      reference
+        "FAPService.{i}.FAPControl.LTE.Gateway.SecGWServer2";
+    }
+    leaf sec-gw-server3 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.LTE.Gateway.SecGWServer3";
+      reference
+        "FAPService.{i}.FAPControl.LTE.Gateway.SecGWServer3";
+    }
+    leaf s1-sig-link-server-list {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.FAPControl.LTE.Gateway.S1SigLinkServerList";
+      reference
+        "FAPService.{i}.FAPControl.LTE.Gateway.S1SigLinkServerList";
+    }
+    leaf s1-connection-mode {
+      type enumeration {
+        enum One {
+          description
+            "Enum Value - One";
+        }
+        enum All {
+          description
+            "Enum Value - All";
+        }
+      }
+      description
+        "FAPService.{i}.FAPControl.LTE.Gateway.S1ConnectionMode";
+      reference
+        "FAPService.{i}.FAPControl.LTE.Gateway.S1ConnectionMode";
+    }
+    leaf s1-sig-link-port {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "FAPService.{i}.FAPControl.LTE.Gateway.S1SigLinkPort";
+      reference
+        "FAPService.{i}.FAPControl.LTE.Gateway.S1SigLinkPort";
+    }
+  }
+
+  grouping fap-control-umts-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.UMTS.";
+    leaf op-state {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.UMTS.OpState";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.OpState";
+    }
+    leaf admin-state {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.AdminState";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.AdminState";
+    }
+    leaf rf-tx-status {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.UMTS.RFTxStatus";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.RFTxStatus";
+    }
+    leaf pm-config {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.FAPControl.UMTS.PMConfig";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.PMConfig";
+    }
+  }
+
+  grouping umts-gateway-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.UMTS.Gateway.";
+    leaf sec-gw-server1 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.UMTS.Gateway.SecGWServer1";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.Gateway.SecGWServer1";
+    }
+    leaf sec-gw-server2 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.UMTS.Gateway.SecGWServer2";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.Gateway.SecGWServer2";
+    }
+    leaf sec-gw-server3 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.UMTS.Gateway.SecGWServer3";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.Gateway.SecGWServer3";
+    }
+    leaf fapgw-server1 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.UMTS.Gateway.FAPGWServer1";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.Gateway.FAPGWServer1";
+    }
+    leaf fapgw-server2 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.UMTS.Gateway.FAPGWServer2";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.Gateway.FAPGWServer2";
+    }
+    leaf fapgw-server3 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.UMTS.Gateway.FAPGWServer3";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.Gateway.FAPGWServer3";
+    }
+    leaf fapgw-port {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "FAPService.{i}.FAPControl.UMTS.Gateway.FAPGWPort";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.Gateway.FAPGWPort";
+    }
+  }
+
+  grouping fap-control-umts-self-config-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.UMTS.SelfConfig.";
+    leaf uarfcn-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.UARFCNSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.UARFCNSelfConfigEnable";
+    }
+    leaf primary-scrambling-code-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.PrimaryScramblingCodeSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.PrimaryScramblingCodeSelfConfigEnable";
+    }
+    leaf max-fap-tx-power-expanded-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.MaxFAPTxPowerExpandedSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.MaxFAPTxPowerExpandedSelfConfigEnable";
+    }
+    leaf pcpich-power-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.PCPICHPowerSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.PCPICHPowerSelfConfigEnable";
+    }
+    leaf max-ul-tx-power-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.MaxULTxPowerSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.MaxULTxPowerSelfConfigEnable";
+    }
+    leaf lacracura-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.LACRACURASelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.LACRACURASelfConfigEnable";
+    }
+    leaf neighbor-list-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.NeighborListSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.NeighborListSelfConfigEnable";
+    }
+    leaf cell-re-selection-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.CellReSelectionSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.CellReSelectionSelfConfigEnable";
+    }
+    leaf intra-freq-meas-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.IntraFreqMeasSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.IntraFreqMeasSelfConfigEnable";
+    }
+    leaf inter-freq-meas-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.InterFreqMeasSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.InterFreqMeasSelfConfigEnable";
+    }
+    leaf inter-rat-meas-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.InterRATMeasSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.InterRATMeasSelfConfigEnable";
+    }
+    leaf ue-internal-meas-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.UEInternalMeasConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.UEInternalMeasConfigEnable";
+    }
+    leaf noise-rise-limit-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.NoiseRiseLimitConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.NoiseRiseLimitConfigEnable";
+    }
+  }
+
+  grouping rem-cdma2000-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.";
+    leaf in-service-handling {
+      type enumeration {
+        enum Immediate {
+          description
+            "Enum Value - Immediate";
+        }
+        enum Delayed {
+          description
+            "Enum Value - Delayed";
+        }
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.InServiceHandling";
+      reference
+        "FAPService.{i}.REM.CDMA2000.InServiceHandling";
+    }
+    leaf scan-on-boot {
+      type boolean;
+      description
+        "FAPService.{i}.REM.CDMA2000.ScanOnBoot";
+      reference
+        "FAPService.{i}.REM.CDMA2000.ScanOnBoot";
+    }
+    leaf scan-now {
+      type boolean;
+      description
+        "FAPService.{i}.REM.CDMA2000.ScanNow";
+      reference
+        "FAPService.{i}.REM.CDMA2000.ScanNow";
+    }
+    leaf return-timer {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.ReturnTimer";
+      reference
+        "FAPService.{i}.REM.CDMA2000.ReturnTimer";
+    }
+    leaf scan-periodically {
+      type boolean;
+      description
+        "FAPService.{i}.REM.CDMA2000.ScanPeriodically";
+      reference
+        "FAPService.{i}.REM.CDMA2000.ScanPeriodically";
+    }
+    leaf periodic-interval {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.PeriodicInterval";
+      reference
+        "FAPService.{i}.REM.CDMA2000.PeriodicInterval";
+    }
+    leaf periodic-time {
+      type string;
+      description
+        "FAPService.{i}.REM.CDMA2000.PeriodicTime";
+      reference
+        "FAPService.{i}.REM.CDMA2000.PeriodicTime";
+    }
+    leaf report-overheads {
+      type enumeration {
+        enum All {
+          description
+            "Enum Value - All";
+        }
+        enum OneX {
+          description
+            "Enum Value - OneX";
+        }
+        enum HRPD {
+          description
+            "Enum Value - HRPD";
+        }
+        enum None {
+          description
+            "Enum Value - None";
+        }
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.ReportOverheads";
+      reference
+        "FAPService.{i}.REM.CDMA2000.ReportOverheads";
+    }
+    leaf scan-timeout {
+      type uint32;
+      description
+        "FAPService.{i}.REM.CDMA2000.ScanTimeout";
+      reference
+        "FAPService.{i}.REM.CDMA2000.ScanTimeout";
+    }
+    leaf scan-status {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.ScanStatus";
+      reference
+        "FAPService.{i}.REM.CDMA2000.ScanStatus";
+    }
+    leaf error-details {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.ErrorDetails";
+      reference
+        "FAPService.{i}.REM.CDMA2000.ErrorDetails";
+    }
+    leaf last-scan-time {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.LastScanTime";
+      reference
+        "FAPService.{i}.REM.CDMA2000.LastScanTime";
+    }
+  }
+
+  grouping rem-cdma2000-hrpd-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.HRPD.";
+    leaf max-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.MaxCellEntries";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.MaxCellEntries";
+    }
+    leaf cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.CellNumberOfEntries";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.CellNumberOfEntries";
+    }
+    leaf max-channel-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.MaxChannelEntries";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.MaxChannelEntries";
+    }
+    leaf channel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.ChannelNumberOfEntries";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.ChannelNumberOfEntries";
+    }
+  }
+
+  grouping cell-control-channel-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.";
+    leaf color-code {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.ColorCode";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.ColorCode";
+    }
+    leaf sector-id {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.SectorID";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.SectorID";
+    }
+    leaf subnet-mask {
+      type int32 {
+        range "0..104";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.SubnetMask";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.SubnetMask";
+    }
+    leaf country-code {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.CountryCode";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.CountryCode";
+    }
+    leaf latitude {
+      type int32 {
+        range "-1296000..1296000";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.Latitude";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.Latitude";
+    }
+    leaf longitude {
+      type int32 {
+        range "-2592000..2592000";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.Longitude";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.Longitude";
+    }
+  }
+
+  grouping cell-rf-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.";
+    leaf band {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.Band";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.Band";
+    }
+    leaf rfcnfl {
+      type uint32 {
+        range "0..2016";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.RFCNFL";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.RFCNFL";
+    }
+    leaf io {
+      type int32 {
+        range "-105..-25";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.Io";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.Io";
+    }
+    leaf p-ilot-pn {
+      type uint32 {
+        range "0..511";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.PIlotPN";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.PIlotPN";
+    }
+    leaf p-ilot-pn-phase {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.PIlotPNPhase";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.PIlotPNPhase";
+    }
+    leaf pilot-strength-ecp {
+      type int32 {
+        range "-130..-25";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.PilotStrengthEcp";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.PilotStrengthEcp";
+    }
+    leaf pilot-strength-ecp-io {
+      type int32 {
+        range "-25..0";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.PilotStrengthEcpIo";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.PilotStrengthEcpIo";
+    }
+    leaf overheads-available {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.OverheadsAvailable";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.OverheadsAvailable";
+    }
+  }
+
+  grouping hrpd-channel-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.Enable";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.Alias";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.Alias";
+    }
+    leaf sniffing-band-class {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.SniffingBandClass";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.SniffingBandClass";
+    }
+    leaf sniffing-channel-number {
+      type uint32 {
+        range "0..2016";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.SniffingChannelNumber";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.SniffingChannelNumber";
+    }
+    leaf pn-list {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.PNList";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.PNList";
+    }
+  }
+
+  grouping cdma2000-macro-timing-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.MacroTiming.";
+    leaf admin-state {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.AdminState";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.AdminState";
+    }
+    leaf tracking-channel-number {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.TrackingChannelNumber";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.TrackingChannelNumber";
+    }
+    leaf tracking-band-class {
+      type uint32 {
+        range "0..31";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.TrackingBandClass";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.TrackingBandClass";
+    }
+    leaf tracking-pn-offset {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.TrackingPNOffset";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.TrackingPNOffset";
+    }
+    leaf timing-source {
+      type uint32 {
+        range "0..1";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.TimingSource";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.TimingSource";
+    }
+    leaf channel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.ChannelNumberOfEntries";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.ChannelNumberOfEntries";
+    }
+  }
+
+  grouping macro-timing-channel-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.Enable";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.Alias";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.Alias";
+    }
+    leaf air-interface-type {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.AirInterfaceType";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.AirInterfaceType";
+    }
+    leaf band-class {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.BandClass";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.BandClass";
+    }
+    leaf channel-number {
+      type uint32;
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.ChannelNumber";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.ChannelNumber";
+    }
+    leaf priority {
+      type uint32;
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.Priority";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.Priority";
+    }
+    leaf pn-list {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.PNList";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.PNList";
+    }
+  }
+
+  grouping rem-cdma2000-one-x-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.OneX.";
+    leaf max-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.MaxCellEntries";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.MaxCellEntries";
+    }
+    leaf cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.CellNumberOfEntries";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.CellNumberOfEntries";
+    }
+    leaf max-channel-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.MaxChannelEntries";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.MaxChannelEntries";
+    }
+    leaf channel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.ChannelNumberOfEntries";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.ChannelNumberOfEntries";
+    }
+  }
+
+  grouping one-x-cell-control-channel-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.";
+    leaf sid {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.SID";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.SID";
+    }
+    leaf nid {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.NID";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.NID";
+    }
+    leaf regzone {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.REGZONE";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.REGZONE";
+    }
+    leaf baselat {
+      type int32 {
+        range "-2147483648..2147483647";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.BASELAT";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.BASELAT";
+    }
+    leaf baselong {
+      type int32 {
+        range "-2147483648..2147483647";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.BASELONG";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.BASELONG";
+    }
+    leaf mcc {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.MCC";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.MCC";
+    }
+    leaf mncimsi1112 {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.MNCIMSI1112";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.MNCIMSI1112";
+    }
+    leaf baseid {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.BASEID";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.BASEID";
+    }
+    leaf apid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.APID";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.APID";
+    }
+    leaf apidmask {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.APIDMASK";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.APIDMASK";
+    }
+    leaf apidtext {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.APIDTEXT";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.APIDTEXT";
+    }
+  }
+
+  grouping one-x-cell-rf-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.";
+    leaf band {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.Band";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.Band";
+    }
+    leaf rfcnfl {
+      type uint32 {
+        range "0..2016";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.RFCNFL";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.RFCNFL";
+    }
+    leaf io {
+      type int32 {
+        range "-105..-25";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.Io";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.Io";
+    }
+    leaf p-ilot-pn {
+      type uint32 {
+        range "0..511";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.PIlotPN";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.PIlotPN";
+    }
+    leaf p-ilot-pn-phase {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.PIlotPNPhase";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.PIlotPNPhase";
+    }
+    leaf pilot-strength-ecp {
+      type int32 {
+        range "-130..-25";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.PilotStrengthEcp";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.PilotStrengthEcp";
+    }
+    leaf pilot-strength-ecp-io {
+      type int32 {
+        range "-25..0";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.PilotStrengthEcpIo";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.PilotStrengthEcpIo";
+    }
+    leaf overheads-available {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.OverheadsAvailable";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.OverheadsAvailable";
+    }
+  }
+
+  grouping one-x-channel-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.Enable";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.Alias";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.Alias";
+    }
+    leaf sniffing-band-class {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.SniffingBandClass";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.SniffingBandClass";
+    }
+    leaf sniffing-channel-number {
+      type uint32 {
+        range "0..2016";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.SniffingChannelNumber";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.SniffingChannelNumber";
+    }
+    leaf pn-list {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.PNList";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.PNList";
+    }
+  }
+
+  grouping rem-lte-g {
+    description
+      "Grouping object for FAPService.{i}.REM.LTE.";
+    leaf in-service-handling {
+      type enumeration {
+        enum Immediate {
+          description
+            "Enum Value - Immediate";
+        }
+        enum Delayed {
+          description
+            "Enum Value - Delayed";
+        }
+      }
+      description
+        "FAPService.{i}.REM.LTE.InServiceHandling";
+      reference
+        "FAPService.{i}.REM.LTE.InServiceHandling";
+    }
+    leaf scan-on-boot {
+      type boolean;
+      description
+        "FAPService.{i}.REM.LTE.ScanOnBoot";
+      reference
+        "FAPService.{i}.REM.LTE.ScanOnBoot";
+    }
+    leaf scan-periodically {
+      type boolean;
+      description
+        "FAPService.{i}.REM.LTE.ScanPeriodically";
+      reference
+        "FAPService.{i}.REM.LTE.ScanPeriodically";
+    }
+    leaf periodic-interval {
+      type uint32;
+      description
+        "FAPService.{i}.REM.LTE.PeriodicInterval";
+      reference
+        "FAPService.{i}.REM.LTE.PeriodicInterval";
+    }
+    leaf periodic-time {
+      type string;
+      description
+        "FAPService.{i}.REM.LTE.PeriodicTime";
+      reference
+        "FAPService.{i}.REM.LTE.PeriodicTime";
+    }
+    leaf remplmn-list {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.REM.LTE.REMPLMNList";
+      reference
+        "FAPService.{i}.REM.LTE.REMPLMNList";
+    }
+    leaf rem-band-list {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.REM.LTE.REMBandList";
+      reference
+        "FAPService.{i}.REM.LTE.REMBandList";
+    }
+    leaf eutra-carrier-arfcndl-list {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.REM.LTE.EUTRACarrierARFCNDLList";
+      reference
+        "FAPService.{i}.REM.LTE.EUTRACarrierARFCNDLList";
+    }
+    leaf scan-timeout {
+      type uint32;
+      description
+        "FAPService.{i}.REM.LTE.ScanTimeout";
+      reference
+        "FAPService.{i}.REM.LTE.ScanTimeout";
+    }
+    leaf scan-status {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.ScanStatus";
+      reference
+        "FAPService.{i}.REM.LTE.ScanStatus";
+    }
+    leaf error-details {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.ErrorDetails";
+      reference
+        "FAPService.{i}.REM.LTE.ErrorDetails";
+    }
+    leaf last-scan-time {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.LastScanTime";
+      reference
+        "FAPService.{i}.REM.LTE.LastScanTime";
+    }
+    leaf max-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.MaxCellEntries";
+      reference
+        "FAPService.{i}.REM.LTE.MaxCellEntries";
+    }
+    leaf cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.CellNumberOfEntries";
+      reference
+        "FAPService.{i}.REM.LTE.CellNumberOfEntries";
+    }
+    leaf max-carrier-meas-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.MaxCarrierMeasEntries";
+      reference
+        "FAPService.{i}.REM.LTE.MaxCarrierMeasEntries";
+    }
+    leaf carrier-meas-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.CarrierMeasNumberOfEntries";
+      reference
+        "FAPService.{i}.REM.LTE.CarrierMeasNumberOfEntries";
+    }
+  }
+
+  grouping lte-carrier-meas-g {
+    description
+      "Grouping object for FAPService.{i}.REM.LTE.CarrierMeas.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.REM.LTE.CarrierMeas.{i}.Enable";
+      reference
+        "FAPService.{i}.REM.LTE.CarrierMeas.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.REM.LTE.CarrierMeas.{i}.Alias";
+      reference
+        "FAPService.{i}.REM.LTE.CarrierMeas.{i}.Alias";
+    }
+    leaf carrier-arfcndl {
+      type int32 {
+        range "min..65535";
+      }
+      description
+        "FAPService.{i}.REM.LTE.CarrierMeas.{i}.CarrierARFCNDL";
+      reference
+        "FAPService.{i}.REM.LTE.CarrierMeas.{i}.CarrierARFCNDL";
+    }
+    leaf carrier-ch-width {
+      type int32 {
+        range "min..750";
+      }
+      description
+        "FAPService.{i}.REM.LTE.CarrierMeas.{i}.CarrierChWidth";
+      reference
+        "FAPService.{i}.REM.LTE.CarrierMeas.{i}.CarrierChWidth";
+    }
+    leaf carrier-rssi {
+      type int32 {
+        range "-100..-25";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.CarrierMeas.{i}.CarrierRSSI";
+      reference
+        "FAPService.{i}.REM.LTE.CarrierMeas.{i}.CarrierRSSI";
+    }
+  }
+
+  grouping cell-bcch-g {
+    description
+      "Grouping object for FAPService.{i}.REM.LTE.Cell.{i}.BCCH.";
+    leaf dl-bandwidth {
+      type uint32 {
+        range "6 | 15 | 25 | 50 | 75 | 100";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.DLBandwidth";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.DLBandwidth";
+    }
+    leaf ul-bandwidth {
+      type uint32 {
+        range "6 | 15 | 25 | 50 | 75 | 100";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.ULBandwidth";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.ULBandwidth";
+    }
+    leaf rs-tx-power {
+      type int32 {
+        range "-60..50";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.RSTxPower";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.RSTxPower";
+    }
+    leaf tac {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.TAC";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.TAC";
+    }
+    leaf cell-id {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.CellID";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.CellID";
+    }
+    leaf cell-barred {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.CellBarred";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.CellBarred";
+    }
+    leaf csg-indication {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.CSGIndication";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.CSGIndication";
+    }
+    leaf csg-identity {
+      type uint32 {
+        range "0..134217727";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.CSGIdentity";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.CSGIdentity";
+    }
+    leaf max-plmn-list-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.MaxPLMNListEntries";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.MaxPLMNListEntries";
+    }
+    leaf plmn-list-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNListNumberOfEntries";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNListNumberOfEntries";
+    }
+  }
+
+  grouping bcch-plmn-list-g {
+    description
+      "Grouping object for FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNList.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf plmnid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNList.{i}.PLMNID";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNList.{i}.PLMNID";
+    }
+    leaf cell-reserved-for-operator-use {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNList.{i}.CellReservedForOperatorUse";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNList.{i}.CellReservedForOperatorUse";
+    }
+  }
+
+  grouping lte-cell-rf-g {
+    description
+      "Grouping object for FAPService.{i}.REM.LTE.Cell.{i}.RF.";
+    leaf eutra-carrier-arfcn {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.RF.EUTRACarrierARFCN";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.RF.EUTRACarrierARFCN";
+    }
+    leaf phy-cell-id {
+      type uint32 {
+        range "0..503";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.RF.PhyCellID";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.RF.PhyCellID";
+    }
+    leaf rsrp {
+      type int32 {
+        range "-140..-44";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.RF.RSRP";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.RF.RSRP";
+    }
+    leaf rsrq {
+      type int32 {
+        range "-240..0";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.RF.RSRQ";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.RF.RSRQ";
+    }
+    leaf rssi {
+      type int32 {
+        range "-110..-19";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.RF.RSSI";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.RF.RSSI";
+    }
+  }
+
+  grouping umts-gsm-g {
+    description
+      "Grouping object for FAPService.{i}.REM.UMTS.GSM.";
+    leaf in-service-handling {
+      type enumeration {
+        enum Immediate {
+          description
+            "Enum Value - Immediate";
+        }
+        enum Delayed {
+          description
+            "Enum Value - Delayed";
+        }
+      }
+      description
+        "FAPService.{i}.REM.UMTS.GSM.InServiceHandling";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.InServiceHandling";
+    }
+    leaf scan-on-boot {
+      type boolean;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.ScanOnBoot";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.ScanOnBoot";
+    }
+    leaf scan-periodically {
+      type boolean;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.ScanPeriodically";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.ScanPeriodically";
+    }
+    leaf periodic-interval {
+      type uint32;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.PeriodicInterval";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.PeriodicInterval";
+    }
+    leaf periodic-time {
+      type string;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.PeriodicTime";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.PeriodicTime";
+    }
+    leaf remplmn-list {
+      type string {
+        length "min..6";
+      }
+      description
+        "FAPService.{i}.REM.UMTS.GSM.REMPLMNList";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.REMPLMNList";
+    }
+    leaf rem-band-list {
+      type enumeration {
+        enum T-GSM380 {
+          description
+            "Enum Value - T-GSM380";
+        }
+        enum T-GSM410 {
+          description
+            "Enum Value - T-GSM410";
+        }
+        enum GSM450 {
+          description
+            "Enum Value - GSM450";
+        }
+        enum GSM480 {
+          description
+            "Enum Value - GSM480";
+        }
+        enum GSM710 {
+          description
+            "Enum Value - GSM710";
+        }
+        enum GSM750 {
+          description
+            "Enum Value - GSM750";
+        }
+        enum T-GSM810 {
+          description
+            "Enum Value - T-GSM810";
+        }
+        enum GSM850 {
+          description
+            "Enum Value - GSM850";
+        }
+        enum P-GSM900 {
+          description
+            "Enum Value - P-GSM900";
+        }
+        enum E-GSM900 {
+          description
+            "Enum Value - E-GSM900";
+        }
+        enum R-GSM900 {
+          description
+            "Enum Value - R-GSM900";
+        }
+        enum T-GSM900 {
+          description
+            "Enum Value - T-GSM900";
+        }
+        enum DCS1800 {
+          description
+            "Enum Value - DCS1800";
+        }
+        enum PCS1900 {
+          description
+            "Enum Value - PCS1900";
+        }
+      }
+      description
+        "FAPService.{i}.REM.UMTS.GSM.REMBandList";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.REMBandList";
+    }
+    leaf arfcn-list {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.REM.UMTS.GSM.ARFCNList";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.ARFCNList";
+    }
+    leaf scan-timeout {
+      type uint32;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.ScanTimeout";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.ScanTimeout";
+    }
+    leaf scan-status {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.ScanStatus";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.ScanStatus";
+    }
+    leaf error-details {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.ErrorDetails";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.ErrorDetails";
+    }
+    leaf last-scan-time {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.LastScanTime";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.LastScanTime";
+    }
+    leaf max-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.MaxCellEntries";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.MaxCellEntries";
+    }
+    leaf cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.CellNumberOfEntries";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.CellNumberOfEntries";
+    }
+  }
+
+  grouping gsm-cell-g {
+    description
+      "Grouping object for FAPService.{i}.REM.UMTS.GSM.Cell.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf band-indicator {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.BandIndicator";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.BandIndicator";
+    }
+    leaf arfcn {
+      type uint32 {
+        range "0..1023";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.ARFCN";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.ARFCN";
+    }
+    leaf bsic {
+      type uint32 {
+        range "0..63";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.BSIC";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.BSIC";
+    }
+    leaf plmnid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.PLMNID";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.PLMNID";
+    }
+    leaf lac {
+      type uint32 {
+        range "1..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.LAC";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.LAC";
+    }
+    leaf rac {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.RAC";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.RAC";
+    }
+    leaf ci {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.CI";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.CI";
+    }
+    leaf rssi {
+      type int32 {
+        range "-110..48";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.RSSI";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.RSSI";
+    }
+  }
+
+  grouping umts-wcdma-g {
+    description
+      "Grouping object for FAPService.{i}.REM.UMTS.WCDMA.";
+    leaf in-service-handling {
+      type enumeration {
+        enum Immediate {
+          description
+            "Enum Value - Immediate";
+        }
+        enum Delayed {
+          description
+            "Enum Value - Delayed";
+        }
+      }
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.InServiceHandling";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.InServiceHandling";
+    }
+    leaf scan-on-boot {
+      type boolean;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.ScanOnBoot";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.ScanOnBoot";
+    }
+    leaf scan-periodically {
+      type boolean;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.ScanPeriodically";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.ScanPeriodically";
+    }
+    leaf periodic-interval {
+      type uint32;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.PeriodicInterval";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.PeriodicInterval";
+    }
+    leaf periodic-time {
+      type string;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.PeriodicTime";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.PeriodicTime";
+    }
+    leaf remplmn-list {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.REMPLMNList";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.REMPLMNList";
+    }
+    leaf rem-band-list {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.REMBandList";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.REMBandList";
+    }
+    leaf uarfcndl-list {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.UARFCNDLList";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.UARFCNDLList";
+    }
+    leaf scan-timeout {
+      type uint32;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.ScanTimeout";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.ScanTimeout";
+    }
+    leaf scan-status {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.ScanStatus";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.ScanStatus";
+    }
+    leaf error-details {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.ErrorDetails";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.ErrorDetails";
+    }
+    leaf last-scan-time {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.LastScanTime";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.LastScanTime";
+    }
+    leaf max-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.MaxCellEntries";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.MaxCellEntries";
+    }
+    leaf cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.CellNumberOfEntries";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.CellNumberOfEntries";
+    }
+  }
+
+  grouping wcdma-cell-bcch-g {
+    description
+      "Grouping object for FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.";
+    leaf plmn-type {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.PLMNType";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.PLMNType";
+    }
+    leaf plmnid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.PLMNID";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.PLMNID";
+    }
+    leaf lac {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.LAC";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.LAC";
+    }
+    leaf rac {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.RAC";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.RAC";
+    }
+    leaf cell-id {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CellID";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CellID";
+    }
+    leaf pcpich-tx-power {
+      type int32 {
+        range "-10..50";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.PCPICHTxPower";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.PCPICHTxPower";
+    }
+    leaf csg-indicator {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGIndicator";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGIndicator";
+    }
+    leaf csgid {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGID";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGID";
+    }
+    leaf uarfcndl-list {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.UARFCNDLList";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.UARFCNDLList";
+    }
+  }
+
+  grouping bcch-csgpsc-split-info-g {
+    description
+      "Grouping object for FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.";
+    leaf start-psc-range1-coefficient {
+      type uint32 {
+        range "0..63";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.StartPSCRange1Coefficient";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.StartPSCRange1Coefficient";
+    }
+    leaf number-of-ps-cs {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs";
+    }
+    leaf psc-range2-offset {
+      type uint32 {
+        range "0..63";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.PSCRange2Offset";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.PSCRange2Offset";
+    }
+  }
+
+  grouping bcch-reference-position-g {
+    description
+      "Grouping object for FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.";
+    leaf latitude {
+      type int32 {
+        range "-90000000..90000000";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.Latitude";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.Latitude";
+    }
+    leaf longitude {
+      type int32 {
+        range "-180000000..180000000";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.Longitude";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.Longitude";
+    }
+    leaf uncertainty-semi-major {
+      type uint32 {
+        range "0..127";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.UncertaintySemiMajor";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.UncertaintySemiMajor";
+    }
+    leaf uncertainty-semi-minor {
+      type uint32 {
+        range "0..127";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.UncertaintySemiMinor";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.UncertaintySemiMinor";
+    }
+    leaf orientation-of-major-axis {
+      type uint32 {
+        range "0..89";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.OrientationOfMajorAxis";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.OrientationOfMajorAxis";
+    }
+    leaf confidence {
+      type uint32 {
+        range "0..100";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.Confidence";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.Confidence";
+    }
+  }
+
+  grouping wcdma-cell-rf-g {
+    description
+      "Grouping object for FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.";
+    leaf uarfcndl {
+      type uint32 {
+        range "0..16383";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.UARFCNDL";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.UARFCNDL";
+    }
+    leaf cpichrscp {
+      type int32 {
+        range "-120..-25";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.CPICHRSCP";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.CPICHRSCP";
+    }
+    leaf cpich-ec-no {
+      type int32 {
+        range "-48..0";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.CPICHEcNo";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.CPICHEcNo";
+    }
+    leaf rssi {
+      type int32 {
+        range "-100..-25";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.RSSI";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.RSSI";
+    }
+    leaf primary-scrambling-code {
+      type uint32 {
+        range "0..511";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.PrimaryScramblingCode";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.PrimaryScramblingCode";
+    }
+  }
+
+  grouping transport-packet-g {
+    description
+      "Grouping object for FAPService.{i}.Transport.Packet.";
+    leaf echo-interval {
+      type uint32;
+      description
+        "FAPService.{i}.Transport.Packet.EchoInterval";
+      reference
+        "FAPService.{i}.Transport.Packet.EchoInterval";
+    }
+    leaf sent-packets {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.Packet.SentPackets";
+      reference
+        "FAPService.{i}.Transport.Packet.SentPackets";
+    }
+    leaf rcv-packets {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.Packet.RcvPackets";
+      reference
+        "FAPService.{i}.Transport.Packet.RcvPackets";
+    }
+  }
+
+  grouping transport-real-time-g {
+    description
+      "Grouping object for FAPService.{i}.Transport.RealTime.";
+    leaf rtcp-enable {
+      type boolean;
+      description
+        "FAPService.{i}.Transport.RealTime.RTCPEnable";
+      reference
+        "FAPService.{i}.Transport.RealTime.RTCPEnable";
+    }
+    leaf sent-packets {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.SentPackets";
+      reference
+        "FAPService.{i}.Transport.RealTime.SentPackets";
+    }
+    leaf rcv-packets {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.RcvPackets";
+      reference
+        "FAPService.{i}.Transport.RealTime.RcvPackets";
+    }
+    leaf bytes-sent {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.BytesSent";
+      reference
+        "FAPService.{i}.Transport.RealTime.BytesSent";
+    }
+    leaf bytes-received {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.BytesReceived";
+      reference
+        "FAPService.{i}.Transport.RealTime.BytesReceived";
+    }
+  }
+
+  grouping real-time-perf-g {
+    description
+      "Grouping object for FAPService.{i}.Transport.RealTime.Perf.";
+    leaf lost-rcv-packets {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.Perf.LostRcvPackets";
+      reference
+        "FAPService.{i}.Transport.RealTime.Perf.LostRcvPackets";
+    }
+    leaf lost-far-end-packets {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.Perf.LostFarEndPackets";
+      reference
+        "FAPService.{i}.Transport.RealTime.Perf.LostFarEndPackets";
+    }
+    leaf overruns {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.Perf.Overruns";
+      reference
+        "FAPService.{i}.Transport.RealTime.Perf.Overruns";
+    }
+    leaf underruns {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.Perf.Underruns";
+      reference
+        "FAPService.{i}.Transport.RealTime.Perf.Underruns";
+    }
+    leaf mean-rtt {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.Perf.MeanRTT";
+      reference
+        "FAPService.{i}.Transport.RealTime.Perf.MeanRTT";
+    }
+    leaf max-rtt {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.Perf.MaxRTT";
+      reference
+        "FAPService.{i}.Transport.RealTime.Perf.MaxRTT";
+    }
+    leaf mean-receive-jitter {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.Perf.MeanReceiveJitter";
+      reference
+        "FAPService.{i}.Transport.RealTime.Perf.MeanReceiveJitter";
+    }
+    leaf max-receive-jitter {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.Perf.MaxReceiveJitter";
+      reference
+        "FAPService.{i}.Transport.RealTime.Perf.MaxReceiveJitter";
+    }
+    leaf mean-far-end-jitter {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.Perf.MeanFarEndJitter";
+      reference
+        "FAPService.{i}.Transport.RealTime.Perf.MeanFarEndJitter";
+    }
+    leaf max-far-end-jitter {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.Perf.MaxFarEndJitter";
+      reference
+        "FAPService.{i}.Transport.RealTime.Perf.MaxFarEndJitter";
+    }
+  }
+
+  grouping transport-sctp-g {
+    description
+      "Grouping object for FAPService.{i}.Transport.SCTP.";
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.Transport.SCTP.Enable";
+      reference
+        "FAPService.{i}.Transport.SCTP.Enable";
+    }
+    leaf hb-interval {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "FAPService.{i}.Transport.SCTP.HBInterval";
+      reference
+        "FAPService.{i}.Transport.SCTP.HBInterval";
+    }
+    leaf max-association-retransmits {
+      type uint32;
+      description
+        "FAPService.{i}.Transport.SCTP.MaxAssociationRetransmits";
+      reference
+        "FAPService.{i}.Transport.SCTP.MaxAssociationRetransmits";
+    }
+    leaf max-init-retransmits {
+      type uint32;
+      description
+        "FAPService.{i}.Transport.SCTP.MaxInitRetransmits";
+      reference
+        "FAPService.{i}.Transport.SCTP.MaxInitRetransmits";
+    }
+    leaf max-path-retransmits {
+      type uint32;
+      description
+        "FAPService.{i}.Transport.SCTP.MaxPathRetransmits";
+      reference
+        "FAPService.{i}.Transport.SCTP.MaxPathRetransmits";
+    }
+    leaf rto-initial {
+      type uint32;
+      description
+        "FAPService.{i}.Transport.SCTP.RTOInitial";
+      reference
+        "FAPService.{i}.Transport.SCTP.RTOInitial";
+    }
+    leaf rto-max {
+      type uint32;
+      description
+        "FAPService.{i}.Transport.SCTP.RTOMax";
+      reference
+        "FAPService.{i}.Transport.SCTP.RTOMax";
+    }
+    leaf rto-min {
+      type uint32;
+      description
+        "FAPService.{i}.Transport.SCTP.RTOMin";
+      reference
+        "FAPService.{i}.Transport.SCTP.RTOMin";
+    }
+    leaf val-cookie-life {
+      type uint32;
+      description
+        "FAPService.{i}.Transport.SCTP.ValCookieLife";
+      reference
+        "FAPService.{i}.Transport.SCTP.ValCookieLife";
+    }
+    leaf out-of-blues {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.OutOfBlues";
+      reference
+        "FAPService.{i}.Transport.SCTP.OutOfBlues";
+    }
+    leaf checksum-errors {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.ChecksumErrors";
+      reference
+        "FAPService.{i}.Transport.SCTP.ChecksumErrors";
+    }
+    leaf out-ctrl-chunks {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.OutCtrlChunks";
+      reference
+        "FAPService.{i}.Transport.SCTP.OutCtrlChunks";
+    }
+    leaf out-order-chunks {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.OutOrderChunks";
+      reference
+        "FAPService.{i}.Transport.SCTP.OutOrderChunks";
+    }
+    leaf out-unorder-chunks {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.OutUnorderChunks";
+      reference
+        "FAPService.{i}.Transport.SCTP.OutUnorderChunks";
+    }
+    leaf in-ctrl-chunks {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.InCtrlChunks";
+      reference
+        "FAPService.{i}.Transport.SCTP.InCtrlChunks";
+    }
+    leaf in-order-chunks {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.InOrderChunks";
+      reference
+        "FAPService.{i}.Transport.SCTP.InOrderChunks";
+    }
+    leaf in-unorder-chunks {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.InUnorderChunks";
+      reference
+        "FAPService.{i}.Transport.SCTP.InUnorderChunks";
+    }
+    leaf frag-usr-msgs {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.FragUsrMsgs";
+      reference
+        "FAPService.{i}.Transport.SCTP.FragUsrMsgs";
+    }
+    leaf reasm-usr-msgs {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.ReasmUsrMsgs";
+      reference
+        "FAPService.{i}.Transport.SCTP.ReasmUsrMsgs";
+    }
+    leaf out-sctp-packs {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.OutSCTPPacks";
+      reference
+        "FAPService.{i}.Transport.SCTP.OutSCTPPacks";
+    }
+    leaf in-sctp-packs {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.InSCTPPacks";
+      reference
+        "FAPService.{i}.Transport.SCTP.InSCTPPacks";
+    }
+    leaf discontinuity {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.Discontinuity";
+      reference
+        "FAPService.{i}.Transport.SCTP.Discontinuity";
+    }
+    leaf assoc-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.AssocNumberOfEntries";
+      reference
+        "FAPService.{i}.Transport.SCTP.AssocNumberOfEntries";
+    }
+  }
+
+  grouping sctp-assoc-g {
+    description
+      "Grouping object for FAPService.{i}.Transport.SCTP.Assoc.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.Status";
+      reference
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.Status";
+    }
+    leaf primary-peer-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.PrimaryPeerAddress";
+      reference
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.PrimaryPeerAddress";
+    }
+    leaf local-port {
+      type uint32 {
+        range "0..63999";
+      }
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.LocalPort";
+      reference
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.LocalPort";
+    }
+    leaf in-streams {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.InStreams";
+      reference
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.InStreams";
+    }
+    leaf out-streams {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.OutStreams";
+      reference
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.OutStreams";
+    }
+    leaf start-time {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.StartTime";
+      reference
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.StartTime";
+    }
+    leaf discontinuity {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.Discontinuity";
+      reference
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.Discontinuity";
+    }
+  }
+
+  grouping transport-sip-g {
+    description
+      "Grouping object for FAPService.{i}.Transport.SIP.";
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.Transport.SIP.Enable";
+      reference
+        "FAPService.{i}.Transport.SIP.Enable";
+    }
+  }
+
+  grouping sip-fcs-g {
+    description
+      "Grouping object for FAPService.{i}.Transport.SIP.FCS.";
+    leaf fcsuri {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.FCSURI";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.FCSURI";
+    }
+    leaf out-going-proxy-uri {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.OutGoingProxyURI";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.OutGoingProxyURI";
+    }
+    leaf p-access-net-info-header {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Transport.SIP.FCS.PAccessNetInfoHeader";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.PAccessNetInfoHeader";
+    }
+    leaf realm {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.Realm";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.Realm";
+    }
+    leaf impu {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.IMPU";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.IMPU";
+    }
+    leaf impi {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.IMPI";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.IMPI";
+    }
+    leaf sip-password {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.SIPPassword";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.SIPPassword";
+    }
+    leaf sip-auth-capability {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Transport.SIP.FCS.SIPAuthCapability";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.SIPAuthCapability";
+    }
+    leaf sip-auth-method {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.SIPAuthMethod";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.SIPAuthMethod";
+    }
+    leaf sip-local-port {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.SIPLocalPort";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.SIPLocalPort";
+    }
+    leaf rtp-port-low-limit {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.RTPPortLowLimit";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.RTPPortLowLimit";
+    }
+    leaf rtp-port-high-limit {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.RTPPortHighLimit";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.RTPPortHighLimit";
+    }
+    leaf sip-reg-expiry {
+      type uint32;
+      description
+        "FAPService.{i}.Transport.SIP.FCS.SIPRegExpiry";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.SIPRegExpiry";
+    }
+    leaf sip-session-expiry {
+      type uint32 {
+        range "90..max";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.SIPSessionExpiry";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.SIPSessionExpiry";
+    }
+    leaf emergency-numbers-list {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.EmergencyNumbersList";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.EmergencyNumbersList";
+    }
+    leaf timer-t1 {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.TimerT1";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.TimerT1";
+    }
+    leaf timer-t2 {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.TimerT2";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.TimerT2";
+    }
+    leaf timer-t4 {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.TimerT4";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.TimerT4";
+    }
+    leaf t3210 {
+      type uint32 {
+        range "1..20";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.T3210";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.T3210";
+    }
+  }
+
+  grouping transport-security-g {
+    description
+      "Grouping object for FAPService.{i}.Transport.Security.";
+    leaf secret-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.Security.SecretNumberOfEntries";
+      reference
+        "FAPService.{i}.Transport.Security.SecretNumberOfEntries";
+    }
+  }
+
+  grouping security-secret-g {
+    description
+      "Grouping object for FAPService.{i}.Transport.Security.Secret.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.Transport.Security.Secret.{i}.Enable";
+      reference
+        "FAPService.{i}.Transport.Security.Secret.{i}.Enable";
+    }
+    leaf type {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Transport.Security.Secret.{i}.Type";
+      reference
+        "FAPService.{i}.Transport.Security.Secret.{i}.Type";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Transport.Security.Secret.{i}.Status";
+      reference
+        "FAPService.{i}.Transport.Security.Secret.{i}.Status";
+    }
+    leaf uicc-card-id {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Transport.Security.Secret.{i}.UICCCardID";
+      reference
+        "FAPService.{i}.Transport.Security.Secret.{i}.UICCCardID";
+    }
+  }
+
+  grouping fap-service-access-mgmt-g {
+    description
+      "Grouping object";
+  }
+
+  grouping cdma2000-local-ip-access-g {
+    description
+      "Grouping object";
+  }
+
+  grouping access-mgmt-legacy-g {
+    description
+      "Grouping object";
+  }
+
+  grouping fap-service-cell-config-g {
+    description
+      "Grouping object";
+  }
+
+  grouping hrpd-ran-g {
+    description
+      "Grouping object";
+  }
+
+  grouping epc-ho-g {
+    description
+      "Grouping object";
+  }
+
+  grouping lte-ran-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ran-csg-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ran-drb-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ran-erab-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ran-mac-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ran-mobility-g {
+    description
+      "Grouping object";
+  }
+
+  grouping mobility-conn-mode-g {
+    description
+      "Grouping object";
+  }
+
+  grouping mobility-idle-mode-g {
+    description
+      "Grouping object";
+  }
+
+  grouping idle-mode-irat-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ran-phy-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ran-rlc-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ran-rrc-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ran-rru-g {
+    description
+      "Grouping object";
+  }
+
+  grouping cs-domain-hho-g {
+    description
+      "Grouping object";
+  }
+
+  grouping cs-domain-rab-g {
+    description
+      "Grouping object";
+  }
+
+  grouping cn-hho-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ps-domain-rab-g {
+    description
+      "Grouping object";
+  }
+
+  grouping umts-ran-rrc-g {
+    description
+      "Grouping object";
+  }
+
+  grouping fap-service-rem-g {
+    description
+      "Grouping object";
+  }
+
+  grouping hrpd-cell-g {
+    description
+      "Grouping object";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+  }
+
+  grouping one-x-cell-g {
+    description
+      "Grouping object";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+  }
+
+  grouping lte-cell-g {
+    description
+      "Grouping object";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+  }
+
+  grouping rem-umts-g {
+    description
+      "Grouping object";
+  }
+
+  grouping wcdma-cell-g {
+    description
+      "Grouping object";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+  }
+
+  grouping fap-service-transport-g {
+    description
+      "Grouping object";
+  }
+
+  augment "/tr-181:device/tr-181:services" {
+    description
+      "augment this model in tr-181";
+    list fap-service {
+      key "index";
+      description
+        "FAPService.{i}.";
+      reference
+        "FAPService.{i}.";
+      uses fap-service-g;
+      container access-mgmt {
+        description
+          "Container for object class FAPService.{i}.AccessMgmt.";
+        reference
+          "FAPService.{i}.AccessMgmt.";
+        uses fap-service-access-mgmt-g;
+        container cdma2000 {
+          description
+            "Container for object class FAPService.{i}.AccessMgmt.CDMA2000.";
+          reference
+            "FAPService.{i}.AccessMgmt.CDMA2000.";
+          uses access-mgmt-cdma2000-g;
+          container local-ip-access {
+            description
+              "Container for object class FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.";
+            reference
+              "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.";
+            uses cdma2000-local-ip-access-g;
+            container hrpd {
+              description
+                "Container for object class FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.";
+              reference
+                "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.";
+              uses local-ip-access-hrpd-g;
+              list egress-filter {
+                key "index";
+                description
+                  "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.";
+                reference
+                  "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.";
+                uses hrpd-egress-filter-g;
+              }
+            }
+          }
+          list member-detail {
+            key "index";
+            description
+              "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.";
+            reference
+              "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.";
+            uses cdma2000-member-detail-g;
+          }
+        }
+        container lte {
+          description
+            "Container for object class FAPService.{i}.AccessMgmt.LTE.";
+          reference
+            "FAPService.{i}.AccessMgmt.LTE.";
+          uses access-mgmt-lte-g;
+          container local-ip-access {
+            description
+              "Container for object class FAPService.{i}.AccessMgmt.LTE.LocalIPAccess.";
+            reference
+              "FAPService.{i}.AccessMgmt.LTE.LocalIPAccess.";
+            uses lte-local-ip-access-g;
+          }
+        }
+        container legacy {
+          description
+            "Container for object class FAPService.{i}.AccessMgmt.Legacy.";
+          reference
+            "FAPService.{i}.AccessMgmt.Legacy.";
+          uses access-mgmt-legacy-g;
+          container local-ip-access {
+            description
+              "Container for object class FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.";
+            reference
+              "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.";
+            uses legacy-local-ip-access-g;
+            list rule {
+              key "index";
+              description
+                "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.";
+              reference
+                "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.";
+              uses local-ip-access-rule-g;
+            }
+          }
+        }
+        container umts {
+          description
+            "Container for object class FAPService.{i}.AccessMgmt.UMTS.";
+          reference
+            "FAPService.{i}.AccessMgmt.UMTS.";
+          uses access-mgmt-umts-g;
+          container local-ip-access {
+            description
+              "Container for object class FAPService.{i}.AccessMgmt.UMTS.LocalIPAccess.";
+            reference
+              "FAPService.{i}.AccessMgmt.UMTS.LocalIPAccess.";
+            uses umts-local-ip-access-g;
+          }
+          list member-detail {
+            key "index";
+            description
+              "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.";
+            reference
+              "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.";
+            uses umts-member-detail-g;
+          }
+        }
+      }
+      container capabilities {
+        description
+          "Container for object class FAPService.{i}.Capabilities.";
+        reference
+          "FAPService.{i}.Capabilities.";
+        uses fap-service-capabilities-g;
+        container cdma2000 {
+          description
+            "Container for object class FAPService.{i}.Capabilities.CDMA2000.";
+          reference
+            "FAPService.{i}.Capabilities.CDMA2000.";
+          uses capabilities-cdma2000-g;
+          container hrpd {
+            description
+              "Container for object class FAPService.{i}.Capabilities.CDMA2000.HRPD.";
+            reference
+              "FAPService.{i}.Capabilities.CDMA2000.HRPD.";
+            uses cdma2000-hrpd-g;
+            container self-config {
+              description
+                "Container for object class FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.";
+              reference
+                "FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.";
+              uses hrpd-self-config-g;
+            }
+          }
+          container one-x {
+            description
+              "Container for object class FAPService.{i}.Capabilities.CDMA2000.OneX.";
+            reference
+              "FAPService.{i}.Capabilities.CDMA2000.OneX.";
+            uses cdma2000-one-x-g;
+            container self-config {
+              description
+                "Container for object class FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.";
+              reference
+                "FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.";
+              uses one-x-self-config-g;
+            }
+          }
+        }
+        container lte {
+          description
+            "Container for object class FAPService.{i}.Capabilities.LTE.";
+          reference
+            "FAPService.{i}.Capabilities.LTE.";
+          uses capabilities-lte-g;
+        }
+        container umts {
+          description
+            "Container for object class FAPService.{i}.Capabilities.UMTS.";
+          reference
+            "FAPService.{i}.Capabilities.UMTS.";
+          uses capabilities-umts-g;
+          container self-config {
+            description
+              "Container for object class FAPService.{i}.Capabilities.UMTS.SelfConfig.";
+            reference
+              "FAPService.{i}.Capabilities.UMTS.SelfConfig.";
+            uses umts-self-config-g;
+          }
+        }
+      }
+      container cell-config {
+        description
+          "Container for object class FAPService.{i}.CellConfig.";
+        reference
+          "FAPService.{i}.CellConfig.";
+        uses fap-service-cell-config-g;
+        container cdma2000 {
+          description
+            "Container for object class FAPService.{i}.CellConfig.CDMA2000.";
+          reference
+            "FAPService.{i}.CellConfig.CDMA2000.";
+          uses cell-config-cdma2000-g;
+          container beacon {
+            description
+              "Container for object class FAPService.{i}.CellConfig.CDMA2000.Beacon.";
+            reference
+              "FAPService.{i}.CellConfig.CDMA2000.Beacon.";
+            uses cdma2000-beacon-g;
+            list beacon-list {
+              key "index";
+              description
+                "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.";
+              uses beacon-beacon-list-g;
+            }
+            list hrpd-beacon-list {
+              key "index";
+              description
+                "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.";
+              uses beacon-hrpd-beacon-list-g;
+            }
+          }
+          container hrpd {
+            description
+              "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.";
+            reference
+              "FAPService.{i}.CellConfig.CDMA2000.HRPD.";
+            uses cell-config-cdma2000-hrpd-g;
+            container access-auth-config {
+              description
+                "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthConfig.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthConfig.";
+              uses hrpd-access-auth-config-g;
+            }
+            container access-auth-stats {
+              description
+                "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.";
+              uses hrpd-access-auth-stats-g;
+            }
+            list batch-pcfpdsn {
+              key "index";
+              description
+                "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.";
+              uses hrpd-batch-pcfpdsn-g;
+            }
+            container call-control-stats {
+              description
+                "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.";
+              uses hrpd-call-control-stats-g;
+            }
+            container pcf-config {
+              description
+                "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.";
+              uses hrpd-pcf-config-g;
+              container pcf-performance-stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.";
+                uses pcf-config-pcf-performance-stats-g;
+              }
+            }
+            list pcfpdsn {
+              key "index";
+              description
+                "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.";
+              uses hrpd-pcfpdsn-g;
+              container a11-reg-update-stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.";
+                uses pcfpdsn-a11-reg-update-stats-g;
+              }
+              container a11-session-update-stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.";
+                uses pcfpdsn-a11-session-update-stats-g;
+              }
+              container aux-a10-stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.";
+                uses pcfpdsn-aux-a10-stats-g;
+              }
+              container pcfpdsn-stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.";
+                uses pcfpdsn-pcfpdsn-stats-g;
+              }
+            }
+            container qo-s-stats {
+              description
+                "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.";
+              uses hrpd-qo-s-stats-g;
+            }
+            container ran {
+              description
+                "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.";
+              uses hrpd-ran-g;
+              container rf {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.";
+                uses ran-rf-g;
+              }
+            }
+            container rnc-sig-apps-stats {
+              description
+                "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.";
+              uses hrpd-rnc-sig-apps-stats-g;
+            }
+            container redirect {
+              description
+                "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.Redirect.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.HRPD.Redirect.";
+              uses hrpd-redirect-g;
+            }
+          }
+          container one-x {
+            description
+              "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.";
+            reference
+              "FAPService.{i}.CellConfig.CDMA2000.OneX.";
+            uses cell-config-cdma2000-one-x-g;
+            list batch-pcfpdsn {
+              key "index";
+              description
+                "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.";
+              uses one-x-batch-pcfpdsn-g;
+            }
+            container pcf-config {
+              description
+                "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.";
+              uses one-x-pcf-config-g;
+              container pcf-performance-stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.";
+                uses one-x-pcf-config-pcf-performance-stats-g;
+              }
+            }
+            list pcfpdsn {
+              key "index";
+              description
+                "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.";
+              uses one-x-pcfpdsn-g;
+              container a11-reg-update-stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.";
+                uses one-x-pcfpdsn-a11-reg-update-stats-g;
+              }
+              container pcfpdsn-stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.";
+                uses one-x-pcfpdsn-pcfpdsn-stats-g;
+              }
+            }
+            container ran {
+              description
+                "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.";
+              uses one-x-ran-g;
+              container apidm {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.";
+                uses ran-apidm-g;
+              }
+              container apidtm {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.";
+                uses ran-apidtm-g;
+              }
+              container appim {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.";
+                uses ran-appim-g;
+                list appirec {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.";
+                  uses appim-appirec-g;
+                }
+              }
+              container access-parameters {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.";
+                uses ran-access-parameters-g;
+              }
+              container extended-system-parameters {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.";
+                uses ran-extended-system-parameters-g;
+              }
+              container forward-pwr-ctr {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.";
+                uses ran-forward-pwr-ctr-g;
+              }
+              container hard-handoff {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.";
+                uses ran-hard-handoff-g;
+                container stats {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.";
+                  uses hard-handoff-stats-g;
+                }
+              }
+              list neighbor-list {
+                key "index";
+                description
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.";
+                uses ran-neighbor-list-g;
+              }
+              container network-listen-mode-config {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.";
+                uses ran-network-listen-mode-config-g;
+              }
+              container power-control {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.";
+                uses ran-power-control-g;
+              }
+              container rf {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.";
+                uses one-x-ran-rf-g;
+              }
+              container system-parameters {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.";
+                uses ran-system-parameters-g;
+              }
+            }
+            container redirect {
+              description
+                "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.Redirect.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.OneX.Redirect.";
+              uses one-x-redirect-g;
+            }
+            container stats {
+              description
+                "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.";
+              uses one-x-stats-g;
+            }
+          }
+        }
+        container lte {
+          description
+            "Container for object class FAPService.{i}.CellConfig.LTE.";
+          reference
+            "FAPService.{i}.CellConfig.LTE.";
+          uses cell-config-lte-g;
+          container epc {
+            description
+              "Container for object class FAPService.{i}.CellConfig.LTE.EPC.";
+            reference
+              "FAPService.{i}.CellConfig.LTE.EPC.";
+            uses lte-epc-g;
+            container ho {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.EPC.HO.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.EPC.HO.";
+              uses epc-ho-g;
+              container stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.";
+                uses ho-stats-g;
+              }
+            }
+            list plmn-list {
+              key "index";
+              description
+                "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.";
+              uses epc-plmn-list-g;
+            }
+            list qo-s {
+              key "index";
+              description
+                "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.";
+              uses epc-qo-s-g;
+            }
+          }
+          container energy-savings {
+            description
+              "Container for object class FAPService.{i}.CellConfig.LTE.EnergySavings.";
+            reference
+              "FAPService.{i}.CellConfig.LTE.EnergySavings.";
+            uses lte-energy-savings-g;
+            container activation-candidate-cells-load {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.EnergySavings.ActivationCandidateCellsLoad.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.EnergySavings.ActivationCandidateCellsLoad.";
+              uses energy-savings-activation-candidate-cells-load-g;
+            }
+            container deactivation-candidate-cells-load {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.EnergySavings.DeactivationCandidateCellsLoad.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.EnergySavings.DeactivationCandidateCellsLoad.";
+              uses energy-savings-deactivation-candidate-cells-load-g;
+            }
+            list not-allowed-time-period {
+              key "index";
+              description
+                "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.";
+              uses energy-savings-not-allowed-time-period-g;
+            }
+          }
+          container ran {
+            description
+              "Container for object class FAPService.{i}.CellConfig.LTE.RAN.";
+            reference
+              "FAPService.{i}.CellConfig.LTE.RAN.";
+            uses lte-ran-g;
+            container csg {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.RAN.CSG.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.RAN.CSG.";
+              uses ran-csg-g;
+              container stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.";
+                uses csg-stats-g;
+              }
+            }
+            container cell-restriction {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.";
+              uses ran-cell-restriction-g;
+            }
+            container common {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Common.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.RAN.Common.";
+              uses ran-common-g;
+            }
+            container drb {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.RAN.DRB.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.RAN.DRB.";
+              uses ran-drb-g;
+              container stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.";
+                uses drb-stats-g;
+              }
+            }
+            container erab {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.RAN.ERAB.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.RAN.ERAB.";
+              uses ran-erab-g;
+              container stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.";
+                uses erab-stats-g;
+                list lgw {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.";
+                  uses stats-lgw-g;
+                }
+              }
+            }
+            container mac {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.RAN.MAC.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.RAN.MAC.";
+              uses ran-mac-g;
+              container drx {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.";
+                uses mac-drx-g;
+              }
+              container rach {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.";
+                uses mac-rach-g;
+              }
+              container ulsch {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.";
+                uses mac-ulsch-g;
+              }
+            }
+            container mobility {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.RAN.Mobility.";
+              uses ran-mobility-g;
+              container conn-mode {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.";
+                uses mobility-conn-mode-g;
+                container eutra {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.";
+                  uses conn-mode-eutra-g;
+                }
+                container irat {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.";
+                  uses conn-mode-irat-g;
+                }
+              }
+              container idle-mode {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.";
+                uses mobility-idle-mode-g;
+                container common {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.";
+                  uses idle-mode-common-g;
+                }
+                container irat {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.";
+                  uses idle-mode-irat-g;
+                  container cdma2000 {
+                    description
+                      "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.";
+                    reference
+                      "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.";
+                    uses irat-cdma2000-g;
+                    list cdma2000-band {
+                      key "index";
+                      description
+                        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.";
+                      reference
+                        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.";
+                      uses cdma2000-cdma2000-band-g;
+                    }
+                  }
+                  container geran {
+                    description
+                      "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.";
+                    reference
+                      "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.";
+                    uses irat-geran-g;
+                    list geran-freq-group {
+                      key "index";
+                      description
+                        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.";
+                      reference
+                        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.";
+                      uses geran-geran-freq-group-g;
+                    }
+                  }
+                  container utra {
+                    description
+                      "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.";
+                    reference
+                      "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.";
+                    uses irat-utra-g;
+                    list utranfdd-freq {
+                      key "index";
+                      description
+                        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.";
+                      reference
+                        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.";
+                      uses utra-utranfdd-freq-g;
+                    }
+                  }
+                }
+                container inter-freq {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.";
+                  uses idle-mode-inter-freq-g;
+                  list carrier {
+                    key "index";
+                    description
+                      "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.";
+                    reference
+                      "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.";
+                    uses inter-freq-carrier-g;
+                  }
+                }
+                container intra-freq {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.";
+                  uses idle-mode-intra-freq-g;
+                }
+              }
+            }
+            container neighbor-list {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.RAN.NeighborList.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.";
+              uses lte-ran-neighbor-list-g;
+              container inter-rat-cell {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.";
+                uses neighbor-list-inter-rat-cell-g;
+                list cdma2000 {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.";
+                  uses inter-rat-cell-cdma2000-g;
+                }
+                list gsm {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.";
+                  uses inter-rat-cell-gsm-g;
+                }
+                list umts {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.";
+                  uses inter-rat-cell-umts-g;
+                }
+              }
+              list lte-cell {
+                key "index";
+                description
+                  "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.";
+                uses neighbor-list-lte-cell-g;
+              }
+            }
+            container neighbor-list-in-use {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.";
+              uses ran-neighbor-list-in-use-g;
+              container inter-rat-cell {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.";
+                uses neighbor-list-in-use-inter-rat-cell-g;
+                list cdma2000 {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.";
+                  uses neighbor-list-in-use-inter-rat-cell-cdma2000-g;
+                }
+                list gsm {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.";
+                  uses neighbor-list-in-use-inter-rat-cell-gsm-g;
+                }
+                list umts {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.";
+                  uses neighbor-list-in-use-inter-rat-cell-umts-g;
+                }
+              }
+              list lte-cell {
+                key "index";
+                description
+                  "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.";
+                uses neighbor-list-in-use-lte-cell-g;
+              }
+            }
+            container phy {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.RAN.PHY.";
+              uses ran-phy-g;
+              container antenna-info {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.AntennaInfo.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.PHY.AntennaInfo.";
+                uses phy-antenna-info-g;
+              }
+              container mbsfn {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.";
+                uses phy-mbsfn-g;
+                list sf-config-list {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.";
+                  uses mbsfn-sf-config-list-g;
+                }
+              }
+              container pdsch {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.PDSCH.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.PHY.PDSCH.";
+                uses phy-pdsch-g;
+              }
+              container prach {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.";
+                uses phy-prach-g;
+              }
+              container prs {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.";
+                uses phy-prs-g;
+              }
+              container pucch {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.";
+                uses phy-pucch-g;
+              }
+              container pusch {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.";
+                uses phy-pusch-g;
+                container ulrs {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.";
+                  uses pusch-ulrs-g;
+                }
+              }
+              container srs {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.";
+                uses phy-srs-g;
+              }
+              container tdd-frame {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.TDDFrame.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.PHY.TDDFrame.";
+                uses phy-tdd-frame-g;
+              }
+              container ul-power-control {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.";
+                uses phy-ul-power-control-g;
+              }
+            }
+            container rf {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RF.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.RAN.RF.";
+              uses lte-ran-rf-g;
+            }
+            container rlc {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RLC.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.RAN.RLC.";
+              uses ran-rlc-g;
+              container sr-b1 {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.";
+                uses rlc-sr-b1-g;
+              }
+              container sr-b2 {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.";
+                uses rlc-sr-b2-g;
+              }
+            }
+            container rrc {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RRC.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.RAN.RRC.";
+              uses ran-rrc-g;
+              container stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RRC.Stats.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.RRC.Stats.";
+                uses rrc-stats-g;
+              }
+            }
+            container rrc-timers {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.";
+              uses ran-rrc-timers-g;
+            }
+            container rru {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RRU.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.RAN.RRU.";
+              uses ran-rru-g;
+              container stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RRU.Stats.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.RRU.Stats.";
+                uses rru-stats-g;
+              }
+            }
+            container s1-ap {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.RAN.S1AP.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.RAN.S1AP.";
+              uses ran-s1-ap-g;
+            }
+            container s1-u {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.RAN.S1U.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.RAN.S1U.";
+              uses ran-s1-u-g;
+            }
+          }
+          list tunnel {
+            key "index";
+            description
+              "FAPService.{i}.CellConfig.LTE.Tunnel.{i}.";
+            reference
+              "FAPService.{i}.CellConfig.LTE.Tunnel.{i}.";
+            uses lte-tunnel-g;
+          }
+        }
+        container umts {
+          description
+            "Container for object class FAPService.{i}.CellConfig.UMTS.";
+          reference
+            "FAPService.{i}.CellConfig.UMTS.";
+          uses cell-config-umts-g;
+          container cn {
+            description
+              "Container for object class FAPService.{i}.CellConfig.UMTS.CN.";
+            reference
+              "FAPService.{i}.CellConfig.UMTS.CN.";
+            uses umts-cn-g;
+            container cs-domain {
+              description
+                "Container for object class FAPService.{i}.CellConfig.UMTS.CN.CSDomain.";
+              reference
+                "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.";
+              uses cn-cs-domain-g;
+              container hho {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.";
+                uses cs-domain-hho-g;
+                container stats {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.";
+                  reference
+                    "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.";
+                  uses hho-stats-g;
+                }
+              }
+              container rab {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.";
+                uses cs-domain-rab-g;
+                container stats {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.";
+                  reference
+                    "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.";
+                  uses rab-stats-g;
+                }
+              }
+            }
+            container hho {
+              description
+                "Container for object class FAPService.{i}.CellConfig.UMTS.CN.HHO.";
+              reference
+                "FAPService.{i}.CellConfig.UMTS.CN.HHO.";
+              uses cn-hho-g;
+              container stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.CN.HHO.Stats.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.CN.HHO.Stats.";
+                uses cn-hho-stats-g;
+              }
+            }
+            container ps-domain {
+              description
+                "Container for object class FAPService.{i}.CellConfig.UMTS.CN.PSDomain.";
+              reference
+                "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.";
+              uses cn-ps-domain-g;
+              container rab {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.";
+                uses ps-domain-rab-g;
+                container stats {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.";
+                  reference
+                    "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.";
+                  uses ps-domain-rab-stats-g;
+                  list lgw {
+                    key "index";
+                    description
+                      "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.";
+                    reference
+                      "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.";
+                    uses rab-stats-lgw-g;
+                  }
+                }
+              }
+            }
+          }
+          container rab {
+            description
+              "Container for object class FAPService.{i}.CellConfig.UMTS.RAB.";
+            reference
+              "FAPService.{i}.CellConfig.UMTS.RAB.";
+            uses umts-rab-g;
+          }
+          container ran {
+            description
+              "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.";
+            reference
+              "FAPService.{i}.CellConfig.UMTS.RAN.";
+            uses umts-ran-g;
+            container csg {
+              description
+                "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.CSG.";
+              reference
+                "FAPService.{i}.CellConfig.UMTS.RAN.CSG.";
+              uses umts-ran-csg-g;
+              container csgpsc-split-info {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.";
+                uses csg-csgpsc-split-info-g;
+              }
+            }
+            container cell-restriction {
+              description
+                "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.";
+              reference
+                "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.";
+              uses umts-ran-cell-restriction-g;
+            }
+            container cell-selection {
+              description
+                "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.";
+              reference
+                "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.";
+              uses ran-cell-selection-g;
+            }
+            container drx {
+              description
+                "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.DRX.";
+              reference
+                "FAPService.{i}.CellConfig.UMTS.RAN.DRX.";
+              uses ran-drx-g;
+            }
+            container inter-freq-meas {
+              description
+                "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.";
+              reference
+                "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.";
+              uses ran-inter-freq-meas-g;
+              list instance {
+                key "index";
+                description
+                  "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.";
+                uses inter-freq-meas-instance-g;
+              }
+            }
+            container inter-rat-meas {
+              description
+                "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.";
+              reference
+                "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.";
+              uses ran-inter-rat-meas-g;
+              list instance {
+                key "index";
+                description
+                  "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.";
+                uses inter-rat-meas-instance-g;
+              }
+            }
+            container intra-freq-meas {
+              description
+                "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.";
+              reference
+                "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.";
+              uses ran-intra-freq-meas-g;
+              list instance {
+                key "index";
+                description
+                  "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.";
+                uses intra-freq-meas-instance-g;
+              }
+            }
+            container neighbor-list {
+              description
+                "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.";
+              reference
+                "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.";
+              uses umts-ran-neighbor-list-g;
+              list inter-freq-cell {
+                key "index";
+                description
+                  "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.";
+                uses neighbor-list-inter-freq-cell-g;
+              }
+              container inter-rat-cell {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.";
+                uses ran-neighbor-list-inter-rat-cell-g;
+                list gsm {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.";
+                  uses neighbor-list-inter-rat-cell-gsm-g;
+                }
+              }
+              list intra-freq-cell {
+                key "index";
+                description
+                  "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.";
+                uses neighbor-list-intra-freq-cell-g;
+              }
+            }
+            container neighbor-list-in-use {
+              description
+                "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.";
+              reference
+                "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.";
+              uses umts-ran-neighbor-list-in-use-g;
+              list inter-freq-cell {
+                key "index";
+                description
+                  "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.";
+                uses neighbor-list-in-use-inter-freq-cell-g;
+              }
+              container inter-rat-cell {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.";
+                uses ran-neighbor-list-in-use-inter-rat-cell-g;
+                list gsm {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.";
+                  uses ran-neighbor-list-in-use-inter-rat-cell-gsm-g;
+                }
+              }
+              list intra-freq-cell {
+                key "index";
+                description
+                  "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.";
+                uses neighbor-list-in-use-intra-freq-cell-g;
+              }
+            }
+            container power-control {
+              description
+                "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.";
+              reference
+                "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.";
+              uses umts-ran-power-control-g;
+            }
+            container rf {
+              description
+                "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.RF.";
+              reference
+                "FAPService.{i}.CellConfig.UMTS.RAN.RF.";
+              uses umts-ran-rf-g;
+            }
+            container rrc {
+              description
+                "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.RRC.";
+              reference
+                "FAPService.{i}.CellConfig.UMTS.RAN.RRC.";
+              uses umts-ran-rrc-g;
+              container stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.RRC.Stats.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.RRC.Stats.";
+                uses ran-rrc-stats-g;
+              }
+            }
+            container rrc-timers {
+              description
+                "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.";
+              reference
+                "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.";
+              uses umts-ran-rrc-timers-g;
+            }
+            container ue-internal-meas {
+              description
+                "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.";
+              reference
+                "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.";
+              uses ran-ue-internal-meas-g;
+            }
+          }
+        }
+      }
+      container fap-control {
+        description
+          "Container for object class FAPService.{i}.FAPControl.";
+        reference
+          "FAPService.{i}.FAPControl.";
+        uses fap-service-fap-control-g;
+        container cdma2000 {
+          description
+            "Container for object class FAPService.{i}.FAPControl.CDMA2000.";
+          reference
+            "FAPService.{i}.FAPControl.CDMA2000.";
+          uses fap-control-cdma2000-g;
+          container gateway {
+            description
+              "Container for object class FAPService.{i}.FAPControl.CDMA2000.Gateway.";
+            reference
+              "FAPService.{i}.FAPControl.CDMA2000.Gateway.";
+            uses cdma2000-gateway-g;
+          }
+          container hrpd {
+            description
+              "Container for object class FAPService.{i}.FAPControl.CDMA2000.HRPD.";
+            reference
+              "FAPService.{i}.FAPControl.CDMA2000.HRPD.";
+            uses fap-control-cdma2000-hrpd-g;
+            container a13 {
+              description
+                "Container for object class FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.";
+              reference
+                "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.";
+              uses hrpd-a13-g;
+              list color-code-to-uati104 {
+                key "index";
+                description
+                  "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.";
+                reference
+                  "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.";
+                uses a13-color-code-to-uati104-g;
+              }
+              list hrpd-subnet-to-ip {
+                key "index";
+                description
+                  "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.";
+                reference
+                  "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.";
+                uses a13-hrpd-subnet-to-ip-g;
+              }
+            }
+            container self-config {
+              description
+                "Container for object class FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.";
+              reference
+                "FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.";
+              uses cdma2000-hrpd-self-config-g;
+            }
+          }
+          container one-x {
+            description
+              "Container for object class FAPService.{i}.FAPControl.CDMA2000.OneX.";
+            reference
+              "FAPService.{i}.FAPControl.CDMA2000.OneX.";
+            uses fap-control-cdma2000-one-x-g;
+            container active-handin-measurement {
+              description
+                "Container for object class FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.";
+              reference
+                "FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.";
+              uses one-x-active-handin-measurement-g;
+            }
+            container self-config {
+              description
+                "Container for object class FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.";
+              reference
+                "FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.";
+              uses cdma2000-one-x-self-config-g;
+            }
+          }
+          container time {
+            description
+              "Container for object class FAPService.{i}.FAPControl.CDMA2000.Time.";
+            reference
+              "FAPService.{i}.FAPControl.CDMA2000.Time.";
+            uses cdma2000-time-g;
+          }
+        }
+        container lte {
+          description
+            "Container for object class FAPService.{i}.FAPControl.LTE.";
+          reference
+            "FAPService.{i}.FAPControl.LTE.";
+          uses fap-control-lte-g;
+          container gateway {
+            description
+              "Container for object class FAPService.{i}.FAPControl.LTE.Gateway.";
+            reference
+              "FAPService.{i}.FAPControl.LTE.Gateway.";
+            uses lte-gateway-g;
+          }
+        }
+        container umts {
+          description
+            "Container for object class FAPService.{i}.FAPControl.UMTS.";
+          reference
+            "FAPService.{i}.FAPControl.UMTS.";
+          uses fap-control-umts-g;
+          container gateway {
+            description
+              "Container for object class FAPService.{i}.FAPControl.UMTS.Gateway.";
+            reference
+              "FAPService.{i}.FAPControl.UMTS.Gateway.";
+            uses umts-gateway-g;
+          }
+          container self-config {
+            description
+              "Container for object class FAPService.{i}.FAPControl.UMTS.SelfConfig.";
+            reference
+              "FAPService.{i}.FAPControl.UMTS.SelfConfig.";
+            uses fap-control-umts-self-config-g;
+          }
+        }
+      }
+      container rem {
+        description
+          "Container for object class FAPService.{i}.REM.";
+        reference
+          "FAPService.{i}.REM.";
+        uses fap-service-rem-g;
+        container cdma2000 {
+          description
+            "Container for object class FAPService.{i}.REM.CDMA2000.";
+          reference
+            "FAPService.{i}.REM.CDMA2000.";
+          uses rem-cdma2000-g;
+          container hrpd {
+            description
+              "Container for object class FAPService.{i}.REM.CDMA2000.HRPD.";
+            reference
+              "FAPService.{i}.REM.CDMA2000.HRPD.";
+            uses rem-cdma2000-hrpd-g;
+            list cell {
+              key "index";
+              description
+                "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.";
+              reference
+                "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.";
+              uses hrpd-cell-g;
+              container control-channel {
+                description
+                  "Container for object class FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.";
+                reference
+                  "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.";
+                uses cell-control-channel-g;
+              }
+              container rf {
+                description
+                  "Container for object class FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.";
+                reference
+                  "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.";
+                uses cell-rf-g;
+              }
+            }
+            list channel {
+              key "index";
+              description
+                "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.";
+              reference
+                "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.";
+              uses hrpd-channel-g;
+            }
+          }
+          container macro-timing {
+            description
+              "Container for object class FAPService.{i}.REM.CDMA2000.MacroTiming.";
+            reference
+              "FAPService.{i}.REM.CDMA2000.MacroTiming.";
+            uses cdma2000-macro-timing-g;
+            list channel {
+              key "index";
+              description
+                "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.";
+              reference
+                "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.";
+              uses macro-timing-channel-g;
+            }
+          }
+          container one-x {
+            description
+              "Container for object class FAPService.{i}.REM.CDMA2000.OneX.";
+            reference
+              "FAPService.{i}.REM.CDMA2000.OneX.";
+            uses rem-cdma2000-one-x-g;
+            list cell {
+              key "index";
+              description
+                "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.";
+              reference
+                "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.";
+              uses one-x-cell-g;
+              container control-channel {
+                description
+                  "Container for object class FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.";
+                reference
+                  "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.";
+                uses one-x-cell-control-channel-g;
+              }
+              container rf {
+                description
+                  "Container for object class FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.";
+                reference
+                  "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.";
+                uses one-x-cell-rf-g;
+              }
+            }
+            list channel {
+              key "index";
+              description
+                "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.";
+              reference
+                "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.";
+              uses one-x-channel-g;
+            }
+          }
+        }
+        container lte {
+          description
+            "Container for object class FAPService.{i}.REM.LTE.";
+          reference
+            "FAPService.{i}.REM.LTE.";
+          uses rem-lte-g;
+          list carrier-meas {
+            key "index";
+            description
+              "FAPService.{i}.REM.LTE.CarrierMeas.{i}.";
+            reference
+              "FAPService.{i}.REM.LTE.CarrierMeas.{i}.";
+            uses lte-carrier-meas-g;
+          }
+          list cell {
+            key "index";
+            description
+              "FAPService.{i}.REM.LTE.Cell.{i}.";
+            reference
+              "FAPService.{i}.REM.LTE.Cell.{i}.";
+            uses lte-cell-g;
+            container bcch {
+              description
+                "Container for object class FAPService.{i}.REM.LTE.Cell.{i}.BCCH.";
+              reference
+                "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.";
+              uses cell-bcch-g;
+              list plmn-list {
+                key "index";
+                description
+                  "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNList.{i}.";
+                reference
+                  "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNList.{i}.";
+                uses bcch-plmn-list-g;
+              }
+            }
+            container rf {
+              description
+                "Container for object class FAPService.{i}.REM.LTE.Cell.{i}.RF.";
+              reference
+                "FAPService.{i}.REM.LTE.Cell.{i}.RF.";
+              uses lte-cell-rf-g;
+            }
+          }
+        }
+        container umts {
+          description
+            "Container for object class FAPService.{i}.REM.UMTS.";
+          reference
+            "FAPService.{i}.REM.UMTS.";
+          uses rem-umts-g;
+          container gsm {
+            description
+              "Container for object class FAPService.{i}.REM.UMTS.GSM.";
+            reference
+              "FAPService.{i}.REM.UMTS.GSM.";
+            uses umts-gsm-g;
+            list cell {
+              key "index";
+              description
+                "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.";
+              reference
+                "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.";
+              uses gsm-cell-g;
+            }
+          }
+          container wcdma {
+            description
+              "Container for object class FAPService.{i}.REM.UMTS.WCDMA.";
+            reference
+              "FAPService.{i}.REM.UMTS.WCDMA.";
+            uses umts-wcdma-g;
+            list cell {
+              key "index";
+              description
+                "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.";
+              reference
+                "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.";
+              uses wcdma-cell-g;
+              container bcch {
+                description
+                  "Container for object class FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.";
+                reference
+                  "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.";
+                uses wcdma-cell-bcch-g;
+                container csgpsc-split-info {
+                  description
+                    "Container for object class FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.";
+                  reference
+                    "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.";
+                  uses bcch-csgpsc-split-info-g;
+                }
+                container reference-position {
+                  description
+                    "Container for object class FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.";
+                  reference
+                    "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.";
+                  uses bcch-reference-position-g;
+                }
+              }
+              container rf {
+                description
+                  "Container for object class FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.";
+                reference
+                  "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.";
+                uses wcdma-cell-rf-g;
+              }
+            }
+          }
+        }
+      }
+      container transport {
+        description
+          "Container for object class FAPService.{i}.Transport.";
+        reference
+          "FAPService.{i}.Transport.";
+        uses fap-service-transport-g;
+        container packet {
+          description
+            "Container for object class FAPService.{i}.Transport.Packet.";
+          reference
+            "FAPService.{i}.Transport.Packet.";
+          uses transport-packet-g;
+        }
+        container real-time {
+          description
+            "Container for object class FAPService.{i}.Transport.RealTime.";
+          reference
+            "FAPService.{i}.Transport.RealTime.";
+          uses transport-real-time-g;
+          container perf {
+            description
+              "Container for object class FAPService.{i}.Transport.RealTime.Perf.";
+            reference
+              "FAPService.{i}.Transport.RealTime.Perf.";
+            uses real-time-perf-g;
+          }
+        }
+        container sctp {
+          description
+            "Container for object class FAPService.{i}.Transport.SCTP.";
+          reference
+            "FAPService.{i}.Transport.SCTP.";
+          uses transport-sctp-g;
+          list assoc {
+            key "index";
+            description
+              "FAPService.{i}.Transport.SCTP.Assoc.{i}.";
+            reference
+              "FAPService.{i}.Transport.SCTP.Assoc.{i}.";
+            uses sctp-assoc-g;
+          }
+        }
+        container sip {
+          description
+            "Container for object class FAPService.{i}.Transport.SIP.";
+          reference
+            "FAPService.{i}.Transport.SIP.";
+          uses transport-sip-g;
+          container fcs {
+            description
+              "Container for object class FAPService.{i}.Transport.SIP.FCS.";
+            reference
+              "FAPService.{i}.Transport.SIP.FCS.";
+            uses sip-fcs-g;
+          }
+        }
+        container security {
+          description
+            "Container for object class FAPService.{i}.Transport.Security.";
+          reference
+            "FAPService.{i}.Transport.Security.";
+          uses transport-security-g;
+          list secret {
+            key "index";
+            description
+              "FAPService.{i}.Transport.Security.Secret.{i}.";
+            reference
+              "FAPService.{i}.Transport.Security.Secret.{i}.";
+            uses security-secret-g;
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/netconf-server/schemas/tr-069-cwmp-notification.yang b/netconf-server/schemas/tr-069-cwmp-notification.yang
new file mode 100644 (file)
index 0000000..e0a47f6
--- /dev/null
@@ -0,0 +1,62534 @@
+module tr-069-cwmp-notification {
+  yang-version 1.1;
+  namespace "urn:onf:otcc:wireless:yang:tr069-notification";
+  prefix ran;
+
+  organization
+    "CommScope Inc";
+  contact
+    "Radio access OneCell <5g@commscope.com>
+
+     CommScope Inc
+     1100 10th Ave Ct SE,
+     Hickory,
+     NC 28602,
+     USA";
+  description
+    "This module contains a collection of YANG definitions for managing tr069 radio access network (RAN) devices.
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+       Unless required by applicable law or agreed to in writing, software
+       distributed under the License is distributed on an 'AS IS' BASIS,
+       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+       See the License for the specific language governing permissions and
+       limitations under the License.";
+
+  revision 2020-05-25 {
+    description
+      "Initial version, used only for ONAP PoC 2018-06-25";
+    reference
+      "ONF TR ???: A YANG Data Model for Radio Access Networks.
+       BBF TR-181-2-12-0 full";
+  }
+
+  grouping device-g {
+    description
+      "Grouping object for Device.";
+    leaf root-data-model-version {
+      type string;
+      config false;
+      description
+        "Device.RootDataModelVersion";
+      reference
+        "Device.RootDataModelVersion";
+    }
+    leaf interface-stack-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.InterfaceStackNumberOfEntries";
+      reference
+        "Device.InterfaceStackNumberOfEntries";
+    }
+  }
+
+  grouping device-atm-g {
+    description
+      "Grouping object for Device.ATM.";
+    leaf link-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.LinkNumberOfEntries";
+      reference
+        "Device.ATM.LinkNumberOfEntries";
+    }
+  }
+
+  grouping diagnostics-f5-loopback-g {
+    description
+      "Grouping object for Device.ATM.Diagnostics.F5Loopback.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Canceled {
+          description
+            "Enum Value - Canceled";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error {
+          description
+            "Enum Value - Error";
+        }
+      }
+      description
+        "Device.ATM.Diagnostics.F5Loopback.DiagnosticsState";
+      reference
+        "Device.ATM.Diagnostics.F5Loopback.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ATM.Diagnostics.F5Loopback.Interface";
+      reference
+        "Device.ATM.Diagnostics.F5Loopback.Interface";
+    }
+    leaf number-of-repetitions {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.ATM.Diagnostics.F5Loopback.NumberOfRepetitions";
+      reference
+        "Device.ATM.Diagnostics.F5Loopback.NumberOfRepetitions";
+    }
+    leaf timeout {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.ATM.Diagnostics.F5Loopback.Timeout";
+      reference
+        "Device.ATM.Diagnostics.F5Loopback.Timeout";
+    }
+    leaf success-count {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Diagnostics.F5Loopback.SuccessCount";
+      reference
+        "Device.ATM.Diagnostics.F5Loopback.SuccessCount";
+    }
+    leaf failure-count {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Diagnostics.F5Loopback.FailureCount";
+      reference
+        "Device.ATM.Diagnostics.F5Loopback.FailureCount";
+    }
+    leaf average-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Diagnostics.F5Loopback.AverageResponseTime";
+      reference
+        "Device.ATM.Diagnostics.F5Loopback.AverageResponseTime";
+    }
+    leaf minimum-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Diagnostics.F5Loopback.MinimumResponseTime";
+      reference
+        "Device.ATM.Diagnostics.F5Loopback.MinimumResponseTime";
+    }
+    leaf maximum-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Diagnostics.F5Loopback.MaximumResponseTime";
+      reference
+        "Device.ATM.Diagnostics.F5Loopback.MaximumResponseTime";
+    }
+  }
+
+  grouping atm-link-g {
+    description
+      "Grouping object for Device.ATM.Link.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ATM.Link.{i}.Enable";
+      reference
+        "Device.ATM.Link.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Status";
+      reference
+        "Device.ATM.Link.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ATM.Link.{i}.Alias";
+      reference
+        "Device.ATM.Link.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Name";
+      reference
+        "Device.ATM.Link.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Link.{i}.LastChange";
+      reference
+        "Device.ATM.Link.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.ATM.Link.{i}.LowerLayers";
+      reference
+        "Device.ATM.Link.{i}.LowerLayers";
+    }
+    leaf link-type {
+      type enumeration {
+        enum EoA {
+          description
+            "Enum Value - EoA";
+        }
+        enum IPoA {
+          description
+            "Enum Value - IPoA";
+        }
+        enum PPPoA {
+          description
+            "Enum Value - PPPoA";
+        }
+        enum CIP {
+          description
+            "Enum Value - CIP";
+        }
+        enum Unconfigured {
+          description
+            "Enum Value - Unconfigured";
+        }
+      }
+      description
+        "Device.ATM.Link.{i}.LinkType";
+      reference
+        "Device.ATM.Link.{i}.LinkType";
+    }
+    leaf auto-config {
+      type boolean;
+      config false;
+      description
+        "Device.ATM.Link.{i}.AutoConfig";
+      reference
+        "Device.ATM.Link.{i}.AutoConfig";
+    }
+    leaf destination-address {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ATM.Link.{i}.DestinationAddress";
+      reference
+        "Device.ATM.Link.{i}.DestinationAddress";
+    }
+    leaf encapsulation {
+      type enumeration {
+        enum LLC {
+          description
+            "Enum Value - LLC";
+        }
+        enum VCMUX {
+          description
+            "Enum Value - VCMUX";
+        }
+      }
+      description
+        "Device.ATM.Link.{i}.Encapsulation";
+      reference
+        "Device.ATM.Link.{i}.Encapsulation";
+    }
+    leaf fcs-preserved {
+      type boolean;
+      description
+        "Device.ATM.Link.{i}.FCSPreserved";
+      reference
+        "Device.ATM.Link.{i}.FCSPreserved";
+    }
+    leaf vc-search-list {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ATM.Link.{i}.VCSearchList";
+      reference
+        "Device.ATM.Link.{i}.VCSearchList";
+    }
+    leaf aal {
+      type string;
+      config false;
+      description
+        "Device.ATM.Link.{i}.AAL";
+      reference
+        "Device.ATM.Link.{i}.AAL";
+    }
+  }
+
+  grouping link-qo-s-g {
+    description
+      "Grouping object for Device.ATM.Link.{i}.QoS.";
+    leaf qo-s-class {
+      type enumeration {
+        enum UBR {
+          description
+            "Enum Value - UBR";
+        }
+        enum CBR {
+          description
+            "Enum Value - CBR";
+        }
+        enum GFR {
+          description
+            "Enum Value - GFR";
+        }
+        enum VBR-nrt {
+          description
+            "Enum Value - VBR-nrt";
+        }
+        enum VBR-rt {
+          description
+            "Enum Value - VBR-rt";
+        }
+        enum UBR+ {
+          description
+            "Enum Value - UBR+";
+        }
+        enum ABR {
+          description
+            "Enum Value - ABR";
+        }
+      }
+      description
+        "Device.ATM.Link.{i}.QoS.QoSClass";
+      reference
+        "Device.ATM.Link.{i}.QoS.QoSClass";
+    }
+    leaf peak-cell-rate {
+      type uint32;
+      description
+        "Device.ATM.Link.{i}.QoS.PeakCellRate";
+      reference
+        "Device.ATM.Link.{i}.QoS.PeakCellRate";
+    }
+    leaf maximum-burst-size {
+      type uint32;
+      description
+        "Device.ATM.Link.{i}.QoS.MaximumBurstSize";
+      reference
+        "Device.ATM.Link.{i}.QoS.MaximumBurstSize";
+    }
+    leaf sustainable-cell-rate {
+      type uint32;
+      description
+        "Device.ATM.Link.{i}.QoS.SustainableCellRate";
+      reference
+        "Device.ATM.Link.{i}.QoS.SustainableCellRate";
+    }
+  }
+
+  grouping link-stats-g {
+    description
+      "Grouping object for Device.ATM.Link.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.BytesSent";
+      reference
+        "Device.ATM.Link.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.BytesReceived";
+      reference
+        "Device.ATM.Link.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.PacketsSent";
+      reference
+        "Device.ATM.Link.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.PacketsReceived";
+      reference
+        "Device.ATM.Link.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.ErrorsSent";
+      reference
+        "Device.ATM.Link.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.ATM.Link.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.ATM.Link.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.ATM.Link.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.ATM.Link.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.ATM.Link.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.ATM.Link.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.ATM.Link.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.ATM.Link.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.ATM.Link.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.ATM.Link.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+    leaf transmitted-blocks {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.TransmittedBlocks";
+      reference
+        "Device.ATM.Link.{i}.Stats.TransmittedBlocks";
+    }
+    leaf received-blocks {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.ReceivedBlocks";
+      reference
+        "Device.ATM.Link.{i}.Stats.ReceivedBlocks";
+    }
+    leaf crc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.CRCErrors";
+      reference
+        "Device.ATM.Link.{i}.Stats.CRCErrors";
+    }
+    leaf hec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.HECErrors";
+      reference
+        "Device.ATM.Link.{i}.Stats.HECErrors";
+    }
+  }
+
+  grouping device-basapm-g {
+    description
+      "Grouping object for Device.BASAPM.";
+    leaf measurement-endpoint-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.BASAPM.MeasurementEndpointNumberOfEntries";
+      reference
+        "Device.BASAPM.MeasurementEndpointNumberOfEntries";
+    }
+  }
+
+  grouping basapm-measurement-endpoint-g {
+    description
+      "Grouping object for Device.BASAPM.MeasurementEndpoint.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.Alias";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.Enable";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.Enable";
+    }
+    leaf measurement-agent {
+      type string;
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.MeasurementAgent";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.MeasurementAgent";
+    }
+    leaf device-ownership {
+      type enumeration {
+        enum ISP {
+          description
+            "Enum Value - ISP";
+        }
+        enum Customer {
+          description
+            "Enum Value - Customer";
+        }
+      }
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.DeviceOwnership";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.DeviceOwnership";
+    }
+    leaf operational-domain {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.OperationalDomain";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.OperationalDomain";
+    }
+    leaf internet-domain {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.InternetDomain";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.InternetDomain";
+    }
+    leaf use-measurement-endpoint-in-reports {
+      type boolean;
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.UseMeasurementEndpointInReports";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.UseMeasurementEndpointInReports";
+    }
+  }
+
+  grouping measurement-endpoint-customer-device-g {
+    description
+      "Grouping object for Device.BASAPM.MeasurementEndpoint.{i}.CustomerDevice.";
+    leaf equipment-identifier {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.CustomerDevice.EquipmentIdentifier";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.CustomerDevice.EquipmentIdentifier";
+    }
+    leaf customer-identifier {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.CustomerDevice.CustomerIdentifier";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.CustomerDevice.CustomerIdentifier";
+    }
+  }
+
+  grouping measurement-endpoint-isp-device-g {
+    description
+      "Grouping object for Device.BASAPM.MeasurementEndpoint.{i}.ISPDevice.";
+    leaf reference-point {
+      type enumeration {
+        enum STP {
+          description
+            "Enum Value - STP";
+        }
+        enum IDTP {
+          description
+            "Enum Value - IDTP";
+        }
+        enum RNTP {
+          description
+            "Enum Value - RNTP";
+        }
+        enum IRTP {
+          description
+            "Enum Value - IRTP";
+        }
+        enum MTP {
+          description
+            "Enum Value - MTP";
+        }
+        enum IATP {
+          description
+            "Enum Value - IATP";
+        }
+        enum UNITP {
+          description
+            "Enum Value - UNITP";
+        }
+        enum CEDTP {
+          description
+            "Enum Value - CEDTP";
+        }
+      }
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.ISPDevice.ReferencePoint";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.ISPDevice.ReferencePoint";
+    }
+    leaf geographical-location {
+      type string;
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.ISPDevice.GeographicalLocation";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.ISPDevice.GeographicalLocation";
+    }
+  }
+
+  grouping device-bridging-g {
+    description
+      "Grouping object for Device.Bridging.";
+    leaf max-bridge-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.MaxBridgeEntries";
+      reference
+        "Device.Bridging.MaxBridgeEntries";
+    }
+    leaf max-d-bridge-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.MaxDBridgeEntries";
+      reference
+        "Device.Bridging.MaxDBridgeEntries";
+    }
+    leaf max-q-bridge-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.MaxQBridgeEntries";
+      reference
+        "Device.Bridging.MaxQBridgeEntries";
+    }
+    leaf max-vlan-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.MaxVLANEntries";
+      reference
+        "Device.Bridging.MaxVLANEntries";
+    }
+    leaf max-provider-bridge-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.MaxProviderBridgeEntries";
+      reference
+        "Device.Bridging.MaxProviderBridgeEntries";
+    }
+    leaf provider-bridge-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.ProviderBridgeNumberOfEntries";
+      reference
+        "Device.Bridging.ProviderBridgeNumberOfEntries";
+    }
+    leaf max-filter-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.MaxFilterEntries";
+      reference
+        "Device.Bridging.MaxFilterEntries";
+    }
+    leaf bridge-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.BridgeNumberOfEntries";
+      reference
+        "Device.Bridging.BridgeNumberOfEntries";
+    }
+    leaf filter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.FilterNumberOfEntries";
+      reference
+        "Device.Bridging.FilterNumberOfEntries";
+    }
+  }
+
+  grouping bridging-bridge-g {
+    description
+      "Grouping object for Device.Bridging.Bridge.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.Enable";
+      reference
+        "Device.Bridging.Bridge.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Status";
+      reference
+        "Device.Bridging.Bridge.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Alias";
+      reference
+        "Device.Bridging.Bridge.{i}.Alias";
+    }
+    leaf standard {
+      type enumeration {
+        enum 802.1D-2004 {
+          description
+            "Enum Value - 802.1D-2004";
+        }
+        enum 802.1Q-2005 {
+          description
+            "Enum Value - 802.1Q-2005";
+        }
+        enum 802.1Q-2011 {
+          description
+            "Enum Value - 802.1Q-2011";
+        }
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Standard";
+      reference
+        "Device.Bridging.Bridge.{i}.Standard";
+    }
+    leaf port-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.PortNumberOfEntries";
+      reference
+        "Device.Bridging.Bridge.{i}.PortNumberOfEntries";
+    }
+    leaf vlan-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.VLANNumberOfEntries";
+      reference
+        "Device.Bridging.Bridge.{i}.VLANNumberOfEntries";
+    }
+    leaf vlan-port-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.VLANPortNumberOfEntries";
+      reference
+        "Device.Bridging.Bridge.{i}.VLANPortNumberOfEntries";
+    }
+  }
+
+  grouping bridge-port-g {
+    description
+      "Grouping object for Device.Bridging.Bridge.{i}.Port.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Enable";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Status";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Alias";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Name";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.LastChange";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.LowerLayers";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.LowerLayers";
+    }
+    leaf management-port {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.ManagementPort";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.ManagementPort";
+    }
+    leaf type {
+      type enumeration {
+        enum ProviderNetworkPort {
+          description
+            "Enum Value - ProviderNetworkPort";
+        }
+        enum CustomerNetworkPort {
+          description
+            "Enum Value - CustomerNetworkPort";
+        }
+        enum CustomerEdgePort {
+          description
+            "Enum Value - CustomerEdgePort";
+        }
+        enum CustomerVLANPort {
+          description
+            "Enum Value - CustomerVLANPort";
+        }
+        enum VLANUnawarePort {
+          description
+            "Enum Value - VLANUnawarePort";
+        }
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Type";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Type";
+    }
+    leaf default-user-priority {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.DefaultUserPriority";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.DefaultUserPriority";
+    }
+    leaf priority-regeneration {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityRegeneration";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityRegeneration";
+    }
+    leaf port-state {
+      type string;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.PortState";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.PortState";
+    }
+    leaf pvid {
+      type int32 {
+        range "1..4094";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.PVID";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.PVID";
+    }
+    leaf tpid {
+      type uint32;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.TPID";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.TPID";
+    }
+    leaf acceptable-frame-types {
+      type enumeration {
+        enum AdmitAll {
+          description
+            "Enum Value - AdmitAll";
+        }
+        enum AdmitOnlyVLANTagged {
+          description
+            "Enum Value - AdmitOnlyVLANTagged";
+        }
+        enum AdmitOnlyPrioUntagged {
+          description
+            "Enum Value - AdmitOnlyPrioUntagged";
+        }
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.AcceptableFrameTypes";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.AcceptableFrameTypes";
+    }
+    leaf ingress-filtering {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.IngressFiltering";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.IngressFiltering";
+    }
+    leaf service-access-priority-selection {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.ServiceAccessPrioritySelection";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.ServiceAccessPrioritySelection";
+    }
+    leaf service-access-priority-translation {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.ServiceAccessPriorityTranslation";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.ServiceAccessPriorityTranslation";
+    }
+    leaf priority-tagging {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityTagging";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityTagging";
+    }
+  }
+
+  grouping port-priority-code-point-g {
+    description
+      "Grouping object for Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.";
+    leaf pcp-selection {
+      type uint32 {
+        range "1..4";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.PCPSelection";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.PCPSelection";
+    }
+    leaf use-dei {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.UseDEI";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.UseDEI";
+    }
+    leaf require-drop-encoding {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.RequireDropEncoding";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.RequireDropEncoding";
+    }
+    leaf pcp-encoding {
+      type string {
+        length "31";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.PCPEncoding";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.PCPEncoding";
+    }
+    leaf pcp-decoding {
+      type string {
+        length "15";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.PCPDecoding";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.PCPDecoding";
+    }
+  }
+
+  grouping port-stats-g {
+    description
+      "Grouping object for Device.Bridging.Bridge.{i}.Port.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.BytesSent";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.BytesReceived";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.PacketsSent";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.PacketsReceived";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.ErrorsSent";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping bridge-vlan-g {
+    description
+      "Grouping object for Device.Bridging.Bridge.{i}.VLAN.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.VLAN.{i}.Enable";
+      reference
+        "Device.Bridging.Bridge.{i}.VLAN.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.VLAN.{i}.Alias";
+      reference
+        "Device.Bridging.Bridge.{i}.VLAN.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.VLAN.{i}.Name";
+      reference
+        "Device.Bridging.Bridge.{i}.VLAN.{i}.Name";
+    }
+    leaf vlanid {
+      type int32 {
+        range "1..4094";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.VLAN.{i}.VLANID";
+      reference
+        "Device.Bridging.Bridge.{i}.VLAN.{i}.VLANID";
+    }
+  }
+
+  grouping bridge-vlan-port-g {
+    description
+      "Grouping object for Device.Bridging.Bridge.{i}.VLANPort.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.VLANPort.{i}.Enable";
+      reference
+        "Device.Bridging.Bridge.{i}.VLANPort.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.VLANPort.{i}.Alias";
+      reference
+        "Device.Bridging.Bridge.{i}.VLANPort.{i}.Alias";
+    }
+    leaf vlan {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.VLANPort.{i}.VLAN";
+      reference
+        "Device.Bridging.Bridge.{i}.VLANPort.{i}.VLAN";
+    }
+    leaf port {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.VLANPort.{i}.Port";
+      reference
+        "Device.Bridging.Bridge.{i}.VLANPort.{i}.Port";
+    }
+    leaf untagged {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.VLANPort.{i}.Untagged";
+      reference
+        "Device.Bridging.Bridge.{i}.VLANPort.{i}.Untagged";
+    }
+  }
+
+  grouping bridging-filter-g {
+    description
+      "Grouping object for Device.Bridging.Filter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.Enable";
+      reference
+        "Device.Bridging.Filter.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Bridging.Filter.{i}.Alias";
+      reference
+        "Device.Bridging.Filter.{i}.Alias";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Bridging.Filter.{i}.Status";
+      reference
+        "Device.Bridging.Filter.{i}.Status";
+    }
+    leaf bridge {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Bridging.Filter.{i}.Bridge";
+      reference
+        "Device.Bridging.Filter.{i}.Bridge";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.Bridging.Filter.{i}.Order";
+      reference
+        "Device.Bridging.Filter.{i}.Order";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Bridging.Filter.{i}.Interface";
+      reference
+        "Device.Bridging.Filter.{i}.Interface";
+    }
+    leaf dhcp-type {
+      type enumeration {
+        enum DHCPv4 {
+          description
+            "Enum Value - DHCPv4";
+        }
+        enum DHCPv6 {
+          description
+            "Enum Value - DHCPv6";
+        }
+      }
+      description
+        "Device.Bridging.Filter.{i}.DHCPType";
+      reference
+        "Device.Bridging.Filter.{i}.DHCPType";
+    }
+    leaf vlanid-filter {
+      type uint32 {
+        range "0..4094";
+      }
+      description
+        "Device.Bridging.Filter.{i}.VLANIDFilter";
+      reference
+        "Device.Bridging.Filter.{i}.VLANIDFilter";
+    }
+    leaf ethertype-filter-list {
+      type uint32;
+      description
+        "Device.Bridging.Filter.{i}.EthertypeFilterList";
+      reference
+        "Device.Bridging.Filter.{i}.EthertypeFilterList";
+    }
+    leaf ethertype-filter-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.EthertypeFilterExclude";
+      reference
+        "Device.Bridging.Filter.{i}.EthertypeFilterExclude";
+    }
+    leaf source-mac-address-filter-list {
+      type string {
+        length "min..512";
+      }
+      description
+        "Device.Bridging.Filter.{i}.SourceMACAddressFilterList";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMACAddressFilterList";
+    }
+    leaf source-mac-address-filter-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.SourceMACAddressFilterExclude";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMACAddressFilterExclude";
+    }
+    leaf dest-mac-address-filter-list {
+      type string {
+        length "min..512";
+      }
+      description
+        "Device.Bridging.Filter.{i}.DestMACAddressFilterList";
+      reference
+        "Device.Bridging.Filter.{i}.DestMACAddressFilterList";
+    }
+    leaf dest-mac-address-filter-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.DestMACAddressFilterExclude";
+      reference
+        "Device.Bridging.Filter.{i}.DestMACAddressFilterExclude";
+    }
+    leaf source-mac-from-vendor-class-id-filter {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.Bridging.Filter.{i}.SourceMACFromVendorClassIDFilter";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMACFromVendorClassIDFilter";
+    }
+    leaf source-mac-from-vendor-class-id-filterv6 {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.Bridging.Filter.{i}.SourceMACFromVendorClassIDFilterv6";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMACFromVendorClassIDFilterv6";
+    }
+    leaf source-mac-from-vendor-class-id-filter-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.SourceMACFromVendorClassIDFilterExclude";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMACFromVendorClassIDFilterExclude";
+    }
+    leaf source-mac-from-vendor-class-id-mode {
+      type enumeration {
+        enum Exact {
+          description
+            "Enum Value - Exact";
+        }
+        enum Prefix {
+          description
+            "Enum Value - Prefix";
+        }
+        enum Suffix {
+          description
+            "Enum Value - Suffix";
+        }
+        enum Substring {
+          description
+            "Enum Value - Substring";
+        }
+      }
+      description
+        "Device.Bridging.Filter.{i}.SourceMACFromVendorClassIDMode";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMACFromVendorClassIDMode";
+    }
+    leaf dest-mac-from-vendor-class-id-filter {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.Bridging.Filter.{i}.DestMACFromVendorClassIDFilter";
+      reference
+        "Device.Bridging.Filter.{i}.DestMACFromVendorClassIDFilter";
+    }
+    leaf dest-mac-from-vendor-class-id-filterv6 {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.Bridging.Filter.{i}.DestMACFromVendorClassIDFilterv6";
+      reference
+        "Device.Bridging.Filter.{i}.DestMACFromVendorClassIDFilterv6";
+    }
+    leaf dest-mac-from-vendor-class-id-filter-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.DestMACFromVendorClassIDFilterExclude";
+      reference
+        "Device.Bridging.Filter.{i}.DestMACFromVendorClassIDFilterExclude";
+    }
+    leaf dest-mac-from-vendor-class-id-mode {
+      type enumeration {
+        enum Exact {
+          description
+            "Enum Value - Exact";
+        }
+        enum Prefix {
+          description
+            "Enum Value - Prefix";
+        }
+        enum Suffix {
+          description
+            "Enum Value - Suffix";
+        }
+        enum Substring {
+          description
+            "Enum Value - Substring";
+        }
+      }
+      description
+        "Device.Bridging.Filter.{i}.DestMACFromVendorClassIDMode";
+      reference
+        "Device.Bridging.Filter.{i}.DestMACFromVendorClassIDMode";
+    }
+    leaf source-mac-from-client-id-filter {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.Bridging.Filter.{i}.SourceMACFromClientIDFilter";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMACFromClientIDFilter";
+    }
+    leaf source-mac-from-client-id-filter-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.SourceMACFromClientIDFilterExclude";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMACFromClientIDFilterExclude";
+    }
+    leaf dest-mac-from-client-id-filter {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.Bridging.Filter.{i}.DestMACFromClientIDFilter";
+      reference
+        "Device.Bridging.Filter.{i}.DestMACFromClientIDFilter";
+    }
+    leaf dest-mac-from-client-id-filter-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.DestMACFromClientIDFilterExclude";
+      reference
+        "Device.Bridging.Filter.{i}.DestMACFromClientIDFilterExclude";
+    }
+    leaf source-mac-from-user-class-id-filter {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.Bridging.Filter.{i}.SourceMACFromUserClassIDFilter";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMACFromUserClassIDFilter";
+    }
+    leaf source-mac-from-user-class-id-filter-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.SourceMACFromUserClassIDFilterExclude";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMACFromUserClassIDFilterExclude";
+    }
+    leaf dest-mac-from-user-class-id-filter {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.Bridging.Filter.{i}.DestMACFromUserClassIDFilter";
+      reference
+        "Device.Bridging.Filter.{i}.DestMACFromUserClassIDFilter";
+    }
+    leaf dest-mac-from-user-class-id-filter-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.DestMACFromUserClassIDFilterExclude";
+      reference
+        "Device.Bridging.Filter.{i}.DestMACFromUserClassIDFilterExclude";
+    }
+    leaf dest-ip {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.Bridging.Filter.{i}.DestIP";
+      reference
+        "Device.Bridging.Filter.{i}.DestIP";
+    }
+    leaf dest-mask {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.Bridging.Filter.{i}.DestMask";
+      reference
+        "Device.Bridging.Filter.{i}.DestMask";
+    }
+    leaf dest-ip-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.DestIPExclude";
+      reference
+        "Device.Bridging.Filter.{i}.DestIPExclude";
+    }
+    leaf source-ip {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.Bridging.Filter.{i}.SourceIP";
+      reference
+        "Device.Bridging.Filter.{i}.SourceIP";
+    }
+    leaf source-mask {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.Bridging.Filter.{i}.SourceMask";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMask";
+    }
+    leaf source-ip-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.SourceIPExclude";
+      reference
+        "Device.Bridging.Filter.{i}.SourceIPExclude";
+    }
+    leaf protocol {
+      type int32 {
+        range "-1..255";
+      }
+      description
+        "Device.Bridging.Filter.{i}.Protocol";
+      reference
+        "Device.Bridging.Filter.{i}.Protocol";
+    }
+    leaf protocol-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.ProtocolExclude";
+      reference
+        "Device.Bridging.Filter.{i}.ProtocolExclude";
+    }
+    leaf dest-port {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.Bridging.Filter.{i}.DestPort";
+      reference
+        "Device.Bridging.Filter.{i}.DestPort";
+    }
+    leaf dest-port-range-max {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.Bridging.Filter.{i}.DestPortRangeMax";
+      reference
+        "Device.Bridging.Filter.{i}.DestPortRangeMax";
+    }
+    leaf dest-port-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.DestPortExclude";
+      reference
+        "Device.Bridging.Filter.{i}.DestPortExclude";
+    }
+    leaf source-port {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.Bridging.Filter.{i}.SourcePort";
+      reference
+        "Device.Bridging.Filter.{i}.SourcePort";
+    }
+    leaf source-port-range-max {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.Bridging.Filter.{i}.SourcePortRangeMax";
+      reference
+        "Device.Bridging.Filter.{i}.SourcePortRangeMax";
+    }
+    leaf source-port-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.SourcePortExclude";
+      reference
+        "Device.Bridging.Filter.{i}.SourcePortExclude";
+    }
+  }
+
+  grouping bridging-provider-bridge-g {
+    description
+      "Grouping object for Device.Bridging.ProviderBridge.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Bridging.ProviderBridge.{i}.Enable";
+      reference
+        "Device.Bridging.ProviderBridge.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Bridging.ProviderBridge.{i}.Status";
+      reference
+        "Device.Bridging.ProviderBridge.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Bridging.ProviderBridge.{i}.Alias";
+      reference
+        "Device.Bridging.ProviderBridge.{i}.Alias";
+    }
+    leaf type {
+      type enumeration {
+        enum S-VLAN {
+          description
+            "Enum Value - S-VLAN";
+        }
+        enum PE {
+          description
+            "Enum Value - PE";
+        }
+      }
+      description
+        "Device.Bridging.ProviderBridge.{i}.Type";
+      reference
+        "Device.Bridging.ProviderBridge.{i}.Type";
+    }
+    leaf svla-ncomponent {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Bridging.ProviderBridge.{i}.SVLANcomponent";
+      reference
+        "Device.Bridging.ProviderBridge.{i}.SVLANcomponent";
+    }
+    leaf cvla-ncomponents {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Bridging.ProviderBridge.{i}.CVLANcomponents";
+      reference
+        "Device.Bridging.ProviderBridge.{i}.CVLANcomponents";
+    }
+  }
+
+  grouping device-bulk-data-g {
+    description
+      "Grouping object for Device.BulkData.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.BulkData.Enable";
+      reference
+        "Device.BulkData.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.BulkData.Status";
+      reference
+        "Device.BulkData.Status";
+    }
+    leaf min-reporting-interval {
+      type uint32;
+      config false;
+      description
+        "Device.BulkData.MinReportingInterval";
+      reference
+        "Device.BulkData.MinReportingInterval";
+    }
+    leaf protocols {
+      type string;
+      config false;
+      description
+        "Device.BulkData.Protocols";
+      reference
+        "Device.BulkData.Protocols";
+    }
+    leaf encoding-types {
+      type string;
+      config false;
+      description
+        "Device.BulkData.EncodingTypes";
+      reference
+        "Device.BulkData.EncodingTypes";
+    }
+    leaf parameter-wild-card-supported {
+      type boolean;
+      config false;
+      description
+        "Device.BulkData.ParameterWildCardSupported";
+      reference
+        "Device.BulkData.ParameterWildCardSupported";
+    }
+    leaf max-number-of-profiles {
+      type int32;
+      config false;
+      description
+        "Device.BulkData.MaxNumberOfProfiles";
+      reference
+        "Device.BulkData.MaxNumberOfProfiles";
+    }
+    leaf max-number-of-parameter-references {
+      type int32;
+      config false;
+      description
+        "Device.BulkData.MaxNumberOfParameterReferences";
+      reference
+        "Device.BulkData.MaxNumberOfParameterReferences";
+    }
+    leaf profile-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.BulkData.ProfileNumberOfEntries";
+      reference
+        "Device.BulkData.ProfileNumberOfEntries";
+    }
+  }
+
+  grouping bulk-data-profile-g {
+    description
+      "Grouping object for Device.BulkData.Profile.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.BulkData.Profile.{i}.Enable";
+      reference
+        "Device.BulkData.Profile.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.BulkData.Profile.{i}.Alias";
+      reference
+        "Device.BulkData.Profile.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.BulkData.Profile.{i}.Name";
+      reference
+        "Device.BulkData.Profile.{i}.Name";
+    }
+    leaf number-of-retained-failed-reports {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.BulkData.Profile.{i}.NumberOfRetainedFailedReports";
+      reference
+        "Device.BulkData.Profile.{i}.NumberOfRetainedFailedReports";
+    }
+    leaf protocol {
+      type string;
+      description
+        "Device.BulkData.Profile.{i}.Protocol";
+      reference
+        "Device.BulkData.Profile.{i}.Protocol";
+    }
+    leaf encoding-type {
+      type string;
+      description
+        "Device.BulkData.Profile.{i}.EncodingType";
+      reference
+        "Device.BulkData.Profile.{i}.EncodingType";
+    }
+    leaf reporting-interval {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.BulkData.Profile.{i}.ReportingInterval";
+      reference
+        "Device.BulkData.Profile.{i}.ReportingInterval";
+    }
+    leaf time-reference {
+      type string;
+      description
+        "Device.BulkData.Profile.{i}.TimeReference";
+      reference
+        "Device.BulkData.Profile.{i}.TimeReference";
+    }
+    leaf streaming-host {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.BulkData.Profile.{i}.StreamingHost";
+      reference
+        "Device.BulkData.Profile.{i}.StreamingHost";
+    }
+    leaf streaming-port {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.BulkData.Profile.{i}.StreamingPort";
+      reference
+        "Device.BulkData.Profile.{i}.StreamingPort";
+    }
+    leaf streaming-session-id {
+      type uint32 {
+        range "48..57 | 65..90";
+      }
+      description
+        "Device.BulkData.Profile.{i}.StreamingSessionID";
+      reference
+        "Device.BulkData.Profile.{i}.StreamingSessionID";
+    }
+    leaf file-transfer-url {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.BulkData.Profile.{i}.FileTransferURL";
+      reference
+        "Device.BulkData.Profile.{i}.FileTransferURL";
+    }
+    leaf file-transfer-username {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.BulkData.Profile.{i}.FileTransferUsername";
+      reference
+        "Device.BulkData.Profile.{i}.FileTransferUsername";
+    }
+    leaf control-file-format {
+      type string {
+        length "min..128";
+      }
+      description
+        "Device.BulkData.Profile.{i}.ControlFileFormat";
+      reference
+        "Device.BulkData.Profile.{i}.ControlFileFormat";
+    }
+    leaf parameter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.BulkData.Profile.{i}.ParameterNumberOfEntries";
+      reference
+        "Device.BulkData.Profile.{i}.ParameterNumberOfEntries";
+    }
+  }
+
+  grouping profile-csv-encoding-g {
+    description
+      "Grouping object for Device.BulkData.Profile.{i}.CSVEncoding.";
+    leaf field-separator {
+      type string;
+      description
+        "Device.BulkData.Profile.{i}.CSVEncoding.FieldSeparator";
+      reference
+        "Device.BulkData.Profile.{i}.CSVEncoding.FieldSeparator";
+    }
+    leaf row-separator {
+      type string;
+      description
+        "Device.BulkData.Profile.{i}.CSVEncoding.RowSeparator";
+      reference
+        "Device.BulkData.Profile.{i}.CSVEncoding.RowSeparator";
+    }
+    leaf escape-character {
+      type string;
+      description
+        "Device.BulkData.Profile.{i}.CSVEncoding.EscapeCharacter";
+      reference
+        "Device.BulkData.Profile.{i}.CSVEncoding.EscapeCharacter";
+    }
+    leaf report-format {
+      type enumeration {
+        enum ParameterPerRow {
+          description
+            "Enum Value - ParameterPerRow";
+        }
+        enum ParameterPerColumn {
+          description
+            "Enum Value - ParameterPerColumn";
+        }
+      }
+      description
+        "Device.BulkData.Profile.{i}.CSVEncoding.ReportFormat";
+      reference
+        "Device.BulkData.Profile.{i}.CSVEncoding.ReportFormat";
+    }
+    leaf row-timestamp {
+      type enumeration {
+        enum Unix-Epoch {
+          description
+            "Enum Value - Unix-Epoch";
+        }
+        enum ISO-8601 {
+          description
+            "Enum Value - ISO-8601";
+        }
+        enum None {
+          description
+            "Enum Value - None";
+        }
+      }
+      description
+        "Device.BulkData.Profile.{i}.CSVEncoding.RowTimestamp";
+      reference
+        "Device.BulkData.Profile.{i}.CSVEncoding.RowTimestamp";
+    }
+  }
+
+  grouping profile-http-g {
+    description
+      "Grouping object for Device.BulkData.Profile.{i}.HTTP.";
+    leaf url {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.BulkData.Profile.{i}.HTTP.URL";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.URL";
+    }
+    leaf username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.BulkData.Profile.{i}.HTTP.Username";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.Username";
+    }
+    leaf compressions-supported {
+      type string;
+      config false;
+      description
+        "Device.BulkData.Profile.{i}.HTTP.CompressionsSupported";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.CompressionsSupported";
+    }
+    leaf compression {
+      type string;
+      description
+        "Device.BulkData.Profile.{i}.HTTP.Compression";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.Compression";
+    }
+    leaf methods-supported {
+      type string;
+      config false;
+      description
+        "Device.BulkData.Profile.{i}.HTTP.MethodsSupported";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.MethodsSupported";
+    }
+    leaf method {
+      type string;
+      description
+        "Device.BulkData.Profile.{i}.HTTP.Method";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.Method";
+    }
+    leaf use-date-header {
+      type boolean;
+      description
+        "Device.BulkData.Profile.{i}.HTTP.UseDateHeader";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.UseDateHeader";
+    }
+    leaf retry-enable {
+      type boolean;
+      description
+        "Device.BulkData.Profile.{i}.HTTP.RetryEnable";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.RetryEnable";
+    }
+    leaf retry-minimum-wait-interval {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.BulkData.Profile.{i}.HTTP.RetryMinimumWaitInterval";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.RetryMinimumWaitInterval";
+    }
+    leaf retry-interval-multiplier {
+      type uint32 {
+        range "1000..65535";
+      }
+      description
+        "Device.BulkData.Profile.{i}.HTTP.RetryIntervalMultiplier";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.RetryIntervalMultiplier";
+    }
+    leaf request-uri-parameter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.BulkData.Profile.{i}.HTTP.RequestURIParameterNumberOfEntries";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.RequestURIParameterNumberOfEntries";
+    }
+    leaf persist-across-reboot {
+      type boolean;
+      description
+        "Device.BulkData.Profile.{i}.HTTP.PersistAcrossReboot";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.PersistAcrossReboot";
+    }
+  }
+
+  grouping http-request-uri-parameter-g {
+    description
+      "Grouping object for Device.BulkData.Profile.{i}.HTTP.RequestURIParameter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.BulkData.Profile.{i}.HTTP.RequestURIParameter.{i}.Name";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.RequestURIParameter.{i}.Name";
+    }
+    leaf reference {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.BulkData.Profile.{i}.HTTP.RequestURIParameter.{i}.Reference";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.RequestURIParameter.{i}.Reference";
+    }
+  }
+
+  grouping profile-json-encoding-g {
+    description
+      "Grouping object for Device.BulkData.Profile.{i}.JSONEncoding.";
+    leaf report-format {
+      type enumeration {
+        enum ObjectHierarchy {
+          description
+            "Enum Value - ObjectHierarchy";
+        }
+        enum NameValuePair {
+          description
+            "Enum Value - NameValuePair";
+        }
+      }
+      description
+        "Device.BulkData.Profile.{i}.JSONEncoding.ReportFormat";
+      reference
+        "Device.BulkData.Profile.{i}.JSONEncoding.ReportFormat";
+    }
+    leaf report-timestamp {
+      type enumeration {
+        enum Unix-Epoch {
+          description
+            "Enum Value - Unix-Epoch";
+        }
+        enum ISO-8601 {
+          description
+            "Enum Value - ISO-8601";
+        }
+        enum None {
+          description
+            "Enum Value - None";
+        }
+      }
+      description
+        "Device.BulkData.Profile.{i}.JSONEncoding.ReportTimestamp";
+      reference
+        "Device.BulkData.Profile.{i}.JSONEncoding.ReportTimestamp";
+    }
+  }
+
+  grouping profile-parameter-g {
+    description
+      "Grouping object for Device.BulkData.Profile.{i}.Parameter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.BulkData.Profile.{i}.Parameter.{i}.Name";
+      reference
+        "Device.BulkData.Profile.{i}.Parameter.{i}.Name";
+    }
+    leaf reference {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.BulkData.Profile.{i}.Parameter.{i}.Reference";
+      reference
+        "Device.BulkData.Profile.{i}.Parameter.{i}.Reference";
+    }
+  }
+
+  grouping device-captive-portal-g {
+    description
+      "Grouping object for Device.CaptivePortal.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.CaptivePortal.Enable";
+      reference
+        "Device.CaptivePortal.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.CaptivePortal.Status";
+      reference
+        "Device.CaptivePortal.Status";
+    }
+    leaf allowed-list {
+      type string {
+        length "min..10000";
+      }
+      description
+        "Device.CaptivePortal.AllowedList";
+      reference
+        "Device.CaptivePortal.AllowedList";
+    }
+    leaf url {
+      type string {
+        length "min..2000";
+      }
+      description
+        "Device.CaptivePortal.URL";
+      reference
+        "Device.CaptivePortal.URL";
+    }
+  }
+
+  grouping device-cellular-g {
+    description
+      "Grouping object for Device.Cellular.";
+    leaf roaming-enabled {
+      type boolean;
+      description
+        "Device.Cellular.RoamingEnabled";
+      reference
+        "Device.Cellular.RoamingEnabled";
+    }
+    leaf roaming-status {
+      type string;
+      config false;
+      description
+        "Device.Cellular.RoamingStatus";
+      reference
+        "Device.Cellular.RoamingStatus";
+    }
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Cellular.InterfaceNumberOfEntries";
+      reference
+        "Device.Cellular.InterfaceNumberOfEntries";
+    }
+    leaf access-point-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Cellular.AccessPointNumberOfEntries";
+      reference
+        "Device.Cellular.AccessPointNumberOfEntries";
+    }
+  }
+
+  grouping cellular-access-point-g {
+    description
+      "Grouping object for Device.Cellular.AccessPoint.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Cellular.AccessPoint.{i}.Enable";
+      reference
+        "Device.Cellular.AccessPoint.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Cellular.AccessPoint.{i}.Alias";
+      reference
+        "Device.Cellular.AccessPoint.{i}.Alias";
+    }
+    leaf apn {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Cellular.AccessPoint.{i}.APN";
+      reference
+        "Device.Cellular.AccessPoint.{i}.APN";
+    }
+    leaf username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Cellular.AccessPoint.{i}.Username";
+      reference
+        "Device.Cellular.AccessPoint.{i}.Username";
+    }
+    leaf proxy {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.Cellular.AccessPoint.{i}.Proxy";
+      reference
+        "Device.Cellular.AccessPoint.{i}.Proxy";
+    }
+    leaf proxy-port {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.Cellular.AccessPoint.{i}.ProxyPort";
+      reference
+        "Device.Cellular.AccessPoint.{i}.ProxyPort";
+    }
+    leaf interface {
+      type string;
+      description
+        "Device.Cellular.AccessPoint.{i}.Interface";
+      reference
+        "Device.Cellular.AccessPoint.{i}.Interface";
+    }
+  }
+
+  grouping cellular-interface-g {
+    description
+      "Grouping object for Device.Cellular.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Cellular.Interface.{i}.Enable";
+      reference
+        "Device.Cellular.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Status";
+      reference
+        "Device.Cellular.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Cellular.Interface.{i}.Alias";
+      reference
+        "Device.Cellular.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Name";
+      reference
+        "Device.Cellular.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.LastChange";
+      reference
+        "Device.Cellular.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.Cellular.Interface.{i}.LowerLayers";
+      reference
+        "Device.Cellular.Interface.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Upstream";
+      reference
+        "Device.Cellular.Interface.{i}.Upstream";
+    }
+    leaf imei {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.IMEI";
+      reference
+        "Device.Cellular.Interface.{i}.IMEI";
+    }
+    leaf supported-access-technologies {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.SupportedAccessTechnologies";
+      reference
+        "Device.Cellular.Interface.{i}.SupportedAccessTechnologies";
+    }
+    leaf preferred-access-technology {
+      type string;
+      description
+        "Device.Cellular.Interface.{i}.PreferredAccessTechnology";
+      reference
+        "Device.Cellular.Interface.{i}.PreferredAccessTechnology";
+    }
+    leaf current-access-technology {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.CurrentAccessTechnology";
+      reference
+        "Device.Cellular.Interface.{i}.CurrentAccessTechnology";
+    }
+    leaf available-networks {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.AvailableNetworks";
+      reference
+        "Device.Cellular.Interface.{i}.AvailableNetworks";
+    }
+    leaf network-requested {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Cellular.Interface.{i}.NetworkRequested";
+      reference
+        "Device.Cellular.Interface.{i}.NetworkRequested";
+    }
+    leaf network-in-use {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.NetworkInUse";
+      reference
+        "Device.Cellular.Interface.{i}.NetworkInUse";
+    }
+    leaf rssi {
+      type int32;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.RSSI";
+      reference
+        "Device.Cellular.Interface.{i}.RSSI";
+    }
+    leaf upstream-max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.UpstreamMaxBitRate";
+      reference
+        "Device.Cellular.Interface.{i}.UpstreamMaxBitRate";
+    }
+    leaf downstream-max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.DownstreamMaxBitRate";
+      reference
+        "Device.Cellular.Interface.{i}.DownstreamMaxBitRate";
+    }
+  }
+
+  grouping interface-stats-g {
+    description
+      "Grouping object for Device.Cellular.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping interface-usim-g {
+    description
+      "Grouping object for Device.Cellular.Interface.{i}.USIM.";
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.USIM.Status";
+      reference
+        "Device.Cellular.Interface.{i}.USIM.Status";
+    }
+    leaf imsi {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.USIM.IMSI";
+      reference
+        "Device.Cellular.Interface.{i}.USIM.IMSI";
+    }
+    leaf iccid {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.USIM.ICCID";
+      reference
+        "Device.Cellular.Interface.{i}.USIM.ICCID";
+    }
+    leaf msisdn {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.USIM.MSISDN";
+      reference
+        "Device.Cellular.Interface.{i}.USIM.MSISDN";
+    }
+    leaf pin-check {
+      type enumeration {
+        enum OnNetworkAccess {
+          description
+            "Enum Value - OnNetworkAccess";
+        }
+        enum Reboot {
+          description
+            "Enum Value - Reboot";
+        }
+        enum Off {
+          description
+            "Enum Value - Off";
+        }
+      }
+      description
+        "Device.Cellular.Interface.{i}.USIM.PINCheck";
+      reference
+        "Device.Cellular.Interface.{i}.USIM.PINCheck";
+    }
+  }
+
+  grouping device-dhcpv4-g {
+    description
+      "Grouping object for Device.DHCPv4.";
+    leaf client-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv4.ClientNumberOfEntries";
+      reference
+        "Device.DHCPv4.ClientNumberOfEntries";
+    }
+  }
+
+  grouping dhcpv4-client-g {
+    description
+      "Grouping object for Device.DHCPv4.Client.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv4.Client.{i}.Enable";
+      reference
+        "Device.DHCPv4.Client.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv4.Client.{i}.Alias";
+      reference
+        "Device.DHCPv4.Client.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DHCPv4.Client.{i}.Interface";
+      reference
+        "Device.DHCPv4.Client.{i}.Interface";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.Status";
+      reference
+        "Device.DHCPv4.Client.{i}.Status";
+    }
+    leaf dhcp-status {
+      type string;
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.DHCPStatus";
+      reference
+        "Device.DHCPv4.Client.{i}.DHCPStatus";
+    }
+    leaf ip-address {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.IPAddress";
+      reference
+        "Device.DHCPv4.Client.{i}.IPAddress";
+    }
+    leaf subnet-mask {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.SubnetMask";
+      reference
+        "Device.DHCPv4.Client.{i}.SubnetMask";
+    }
+    leaf ip-routers {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.IPRouters";
+      reference
+        "Device.DHCPv4.Client.{i}.IPRouters";
+    }
+    leaf dns-servers {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.DNSServers";
+      reference
+        "Device.DHCPv4.Client.{i}.DNSServers";
+    }
+    leaf lease-time-remaining {
+      type int32;
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.LeaseTimeRemaining";
+      reference
+        "Device.DHCPv4.Client.{i}.LeaseTimeRemaining";
+    }
+    leaf dhcp-server {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.DHCPServer";
+      reference
+        "Device.DHCPv4.Client.{i}.DHCPServer";
+    }
+    leaf passthrough-enable {
+      type boolean;
+      description
+        "Device.DHCPv4.Client.{i}.PassthroughEnable";
+      reference
+        "Device.DHCPv4.Client.{i}.PassthroughEnable";
+    }
+    leaf passthrough-dhcp-pool {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DHCPv4.Client.{i}.PassthroughDHCPPool";
+      reference
+        "Device.DHCPv4.Client.{i}.PassthroughDHCPPool";
+    }
+    leaf sent-option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.SentOptionNumberOfEntries";
+      reference
+        "Device.DHCPv4.Client.{i}.SentOptionNumberOfEntries";
+    }
+    leaf req-option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.ReqOptionNumberOfEntries";
+      reference
+        "Device.DHCPv4.Client.{i}.ReqOptionNumberOfEntries";
+    }
+  }
+
+  grouping client-req-option-g {
+    description
+      "Grouping object for Device.DHCPv4.Client.{i}.ReqOption.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv4.Client.{i}.ReqOption.{i}.Enable";
+      reference
+        "Device.DHCPv4.Client.{i}.ReqOption.{i}.Enable";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.DHCPv4.Client.{i}.ReqOption.{i}.Order";
+      reference
+        "Device.DHCPv4.Client.{i}.ReqOption.{i}.Order";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv4.Client.{i}.ReqOption.{i}.Alias";
+      reference
+        "Device.DHCPv4.Client.{i}.ReqOption.{i}.Alias";
+    }
+    leaf tag {
+      type uint32 {
+        range "1..254";
+      }
+      description
+        "Device.DHCPv4.Client.{i}.ReqOption.{i}.Tag";
+      reference
+        "Device.DHCPv4.Client.{i}.ReqOption.{i}.Tag";
+    }
+    leaf value {
+      type string;
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.ReqOption.{i}.Value";
+      reference
+        "Device.DHCPv4.Client.{i}.ReqOption.{i}.Value";
+    }
+  }
+
+  grouping client-sent-option-g {
+    description
+      "Grouping object for Device.DHCPv4.Client.{i}.SentOption.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv4.Client.{i}.SentOption.{i}.Enable";
+      reference
+        "Device.DHCPv4.Client.{i}.SentOption.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv4.Client.{i}.SentOption.{i}.Alias";
+      reference
+        "Device.DHCPv4.Client.{i}.SentOption.{i}.Alias";
+    }
+    leaf tag {
+      type uint32 {
+        range "1..254";
+      }
+      description
+        "Device.DHCPv4.Client.{i}.SentOption.{i}.Tag";
+      reference
+        "Device.DHCPv4.Client.{i}.SentOption.{i}.Tag";
+    }
+    leaf value {
+      type string {
+        length "0..255";
+      }
+      description
+        "Device.DHCPv4.Client.{i}.SentOption.{i}.Value";
+      reference
+        "Device.DHCPv4.Client.{i}.SentOption.{i}.Value";
+    }
+  }
+
+  grouping dhcpv4-relay-g {
+    description
+      "Grouping object for Device.DHCPv4.Relay.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv4.Relay.Enable";
+      reference
+        "Device.DHCPv4.Relay.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DHCPv4.Relay.Status";
+      reference
+        "Device.DHCPv4.Relay.Status";
+    }
+    leaf forwarding-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv4.Relay.ForwardingNumberOfEntries";
+      reference
+        "Device.DHCPv4.Relay.ForwardingNumberOfEntries";
+    }
+  }
+
+  grouping relay-forwarding-g {
+    description
+      "Grouping object for Device.DHCPv4.Relay.Forwarding.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.Enable";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.Status";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.Alias";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.Alias";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.Order";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.Order";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.Interface";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.Interface";
+    }
+    leaf vendor-class-id {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.VendorClassID";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.VendorClassID";
+    }
+    leaf vendor-class-id-exclude {
+      type boolean;
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.VendorClassIDExclude";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.VendorClassIDExclude";
+    }
+    leaf vendor-class-id-mode {
+      type enumeration {
+        enum Exact {
+          description
+            "Enum Value - Exact";
+        }
+        enum Prefix {
+          description
+            "Enum Value - Prefix";
+        }
+        enum Suffix {
+          description
+            "Enum Value - Suffix";
+        }
+        enum Substring {
+          description
+            "Enum Value - Substring";
+        }
+      }
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.VendorClassIDMode";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.VendorClassIDMode";
+    }
+    leaf client-id {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.ClientID";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.ClientID";
+    }
+    leaf client-id-exclude {
+      type boolean;
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.ClientIDExclude";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.ClientIDExclude";
+    }
+    leaf user-class-id {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.UserClassID";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.UserClassID";
+    }
+    leaf user-class-id-exclude {
+      type boolean;
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.UserClassIDExclude";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.UserClassIDExclude";
+    }
+    leaf chaddr {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.Chaddr";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.Chaddr";
+    }
+    leaf chaddr-mask {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.ChaddrMask";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.ChaddrMask";
+    }
+    leaf chaddr-exclude {
+      type boolean;
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.ChaddrExclude";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.ChaddrExclude";
+    }
+    leaf locally-served {
+      type boolean;
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.LocallyServed";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.LocallyServed";
+    }
+    leaf dhcp-server-ip-address {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.DHCPServerIPAddress";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.DHCPServerIPAddress";
+    }
+  }
+
+  grouping dhcpv4-server-g {
+    description
+      "Grouping object for Device.DHCPv4.Server.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv4.Server.Enable";
+      reference
+        "Device.DHCPv4.Server.Enable";
+    }
+    leaf pool-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv4.Server.PoolNumberOfEntries";
+      reference
+        "Device.DHCPv4.Server.PoolNumberOfEntries";
+    }
+  }
+
+  grouping server-pool-g {
+    description
+      "Grouping object for Device.DHCPv4.Server.Pool.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Enable";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Status";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Alias";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Alias";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Order";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Order";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Interface";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Interface";
+    }
+    leaf vendor-class-id {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.VendorClassID";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.VendorClassID";
+    }
+    leaf vendor-class-id-exclude {
+      type boolean;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.VendorClassIDExclude";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.VendorClassIDExclude";
+    }
+    leaf vendor-class-id-mode {
+      type enumeration {
+        enum Exact {
+          description
+            "Enum Value - Exact";
+        }
+        enum Prefix {
+          description
+            "Enum Value - Prefix";
+        }
+        enum Suffix {
+          description
+            "Enum Value - Suffix";
+        }
+        enum Substring {
+          description
+            "Enum Value - Substring";
+        }
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.VendorClassIDMode";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.VendorClassIDMode";
+    }
+    leaf client-id {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.ClientID";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.ClientID";
+    }
+    leaf client-id-exclude {
+      type boolean;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.ClientIDExclude";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.ClientIDExclude";
+    }
+    leaf user-class-id {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.UserClassID";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.UserClassID";
+    }
+    leaf user-class-id-exclude {
+      type boolean;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.UserClassIDExclude";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.UserClassIDExclude";
+    }
+    leaf chaddr {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Chaddr";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Chaddr";
+    }
+    leaf chaddr-mask {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.ChaddrMask";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.ChaddrMask";
+    }
+    leaf chaddr-exclude {
+      type boolean;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.ChaddrExclude";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.ChaddrExclude";
+    }
+    leaf min-address {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.MinAddress";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.MinAddress";
+    }
+    leaf max-address {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.MaxAddress";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.MaxAddress";
+    }
+    leaf reserved-addresses {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.ReservedAddresses";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.ReservedAddresses";
+    }
+    leaf subnet-mask {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.SubnetMask";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.SubnetMask";
+    }
+    leaf dns-servers {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.DNSServers";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.DNSServers";
+    }
+    leaf domain-name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.DomainName";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.DomainName";
+    }
+    leaf ip-routers {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.IPRouters";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.IPRouters";
+    }
+    leaf lease-time {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.LeaseTime";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.LeaseTime";
+    }
+    leaf static-address-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.StaticAddressNumberOfEntries";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.StaticAddressNumberOfEntries";
+    }
+    leaf option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.OptionNumberOfEntries";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.OptionNumberOfEntries";
+    }
+    leaf client-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.ClientNumberOfEntries";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.ClientNumberOfEntries";
+    }
+  }
+
+  grouping pool-client-g {
+    description
+      "Grouping object for Device.DHCPv4.Server.Pool.{i}.Client.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Alias";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Alias";
+    }
+    leaf chaddr {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Chaddr";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Chaddr";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Active";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Active";
+    }
+    leaf ipv4-address-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4AddressNumberOfEntries";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4AddressNumberOfEntries";
+    }
+    leaf option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.OptionNumberOfEntries";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.OptionNumberOfEntries";
+    }
+  }
+
+  grouping client-ipv4-address-g {
+    description
+      "Grouping object for Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4Address.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf ip-address {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4Address.{i}.IPAddress";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4Address.{i}.IPAddress";
+    }
+    leaf lease-time-remaining {
+      type string;
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4Address.{i}.LeaseTimeRemaining";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4Address.{i}.LeaseTimeRemaining";
+    }
+  }
+
+  grouping client-option-g {
+    description
+      "Grouping object for Device.DHCPv4.Server.Pool.{i}.Client.{i}.Option.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf tag {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Option.{i}.Tag";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Option.{i}.Tag";
+    }
+    leaf value {
+      type string;
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Option.{i}.Value";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Option.{i}.Value";
+    }
+  }
+
+  grouping pool-option-g {
+    description
+      "Grouping object for Device.DHCPv4.Server.Pool.{i}.Option.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Option.{i}.Enable";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Option.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Option.{i}.Alias";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Option.{i}.Alias";
+    }
+    leaf tag {
+      type uint32 {
+        range "1..254";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Option.{i}.Tag";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Option.{i}.Tag";
+    }
+    leaf value {
+      type string {
+        length "0..255";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Option.{i}.Value";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Option.{i}.Value";
+    }
+  }
+
+  grouping pool-static-address-g {
+    description
+      "Grouping object for Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.Enable";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.Alias";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.Alias";
+    }
+    leaf chaddr {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.Chaddr";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.Chaddr";
+    }
+    leaf yiaddr {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.Yiaddr";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.Yiaddr";
+    }
+  }
+
+  grouping device-dhcpv6-g {
+    description
+      "Grouping object for Device.DHCPv6.";
+    leaf client-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.ClientNumberOfEntries";
+      reference
+        "Device.DHCPv6.ClientNumberOfEntries";
+    }
+  }
+
+  grouping dhcpv6-client-g {
+    description
+      "Grouping object for Device.DHCPv6.Client.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv6.Client.{i}.Enable";
+      reference
+        "Device.DHCPv6.Client.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv6.Client.{i}.Alias";
+      reference
+        "Device.DHCPv6.Client.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DHCPv6.Client.{i}.Interface";
+      reference
+        "Device.DHCPv6.Client.{i}.Interface";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.Status";
+      reference
+        "Device.DHCPv6.Client.{i}.Status";
+    }
+    leaf duid {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.DUID";
+      reference
+        "Device.DHCPv6.Client.{i}.DUID";
+    }
+    leaf request-addresses {
+      type boolean;
+      description
+        "Device.DHCPv6.Client.{i}.RequestAddresses";
+      reference
+        "Device.DHCPv6.Client.{i}.RequestAddresses";
+    }
+    leaf request-prefixes {
+      type boolean;
+      description
+        "Device.DHCPv6.Client.{i}.RequestPrefixes";
+      reference
+        "Device.DHCPv6.Client.{i}.RequestPrefixes";
+    }
+    leaf rapid-commit {
+      type boolean;
+      description
+        "Device.DHCPv6.Client.{i}.RapidCommit";
+      reference
+        "Device.DHCPv6.Client.{i}.RapidCommit";
+    }
+    leaf suggested-t1 {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.DHCPv6.Client.{i}.SuggestedT1";
+      reference
+        "Device.DHCPv6.Client.{i}.SuggestedT1";
+    }
+    leaf suggested-t2 {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.DHCPv6.Client.{i}.SuggestedT2";
+      reference
+        "Device.DHCPv6.Client.{i}.SuggestedT2";
+    }
+    leaf supported-options {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.SupportedOptions";
+      reference
+        "Device.DHCPv6.Client.{i}.SupportedOptions";
+    }
+    leaf requested-options {
+      type uint32;
+      description
+        "Device.DHCPv6.Client.{i}.RequestedOptions";
+      reference
+        "Device.DHCPv6.Client.{i}.RequestedOptions";
+    }
+    leaf server-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.ServerNumberOfEntries";
+      reference
+        "Device.DHCPv6.Client.{i}.ServerNumberOfEntries";
+    }
+    leaf sent-option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.SentOptionNumberOfEntries";
+      reference
+        "Device.DHCPv6.Client.{i}.SentOptionNumberOfEntries";
+    }
+    leaf received-option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.ReceivedOptionNumberOfEntries";
+      reference
+        "Device.DHCPv6.Client.{i}.ReceivedOptionNumberOfEntries";
+    }
+  }
+
+  grouping client-received-option-g {
+    description
+      "Grouping object for Device.DHCPv6.Client.{i}.ReceivedOption.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf tag {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.ReceivedOption.{i}.Tag";
+      reference
+        "Device.DHCPv6.Client.{i}.ReceivedOption.{i}.Tag";
+    }
+    leaf value {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.ReceivedOption.{i}.Value";
+      reference
+        "Device.DHCPv6.Client.{i}.ReceivedOption.{i}.Value";
+    }
+    leaf server {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.ReceivedOption.{i}.Server";
+      reference
+        "Device.DHCPv6.Client.{i}.ReceivedOption.{i}.Server";
+    }
+  }
+
+  grouping dhcpv6-client-sent-option-g {
+    description
+      "Grouping object for Device.DHCPv6.Client.{i}.SentOption.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv6.Client.{i}.SentOption.{i}.Enable";
+      reference
+        "Device.DHCPv6.Client.{i}.SentOption.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv6.Client.{i}.SentOption.{i}.Alias";
+      reference
+        "Device.DHCPv6.Client.{i}.SentOption.{i}.Alias";
+    }
+    leaf tag {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.DHCPv6.Client.{i}.SentOption.{i}.Tag";
+      reference
+        "Device.DHCPv6.Client.{i}.SentOption.{i}.Tag";
+    }
+    leaf value {
+      type string {
+        length "0..65535";
+      }
+      description
+        "Device.DHCPv6.Client.{i}.SentOption.{i}.Value";
+      reference
+        "Device.DHCPv6.Client.{i}.SentOption.{i}.Value";
+    }
+  }
+
+  grouping client-server-g {
+    description
+      "Grouping object for Device.DHCPv6.Client.{i}.Server.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf source-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.Server.{i}.SourceAddress";
+      reference
+        "Device.DHCPv6.Client.{i}.Server.{i}.SourceAddress";
+    }
+    leaf duid {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.Server.{i}.DUID";
+      reference
+        "Device.DHCPv6.Client.{i}.Server.{i}.DUID";
+    }
+    leaf information-refresh-time {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.Server.{i}.InformationRefreshTime";
+      reference
+        "Device.DHCPv6.Client.{i}.Server.{i}.InformationRefreshTime";
+    }
+  }
+
+  grouping dhcpv6-server-g {
+    description
+      "Grouping object for Device.DHCPv6.Server.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv6.Server.Enable";
+      reference
+        "Device.DHCPv6.Server.Enable";
+    }
+    leaf pool-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.Server.PoolNumberOfEntries";
+      reference
+        "Device.DHCPv6.Server.PoolNumberOfEntries";
+    }
+  }
+
+  grouping dhcpv6-server-pool-g {
+    description
+      "Grouping object for Device.DHCPv6.Server.Pool.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Enable";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Status";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Alias";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Alias";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Order";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Order";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Interface";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Interface";
+    }
+    leaf duid {
+      type string {
+        length "min..130";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.DUID";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.DUID";
+    }
+    leaf duid-exclude {
+      type boolean;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.DUIDExclude";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.DUIDExclude";
+    }
+    leaf vendor-class-id {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.VendorClassID";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.VendorClassID";
+    }
+    leaf vendor-class-id-exclude {
+      type boolean;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.VendorClassIDExclude";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.VendorClassIDExclude";
+    }
+    leaf user-class-id {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.UserClassID";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.UserClassID";
+    }
+    leaf user-class-id-exclude {
+      type boolean;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.UserClassIDExclude";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.UserClassIDExclude";
+    }
+    leaf source-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.SourceAddress";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.SourceAddress";
+    }
+    leaf source-address-mask {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.SourceAddressMask";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.SourceAddressMask";
+    }
+    leaf source-address-exclude {
+      type boolean;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.SourceAddressExclude";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.SourceAddressExclude";
+    }
+    leaf iana-enable {
+      type boolean;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.IANAEnable";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.IANAEnable";
+    }
+    leaf iana-manual-prefixes {
+      type string;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.IANAManualPrefixes";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.IANAManualPrefixes";
+    }
+    leaf iana-prefixes {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.IANAPrefixes";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.IANAPrefixes";
+    }
+    leaf iapd-enable {
+      type boolean;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.IAPDEnable";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.IAPDEnable";
+    }
+    leaf iapd-manual-prefixes {
+      type string;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.IAPDManualPrefixes";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.IAPDManualPrefixes";
+    }
+    leaf iapd-prefixes {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.IAPDPrefixes";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.IAPDPrefixes";
+    }
+    leaf iapd-add-length {
+      type uint32 {
+        range "min..64";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.IAPDAddLength";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.IAPDAddLength";
+    }
+    leaf client-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.ClientNumberOfEntries";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.ClientNumberOfEntries";
+    }
+    leaf option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.OptionNumberOfEntries";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.OptionNumberOfEntries";
+    }
+  }
+
+  grouping server-pool-client-g {
+    description
+      "Grouping object for Device.DHCPv6.Server.Pool.{i}.Client.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.Alias";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.Alias";
+    }
+    leaf source-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.SourceAddress";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.SourceAddress";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.Active";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.Active";
+    }
+    leaf ipv6-address-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6AddressNumberOfEntries";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6AddressNumberOfEntries";
+    }
+    leaf ipv6-prefix-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6PrefixNumberOfEntries";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6PrefixNumberOfEntries";
+    }
+    leaf option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.OptionNumberOfEntries";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.OptionNumberOfEntries";
+    }
+  }
+
+  grouping client-ipv6-address-g {
+    description
+      "Grouping object for Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf ip-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}.IPAddress";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}.IPAddress";
+    }
+    leaf preferred-lifetime {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}.PreferredLifetime";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}.PreferredLifetime";
+    }
+    leaf valid-lifetime {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}.ValidLifetime";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}.ValidLifetime";
+    }
+  }
+
+  grouping client-ipv6-prefix-g {
+    description
+      "Grouping object for Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf prefix {
+      type string {
+        length "min..49";
+      }
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}.Prefix";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}.Prefix";
+    }
+    leaf preferred-lifetime {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}.PreferredLifetime";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}.PreferredLifetime";
+    }
+    leaf valid-lifetime {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}.ValidLifetime";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}.ValidLifetime";
+    }
+  }
+
+  grouping pool-client-option-g {
+    description
+      "Grouping object for Device.DHCPv6.Server.Pool.{i}.Client.{i}.Option.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf tag {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.Option.{i}.Tag";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.Option.{i}.Tag";
+    }
+    leaf value {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.Option.{i}.Value";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.Option.{i}.Value";
+    }
+  }
+
+  grouping server-pool-option-g {
+    description
+      "Grouping object for Device.DHCPv6.Server.Pool.{i}.Option.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Option.{i}.Enable";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Option.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Option.{i}.Alias";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Option.{i}.Alias";
+    }
+    leaf tag {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Option.{i}.Tag";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Option.{i}.Tag";
+    }
+    leaf value {
+      type string {
+        length "0..65535";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Option.{i}.Value";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Option.{i}.Value";
+    }
+    leaf passthrough-client {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Option.{i}.PassthroughClient";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Option.{i}.PassthroughClient";
+    }
+  }
+
+  grouping dlna-capabilities-g {
+    description
+      "Grouping object for Device.DLNA.Capabilities.";
+    leaf hnd-device-class {
+      type string;
+      config false;
+      description
+        "Device.DLNA.Capabilities.HNDDeviceClass";
+      reference
+        "Device.DLNA.Capabilities.HNDDeviceClass";
+    }
+    leaf device-capability {
+      type string;
+      config false;
+      description
+        "Device.DLNA.Capabilities.DeviceCapability";
+      reference
+        "Device.DLNA.Capabilities.DeviceCapability";
+    }
+    leaf hid-device-class {
+      type string;
+      config false;
+      description
+        "Device.DLNA.Capabilities.HIDDeviceClass";
+      reference
+        "Device.DLNA.Capabilities.HIDDeviceClass";
+    }
+    leaf image-class-profile-id {
+      type string;
+      config false;
+      description
+        "Device.DLNA.Capabilities.ImageClassProfileID";
+      reference
+        "Device.DLNA.Capabilities.ImageClassProfileID";
+    }
+    leaf audio-class-profile-id {
+      type string;
+      config false;
+      description
+        "Device.DLNA.Capabilities.AudioClassProfileID";
+      reference
+        "Device.DLNA.Capabilities.AudioClassProfileID";
+    }
+    leaf av-class-profile-id {
+      type string;
+      config false;
+      description
+        "Device.DLNA.Capabilities.AVClassProfileID";
+      reference
+        "Device.DLNA.Capabilities.AVClassProfileID";
+    }
+    leaf media-collection-profile-id {
+      type string;
+      config false;
+      description
+        "Device.DLNA.Capabilities.MediaCollectionProfileID";
+      reference
+        "Device.DLNA.Capabilities.MediaCollectionProfileID";
+    }
+    leaf printer-class-profile-id {
+      type string;
+      config false;
+      description
+        "Device.DLNA.Capabilities.PrinterClassProfileID";
+      reference
+        "Device.DLNA.Capabilities.PrinterClassProfileID";
+    }
+  }
+
+  grouping device-dns-g {
+    description
+      "Grouping object for Device.DNS.";
+    leaf supported-record-types {
+      type string;
+      config false;
+      description
+        "Device.DNS.SupportedRecordTypes";
+      reference
+        "Device.DNS.SupportedRecordTypes";
+    }
+  }
+
+  grouping dns-client-g {
+    description
+      "Grouping object for Device.DNS.Client.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.DNS.Client.Enable";
+      reference
+        "Device.DNS.Client.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DNS.Client.Status";
+      reference
+        "Device.DNS.Client.Status";
+    }
+    leaf server-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.Client.ServerNumberOfEntries";
+      reference
+        "Device.DNS.Client.ServerNumberOfEntries";
+    }
+  }
+
+  grouping dns-client-server-g {
+    description
+      "Grouping object for Device.DNS.Client.Server.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DNS.Client.Server.{i}.Enable";
+      reference
+        "Device.DNS.Client.Server.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DNS.Client.Server.{i}.Status";
+      reference
+        "Device.DNS.Client.Server.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DNS.Client.Server.{i}.Alias";
+      reference
+        "Device.DNS.Client.Server.{i}.Alias";
+    }
+    leaf dns-server {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.DNS.Client.Server.{i}.DNSServer";
+      reference
+        "Device.DNS.Client.Server.{i}.DNSServer";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DNS.Client.Server.{i}.Interface";
+      reference
+        "Device.DNS.Client.Server.{i}.Interface";
+    }
+    leaf type {
+      type string;
+      config false;
+      description
+        "Device.DNS.Client.Server.{i}.Type";
+      reference
+        "Device.DNS.Client.Server.{i}.Type";
+    }
+  }
+
+  grouping diagnostics-ns-lookup-diagnostics-g {
+    description
+      "Grouping object for Device.DNS.Diagnostics.NSLookupDiagnostics.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error_DNSServerNotResolved {
+          description
+            "Enum Value - Error_DNSServerNotResolved";
+        }
+        enum Error_Internal {
+          description
+            "Enum Value - Error_Internal";
+        }
+        enum Error_Other {
+          description
+            "Enum Value - Error_Other";
+        }
+      }
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Interface";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Interface";
+    }
+    leaf host-name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.HostName";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.HostName";
+    }
+    leaf dns-server {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.DNSServer";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.DNSServer";
+    }
+    leaf timeout {
+      type uint32;
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Timeout";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Timeout";
+    }
+    leaf number-of-repetitions {
+      type uint32;
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.NumberOfRepetitions";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.NumberOfRepetitions";
+    }
+    leaf success-count {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.SuccessCount";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.SuccessCount";
+    }
+    leaf result-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.ResultNumberOfEntries";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.ResultNumberOfEntries";
+    }
+  }
+
+  grouping ns-lookup-diagnostics-result-g {
+    description
+      "Grouping object for Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.Status";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.Status";
+    }
+    leaf answer-type {
+      type string;
+      config false;
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.AnswerType";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.AnswerType";
+    }
+    leaf host-name-returned {
+      type string;
+      config false;
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.HostNameReturned";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.HostNameReturned";
+    }
+    leaf ip-addresses {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.IPAddresses";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.IPAddresses";
+    }
+    leaf dns-server-ip {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.DNSServerIP";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.DNSServerIP";
+    }
+    leaf response-time {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.ResponseTime";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.ResponseTime";
+    }
+  }
+
+  grouping dns-relay-g {
+    description
+      "Grouping object for Device.DNS.Relay.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.DNS.Relay.Enable";
+      reference
+        "Device.DNS.Relay.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DNS.Relay.Status";
+      reference
+        "Device.DNS.Relay.Status";
+    }
+    leaf forward-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.Relay.ForwardNumberOfEntries";
+      reference
+        "Device.DNS.Relay.ForwardNumberOfEntries";
+    }
+  }
+
+  grouping dns-relay-forwarding-g {
+    description
+      "Grouping object for Device.DNS.Relay.Forwarding.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DNS.Relay.Forwarding.{i}.Enable";
+      reference
+        "Device.DNS.Relay.Forwarding.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DNS.Relay.Forwarding.{i}.Status";
+      reference
+        "Device.DNS.Relay.Forwarding.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DNS.Relay.Forwarding.{i}.Alias";
+      reference
+        "Device.DNS.Relay.Forwarding.{i}.Alias";
+    }
+    leaf dns-server {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.DNS.Relay.Forwarding.{i}.DNSServer";
+      reference
+        "Device.DNS.Relay.Forwarding.{i}.DNSServer";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DNS.Relay.Forwarding.{i}.Interface";
+      reference
+        "Device.DNS.Relay.Forwarding.{i}.Interface";
+    }
+    leaf type {
+      type string;
+      config false;
+      description
+        "Device.DNS.Relay.Forwarding.{i}.Type";
+      reference
+        "Device.DNS.Relay.Forwarding.{i}.Type";
+    }
+  }
+
+  grouping dns-sd-g {
+    description
+      "Grouping object for Device.DNS.SD.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.DNS.SD.Enable";
+      reference
+        "Device.DNS.SD.Enable";
+    }
+    leaf service-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.SD.ServiceNumberOfEntries";
+      reference
+        "Device.DNS.SD.ServiceNumberOfEntries";
+    }
+    leaf advertised-interfaces {
+      type string;
+      description
+        "Device.DNS.SD.AdvertisedInterfaces";
+      reference
+        "Device.DNS.SD.AdvertisedInterfaces";
+    }
+  }
+
+  grouping sd-service-g {
+    description
+      "Grouping object for Device.DNS.SD.Service.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf instance-name {
+      type string;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.InstanceName";
+      reference
+        "Device.DNS.SD.Service.{i}.InstanceName";
+    }
+    leaf application-protocol {
+      type string;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.ApplicationProtocol";
+      reference
+        "Device.DNS.SD.Service.{i}.ApplicationProtocol";
+    }
+    leaf transport-protocol {
+      type string;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.TransportProtocol";
+      reference
+        "Device.DNS.SD.Service.{i}.TransportProtocol";
+    }
+    leaf domain {
+      type string;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.Domain";
+      reference
+        "Device.DNS.SD.Service.{i}.Domain";
+    }
+    leaf port {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.Port";
+      reference
+        "Device.DNS.SD.Service.{i}.Port";
+    }
+    leaf target {
+      type string;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.Target";
+      reference
+        "Device.DNS.SD.Service.{i}.Target";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.Status";
+      reference
+        "Device.DNS.SD.Service.{i}.Status";
+    }
+    leaf last-update {
+      type string;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.LastUpdate";
+      reference
+        "Device.DNS.SD.Service.{i}.LastUpdate";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.Host";
+      reference
+        "Device.DNS.SD.Service.{i}.Host";
+    }
+    leaf time-to-live {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.TimeToLive";
+      reference
+        "Device.DNS.SD.Service.{i}.TimeToLive";
+    }
+    leaf priority {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.Priority";
+      reference
+        "Device.DNS.SD.Service.{i}.Priority";
+    }
+    leaf weight {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.Weight";
+      reference
+        "Device.DNS.SD.Service.{i}.Weight";
+    }
+    leaf text-record-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.TextRecordNumberOfEntries";
+      reference
+        "Device.DNS.SD.Service.{i}.TextRecordNumberOfEntries";
+    }
+  }
+
+  grouping service-text-record-g {
+    description
+      "Grouping object for Device.DNS.SD.Service.{i}.TextRecord.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf key {
+      type string;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.TextRecord.{i}.Key";
+      reference
+        "Device.DNS.SD.Service.{i}.TextRecord.{i}.Key";
+    }
+    leaf value {
+      type string;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.TextRecord.{i}.Value";
+      reference
+        "Device.DNS.SD.Service.{i}.TextRecord.{i}.Value";
+    }
+  }
+
+  grouping device-dsl-g {
+    description
+      "Grouping object for Device.DSL.";
+    leaf line-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.LineNumberOfEntries";
+      reference
+        "Device.DSL.LineNumberOfEntries";
+    }
+    leaf channel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.ChannelNumberOfEntries";
+      reference
+        "Device.DSL.ChannelNumberOfEntries";
+    }
+    leaf bonding-group-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroupNumberOfEntries";
+      reference
+        "Device.DSL.BondingGroupNumberOfEntries";
+    }
+  }
+
+  grouping dsl-bonding-group-g {
+    description
+      "Grouping object for Device.DSL.BondingGroup.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DSL.BondingGroup.{i}.Enable";
+      reference
+        "Device.DSL.BondingGroup.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Status";
+      reference
+        "Device.DSL.BondingGroup.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DSL.BondingGroup.{i}.Alias";
+      reference
+        "Device.DSL.BondingGroup.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Name";
+      reference
+        "Device.DSL.BondingGroup.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.LastChange";
+      reference
+        "Device.DSL.BondingGroup.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.LowerLayers";
+      reference
+        "Device.DSL.BondingGroup.{i}.LowerLayers";
+    }
+    leaf group-status {
+      type string;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.GroupStatus";
+      reference
+        "Device.DSL.BondingGroup.{i}.GroupStatus";
+    }
+    leaf group-id {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.GroupID";
+      reference
+        "Device.DSL.BondingGroup.{i}.GroupID";
+    }
+    leaf bond-schemes-supported {
+      type string;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondSchemesSupported";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondSchemesSupported";
+    }
+    leaf bond-scheme {
+      type string;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondScheme";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondScheme";
+    }
+    leaf group-capacity {
+      type uint32 {
+        range "1..32";
+      }
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.GroupCapacity";
+      reference
+        "Device.DSL.BondingGroup.{i}.GroupCapacity";
+    }
+    leaf running-time {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.RunningTime";
+      reference
+        "Device.DSL.BondingGroup.{i}.RunningTime";
+    }
+    leaf target-up-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.TargetUpRate";
+      reference
+        "Device.DSL.BondingGroup.{i}.TargetUpRate";
+    }
+    leaf target-down-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.TargetDownRate";
+      reference
+        "Device.DSL.BondingGroup.{i}.TargetDownRate";
+    }
+    leaf thresh-low-up-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.ThreshLowUpRate";
+      reference
+        "Device.DSL.BondingGroup.{i}.ThreshLowUpRate";
+    }
+    leaf thresh-low-down-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.ThreshLowDownRate";
+      reference
+        "Device.DSL.BondingGroup.{i}.ThreshLowDownRate";
+    }
+    leaf upstream-differential-delay-tolerance {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.UpstreamDifferentialDelayTolerance";
+      reference
+        "Device.DSL.BondingGroup.{i}.UpstreamDifferentialDelayTolerance";
+    }
+    leaf downstream-differential-delay-tolerance {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.DownstreamDifferentialDelayTolerance";
+      reference
+        "Device.DSL.BondingGroup.{i}.DownstreamDifferentialDelayTolerance";
+    }
+    leaf bonded-channel-number-of-entries {
+      type uint32 {
+        range "1..32";
+      }
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannelNumberOfEntries";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannelNumberOfEntries";
+    }
+  }
+
+  grouping bonding-group-bonded-channel-g {
+    description
+      "Grouping object for Device.DSL.BondingGroup.{i}.BondedChannel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Alias";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Alias";
+    }
+    leaf channel {
+      type string;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Channel";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Channel";
+    }
+  }
+
+  grouping ethernet-stats-g {
+    description
+      "Grouping object for Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.";
+    leaf underflow-errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.UnderflowErrorsSent";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.UnderflowErrorsSent";
+    }
+    leaf crc-errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.CRCErrorsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.CRCErrorsReceived";
+    }
+    leaf alignment-errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.AlignmentErrorsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.AlignmentErrorsReceived";
+    }
+    leaf short-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.ShortPacketsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.ShortPacketsReceived";
+    }
+    leaf long-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.LongPacketsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.LongPacketsReceived";
+    }
+    leaf overflow-errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.OverflowErrorsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.OverflowErrorsReceived";
+    }
+    leaf pause-frames-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.PauseFramesReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.PauseFramesReceived";
+    }
+    leaf frames-dropped {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.FramesDropped";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.FramesDropped";
+    }
+  }
+
+  grouping bonding-group-ethernet-stats-g {
+    description
+      "Grouping object for Device.DSL.BondingGroup.{i}.Ethernet.Stats.";
+    leaf paf-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFErrors";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFErrors";
+    }
+    leaf paf-small-fragments {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFSmallFragments";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFSmallFragments";
+    }
+    leaf paf-large-fragments {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFLargeFragments";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFLargeFragments";
+    }
+    leaf paf-bad-fragments {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFBadFragments";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFBadFragments";
+    }
+    leaf paf-lost-fragments {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFLostFragments";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFLostFragments";
+    }
+    leaf paf-late-fragments {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFLateFragments";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFLateFragments";
+    }
+    leaf paf-lost-starts {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFLostStarts";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFLostStarts";
+    }
+    leaf paf-lost-ends {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFLostEnds";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFLostEnds";
+    }
+    leaf paf-overflows {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFOverflows";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFOverflows";
+    }
+    leaf pause-frames-sent {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PauseFramesSent";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PauseFramesSent";
+    }
+    leaf crc-errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.CRCErrorsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.CRCErrorsReceived";
+    }
+    leaf alignment-errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.AlignmentErrorsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.AlignmentErrorsReceived";
+    }
+    leaf short-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.ShortPacketsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.ShortPacketsReceived";
+    }
+    leaf long-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.LongPacketsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.LongPacketsReceived";
+    }
+    leaf overflow-errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.OverflowErrorsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.OverflowErrorsReceived";
+    }
+    leaf frames-dropped {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.FramesDropped";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.FramesDropped";
+    }
+  }
+
+  grouping bonding-group-stats-g {
+    description
+      "Grouping object for Device.DSL.BondingGroup.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.BytesSent";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.BytesReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.PacketsSent";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.PacketsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.ErrorsSent";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+    leaf total-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.TotalStart";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.TotalStart";
+    }
+    leaf current-day-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDayStart";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDayStart";
+    }
+    leaf quarter-hour-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHourStart";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHourStart";
+    }
+  }
+
+  grouping stats-current-day-g {
+    description
+      "Grouping object for Device.DSL.BondingGroup.{i}.Stats.CurrentDay.";
+    leaf failure-reasons {
+      type string;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.FailureReasons";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.FailureReasons";
+    }
+    leaf upstream-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.UpstreamRate";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.UpstreamRate";
+    }
+    leaf downstream-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.DownstreamRate";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.DownstreamRate";
+    }
+    leaf upstream-packet-loss {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.UpstreamPacketLoss";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.UpstreamPacketLoss";
+    }
+    leaf downstream-packet-loss {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.DownstreamPacketLoss";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.DownstreamPacketLoss";
+    }
+    leaf upstream-differential-delay {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.UpstreamDifferentialDelay";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.UpstreamDifferentialDelay";
+    }
+    leaf downstream-differential-delay {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.DownstreamDifferentialDelay";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.DownstreamDifferentialDelay";
+    }
+    leaf failure-count {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.FailureCount";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.FailureCount";
+    }
+    leaf errored-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.ErroredSeconds";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.ErroredSeconds";
+    }
+    leaf severely-errored-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.SeverelyErroredSeconds";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.SeverelyErroredSeconds";
+    }
+    leaf unavailable-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.UnavailableSeconds";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.UnavailableSeconds";
+    }
+  }
+
+  grouping stats-quarter-hour-g {
+    description
+      "Grouping object for Device.DSL.BondingGroup.{i}.Stats.QuarterHour.";
+    leaf failure-reasons {
+      type string;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.FailureReasons";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.FailureReasons";
+    }
+    leaf upstream-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.UpstreamRate";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.UpstreamRate";
+    }
+    leaf downstream-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.DownstreamRate";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.DownstreamRate";
+    }
+    leaf upstream-packet-loss {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.UpstreamPacketLoss";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.UpstreamPacketLoss";
+    }
+    leaf downstream-packet-loss {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.DownstreamPacketLoss";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.DownstreamPacketLoss";
+    }
+    leaf upstream-differential-delay {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.UpstreamDifferentialDelay";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.UpstreamDifferentialDelay";
+    }
+    leaf downstream-differential-delay {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.DownstreamDifferentialDelay";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.DownstreamDifferentialDelay";
+    }
+    leaf failure-count {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.FailureCount";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.FailureCount";
+    }
+    leaf errored-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.ErroredSeconds";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.ErroredSeconds";
+    }
+    leaf severely-errored-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.SeverelyErroredSeconds";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.SeverelyErroredSeconds";
+    }
+    leaf unavailable-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.UnavailableSeconds";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.UnavailableSeconds";
+    }
+  }
+
+  grouping stats-total-g {
+    description
+      "Grouping object for Device.DSL.BondingGroup.{i}.Stats.Total.";
+    leaf failure-reasons {
+      type string;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.FailureReasons";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.FailureReasons";
+    }
+    leaf upstream-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.UpstreamRate";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.UpstreamRate";
+    }
+    leaf downstream-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.DownstreamRate";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.DownstreamRate";
+    }
+    leaf upstream-packet-loss {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.UpstreamPacketLoss";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.UpstreamPacketLoss";
+    }
+    leaf downstream-packet-loss {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.DownstreamPacketLoss";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.DownstreamPacketLoss";
+    }
+    leaf upstream-differential-delay {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.UpstreamDifferentialDelay";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.UpstreamDifferentialDelay";
+    }
+    leaf downstream-differential-delay {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.DownstreamDifferentialDelay";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.DownstreamDifferentialDelay";
+    }
+    leaf failure-count {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.FailureCount";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.FailureCount";
+    }
+    leaf errored-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.ErroredSeconds";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.ErroredSeconds";
+    }
+    leaf severely-errored-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.SeverelyErroredSeconds";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.SeverelyErroredSeconds";
+    }
+    leaf unavailable-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.UnavailableSeconds";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.UnavailableSeconds";
+    }
+  }
+
+  grouping dsl-channel-g {
+    description
+      "Grouping object for Device.DSL.Channel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DSL.Channel.{i}.Enable";
+      reference
+        "Device.DSL.Channel.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Status";
+      reference
+        "Device.DSL.Channel.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DSL.Channel.{i}.Alias";
+      reference
+        "Device.DSL.Channel.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Name";
+      reference
+        "Device.DSL.Channel.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.LastChange";
+      reference
+        "Device.DSL.Channel.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.LowerLayers";
+      reference
+        "Device.DSL.Channel.{i}.LowerLayers";
+    }
+    leaf link-encapsulation-supported {
+      type string;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.LinkEncapsulationSupported";
+      reference
+        "Device.DSL.Channel.{i}.LinkEncapsulationSupported";
+    }
+    leaf link-encapsulation-used {
+      type string;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.LinkEncapsulationUsed";
+      reference
+        "Device.DSL.Channel.{i}.LinkEncapsulationUsed";
+    }
+    leaf lpath {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.LPATH";
+      reference
+        "Device.DSL.Channel.{i}.LPATH";
+    }
+    leaf intlvdepth {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.INTLVDEPTH";
+      reference
+        "Device.DSL.Channel.{i}.INTLVDEPTH";
+    }
+    leaf intlvblock {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.INTLVBLOCK";
+      reference
+        "Device.DSL.Channel.{i}.INTLVBLOCK";
+    }
+    leaf actual-interleaving-delay {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.ActualInterleavingDelay";
+      reference
+        "Device.DSL.Channel.{i}.ActualInterleavingDelay";
+    }
+    leaf actinp {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.ACTINP";
+      reference
+        "Device.DSL.Channel.{i}.ACTINP";
+    }
+    leaf inpreport {
+      type boolean;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.INPREPORT";
+      reference
+        "Device.DSL.Channel.{i}.INPREPORT";
+    }
+    leaf nfec {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.NFEC";
+      reference
+        "Device.DSL.Channel.{i}.NFEC";
+    }
+    leaf rfec {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.RFEC";
+      reference
+        "Device.DSL.Channel.{i}.RFEC";
+    }
+    leaf lsymb {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.LSYMB";
+      reference
+        "Device.DSL.Channel.{i}.LSYMB";
+    }
+    leaf upstream-curr-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.UpstreamCurrRate";
+      reference
+        "Device.DSL.Channel.{i}.UpstreamCurrRate";
+    }
+    leaf downstream-curr-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.DownstreamCurrRate";
+      reference
+        "Device.DSL.Channel.{i}.DownstreamCurrRate";
+    }
+    leaf actndr {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.ACTNDR";
+      reference
+        "Device.DSL.Channel.{i}.ACTNDR";
+    }
+    leaf actinprein {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.DSL.Channel.{i}.ACTINPREIN";
+      reference
+        "Device.DSL.Channel.{i}.ACTINPREIN";
+    }
+  }
+
+  grouping channel-stats-g {
+    description
+      "Grouping object for Device.DSL.Channel.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.BytesSent";
+      reference
+        "Device.DSL.Channel.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.BytesReceived";
+      reference
+        "Device.DSL.Channel.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.PacketsSent";
+      reference
+        "Device.DSL.Channel.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.PacketsReceived";
+      reference
+        "Device.DSL.Channel.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.ErrorsSent";
+      reference
+        "Device.DSL.Channel.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.DSL.Channel.{i}.Stats.ErrorsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.DSL.Channel.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.DSL.Channel.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf total-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.TotalStart";
+      reference
+        "Device.DSL.Channel.{i}.Stats.TotalStart";
+    }
+    leaf showtime-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.ShowtimeStart";
+      reference
+        "Device.DSL.Channel.{i}.Stats.ShowtimeStart";
+    }
+    leaf last-showtime-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.LastShowtimeStart";
+      reference
+        "Device.DSL.Channel.{i}.Stats.LastShowtimeStart";
+    }
+    leaf current-day-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.CurrentDayStart";
+      reference
+        "Device.DSL.Channel.{i}.Stats.CurrentDayStart";
+    }
+    leaf quarter-hour-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.QuarterHourStart";
+      reference
+        "Device.DSL.Channel.{i}.Stats.QuarterHourStart";
+    }
+  }
+
+  grouping channel-stats-current-day-g {
+    description
+      "Grouping object for Device.DSL.Channel.{i}.Stats.CurrentDay.";
+    leaf xturfec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTURFECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTURFECErrors";
+    }
+    leaf xtucfec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTUCFECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTUCFECErrors";
+    }
+    leaf xturhec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTURHECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTURHECErrors";
+    }
+    leaf xtuchec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTUCHECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTUCHECErrors";
+    }
+    leaf xturcrc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTURCRCErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTURCRCErrors";
+    }
+    leaf xtuccrc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTUCCRCErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTUCCRCErrors";
+    }
+  }
+
+  grouping stats-last-showtime-g {
+    description
+      "Grouping object for Device.DSL.Channel.{i}.Stats.LastShowtime.";
+    leaf xturfec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTURFECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTURFECErrors";
+    }
+    leaf xtucfec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTUCFECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTUCFECErrors";
+    }
+    leaf xturhec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTURHECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTURHECErrors";
+    }
+    leaf xtuchec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTUCHECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTUCHECErrors";
+    }
+    leaf xturcrc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTURCRCErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTURCRCErrors";
+    }
+    leaf xtuccrc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTUCCRCErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTUCCRCErrors";
+    }
+  }
+
+  grouping channel-stats-quarter-hour-g {
+    description
+      "Grouping object for Device.DSL.Channel.{i}.Stats.QuarterHour.";
+    leaf xturfec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTURFECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTURFECErrors";
+    }
+    leaf xtucfec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTUCFECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTUCFECErrors";
+    }
+    leaf xturhec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTURHECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTURHECErrors";
+    }
+    leaf xtuchec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTUCHECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTUCHECErrors";
+    }
+    leaf xturcrc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTURCRCErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTURCRCErrors";
+    }
+    leaf xtuccrc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTUCCRCErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTUCCRCErrors";
+    }
+  }
+
+  grouping stats-showtime-g {
+    description
+      "Grouping object for Device.DSL.Channel.{i}.Stats.Showtime.";
+    leaf xturfec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTURFECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTURFECErrors";
+    }
+    leaf xtucfec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTUCFECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTUCFECErrors";
+    }
+    leaf xturhec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTURHECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTURHECErrors";
+    }
+    leaf xtuchec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTUCHECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTUCHECErrors";
+    }
+    leaf xturcrc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTURCRCErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTURCRCErrors";
+    }
+    leaf xtuccrc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTUCCRCErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTUCCRCErrors";
+    }
+  }
+
+  grouping channel-stats-total-g {
+    description
+      "Grouping object for Device.DSL.Channel.{i}.Stats.Total.";
+    leaf xturfec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Total.XTURFECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Total.XTURFECErrors";
+    }
+    leaf xtucfec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Total.XTUCFECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Total.XTUCFECErrors";
+    }
+    leaf xturhec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Total.XTURHECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Total.XTURHECErrors";
+    }
+    leaf xtuchec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Total.XTUCHECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Total.XTUCHECErrors";
+    }
+    leaf xturcrc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Total.XTURCRCErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Total.XTURCRCErrors";
+    }
+    leaf xtuccrc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Total.XTUCCRCErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Total.XTUCCRCErrors";
+    }
+  }
+
+  grouping diagnostics-adsl-line-test-g {
+    description
+      "Grouping object for Device.DSL.Diagnostics.ADSLLineTest.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Canceled {
+          description
+            "Enum Value - Canceled";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error {
+          description
+            "Enum Value - Error";
+        }
+        enum Error_Internal {
+          description
+            "Enum Value - Error_Internal";
+        }
+        enum Error_Other {
+          description
+            "Enum Value - Error_Other";
+        }
+      }
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.DiagnosticsState";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.Interface";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.Interface";
+    }
+    leaf actps-dds {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.ACTPSDds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.ACTPSDds";
+    }
+    leaf actps-dus {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.ACTPSDus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.ACTPSDus";
+    }
+    leaf actat-pds {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.ACTATPds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.ACTATPds";
+    }
+    leaf actat-pus {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.ACTATPus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.ACTATPus";
+    }
+    leaf hlins-cds {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINSCds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINSCds";
+    }
+    leaf hlins-cus {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINSCus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINSCus";
+    }
+    leaf hlin-gds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINGds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINGds";
+    }
+    leaf hlin-gus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINGus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINGus";
+    }
+    leaf hlog-gds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGGds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGGds";
+    }
+    leaf hlog-gus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGGus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGGus";
+    }
+    leaf hlo-gpsds {
+      type string;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGpsds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGpsds";
+    }
+    leaf hlo-gpsus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGpsus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGpsus";
+    }
+    leaf hlogm-tds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGMTds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGMTds";
+    }
+    leaf hlogm-tus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGMTus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGMTus";
+    }
+    leaf lat-npbds {
+      type string;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.LATNpbds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.LATNpbds";
+    }
+    leaf lat-npbus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.LATNpbus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.LATNpbus";
+    }
+    leaf sat-nds {
+      type string;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.SATNds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.SATNds";
+    }
+    leaf sat-nus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.SATNus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.SATNus";
+    }
+    leaf hli-npsds {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINpsds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINpsds";
+    }
+    leaf hli-npsus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINpsus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINpsus";
+    }
+    leaf qln-gds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNGds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNGds";
+    }
+    leaf qln-gus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNGus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNGus";
+    }
+    leaf ql-npsds {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNpsds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNpsds";
+    }
+    leaf ql-npsus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNpsus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNpsus";
+    }
+    leaf qlnm-tds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNMTds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNMTds";
+    }
+    leaf qlnm-tus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNMTus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNMTus";
+    }
+    leaf snr-gds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRGds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRGds";
+    }
+    leaf snr-gus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRGus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRGus";
+    }
+    leaf sn-rpsds {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRpsds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRpsds";
+    }
+    leaf sn-rpsus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRpsus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRpsus";
+    }
+    leaf snrm-tds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRMTds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRMTds";
+    }
+    leaf snrm-tus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRMTus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRMTus";
+    }
+    leaf bit-spsds {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.BITSpsds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.BITSpsds";
+    }
+    leaf bit-spsus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.BITSpsus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.BITSpsus";
+    }
+  }
+
+  grouping dsl-line-g {
+    description
+      "Grouping object for Device.DSL.Line.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DSL.Line.{i}.Enable";
+      reference
+        "Device.DSL.Line.{i}.Enable";
+    }
+    leaf enable-data-gathering {
+      type boolean;
+      description
+        "Device.DSL.Line.{i}.EnableDataGathering";
+      reference
+        "Device.DSL.Line.{i}.EnableDataGathering";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Status";
+      reference
+        "Device.DSL.Line.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DSL.Line.{i}.Alias";
+      reference
+        "Device.DSL.Line.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Name";
+      reference
+        "Device.DSL.Line.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.LastChange";
+      reference
+        "Device.DSL.Line.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.DSL.Line.{i}.LowerLayers";
+      reference
+        "Device.DSL.Line.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Upstream";
+      reference
+        "Device.DSL.Line.{i}.Upstream";
+    }
+    leaf firmware-version {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.FirmwareVersion";
+      reference
+        "Device.DSL.Line.{i}.FirmwareVersion";
+    }
+    leaf link-status {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.LinkStatus";
+      reference
+        "Device.DSL.Line.{i}.LinkStatus";
+    }
+    leaf standards-supported {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.StandardsSupported";
+      reference
+        "Device.DSL.Line.{i}.StandardsSupported";
+    }
+    leaf xtse {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.XTSE";
+      reference
+        "Device.DSL.Line.{i}.XTSE";
+    }
+    leaf standard-used {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.StandardUsed";
+      reference
+        "Device.DSL.Line.{i}.StandardUsed";
+    }
+    leaf xts-used {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.XTSUsed";
+      reference
+        "Device.DSL.Line.{i}.XTSUsed";
+    }
+    leaf line-encoding {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.LineEncoding";
+      reference
+        "Device.DSL.Line.{i}.LineEncoding";
+    }
+    leaf allowed-profiles {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.AllowedProfiles";
+      reference
+        "Device.DSL.Line.{i}.AllowedProfiles";
+    }
+    leaf current-profile {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.CurrentProfile";
+      reference
+        "Device.DSL.Line.{i}.CurrentProfile";
+    }
+    leaf power-management-state {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.PowerManagementState";
+      reference
+        "Device.DSL.Line.{i}.PowerManagementState";
+    }
+    leaf success-failure-cause {
+      type uint32 {
+        range "0..6";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.SuccessFailureCause";
+      reference
+        "Device.DSL.Line.{i}.SuccessFailureCause";
+    }
+    leaf upbokler {
+      type uint32 {
+        range "0..1280";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.UPBOKLER";
+      reference
+        "Device.DSL.Line.{i}.UPBOKLER";
+    }
+    leaf upbokle-pb {
+      type uint32 {
+        range "0..1280 | 2047";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.UPBOKLEPb";
+      reference
+        "Device.DSL.Line.{i}.UPBOKLEPb";
+    }
+    leaf upbokler-pb {
+      type uint32 {
+        range "0..1280 | 2047";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.UPBOKLERPb";
+      reference
+        "Device.DSL.Line.{i}.UPBOKLERPb";
+    }
+    leaf rxthrs-hds {
+      type int32 {
+        range "-640..0";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.RXTHRSHds";
+      reference
+        "Device.DSL.Line.{i}.RXTHRSHds";
+    }
+    leaf actramod-eds {
+      type uint32 {
+        range "1..4";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.ACTRAMODEds";
+      reference
+        "Device.DSL.Line.{i}.ACTRAMODEds";
+    }
+    leaf actramod-eus {
+      type uint32 {
+        range "1..4";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.ACTRAMODEus";
+      reference
+        "Device.DSL.Line.{i}.ACTRAMODEus";
+    }
+    leaf actinpro-cds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.ACTINPROCds";
+      reference
+        "Device.DSL.Line.{i}.ACTINPROCds";
+    }
+    leaf actinpro-cus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.ACTINPROCus";
+      reference
+        "Device.DSL.Line.{i}.ACTINPROCus";
+    }
+    leaf snrmro-cds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.SNRMROCds";
+      reference
+        "Device.DSL.Line.{i}.SNRMROCds";
+    }
+    leaf snrmro-cus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.SNRMROCus";
+      reference
+        "Device.DSL.Line.{i}.SNRMROCus";
+    }
+    leaf last-state-transmitted-downstream {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.LastStateTransmittedDownstream";
+      reference
+        "Device.DSL.Line.{i}.LastStateTransmittedDownstream";
+    }
+    leaf last-state-transmitted-upstream {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.LastStateTransmittedUpstream";
+      reference
+        "Device.DSL.Line.{i}.LastStateTransmittedUpstream";
+    }
+    leaf upbokle {
+      type uint32 {
+        range "0..1280";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.UPBOKLE";
+      reference
+        "Device.DSL.Line.{i}.UPBOKLE";
+    }
+    leaf mrefps-dds {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.MREFPSDds";
+      reference
+        "Device.DSL.Line.{i}.MREFPSDds";
+    }
+    leaf mrefps-dus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.MREFPSDus";
+      reference
+        "Device.DSL.Line.{i}.MREFPSDus";
+    }
+    leaf limitmask {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.LIMITMASK";
+      reference
+        "Device.DSL.Line.{i}.LIMITMASK";
+    }
+    leaf u-s0-mask {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.US0MASK";
+      reference
+        "Device.DSL.Line.{i}.US0MASK";
+    }
+    leaf trelli-sds {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TRELLISds";
+      reference
+        "Device.DSL.Line.{i}.TRELLISds";
+    }
+    leaf trelli-sus {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TRELLISus";
+      reference
+        "Device.DSL.Line.{i}.TRELLISus";
+    }
+    leaf actsnrmod-eds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.ACTSNRMODEds";
+      reference
+        "Device.DSL.Line.{i}.ACTSNRMODEds";
+    }
+    leaf actsnrmod-eus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.ACTSNRMODEus";
+      reference
+        "Device.DSL.Line.{i}.ACTSNRMODEus";
+    }
+    leaf virtual-noise-ps-dds {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.VirtualNoisePSDds";
+      reference
+        "Device.DSL.Line.{i}.VirtualNoisePSDds";
+    }
+    leaf virtual-noise-ps-dus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.VirtualNoisePSDus";
+      reference
+        "Device.DSL.Line.{i}.VirtualNoisePSDus";
+    }
+    leaf actualce {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.ACTUALCE";
+      reference
+        "Device.DSL.Line.{i}.ACTUALCE";
+    }
+    leaf line-number {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.LineNumber";
+      reference
+        "Device.DSL.Line.{i}.LineNumber";
+    }
+    leaf upstream-max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.UpstreamMaxBitRate";
+      reference
+        "Device.DSL.Line.{i}.UpstreamMaxBitRate";
+    }
+    leaf downstream-max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.DownstreamMaxBitRate";
+      reference
+        "Device.DSL.Line.{i}.DownstreamMaxBitRate";
+    }
+    leaf upstream-noise-margin {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.UpstreamNoiseMargin";
+      reference
+        "Device.DSL.Line.{i}.UpstreamNoiseMargin";
+    }
+    leaf downstream-noise-margin {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.DownstreamNoiseMargin";
+      reference
+        "Device.DSL.Line.{i}.DownstreamNoiseMargin";
+    }
+    leaf snr-mpbus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.SNRMpbus";
+      reference
+        "Device.DSL.Line.{i}.SNRMpbus";
+    }
+    leaf snr-mpbds {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.SNRMpbds";
+      reference
+        "Device.DSL.Line.{i}.SNRMpbds";
+    }
+    leaf inmiat-ods {
+      type uint32 {
+        range "3..511";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.INMIATOds";
+      reference
+        "Device.DSL.Line.{i}.INMIATOds";
+    }
+    leaf inmiat-sds {
+      type uint32 {
+        range "0..7";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.INMIATSds";
+      reference
+        "Device.DSL.Line.{i}.INMIATSds";
+    }
+    leaf inmc-cds {
+      type uint32 {
+        range "0..64";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.INMCCds";
+      reference
+        "Device.DSL.Line.{i}.INMCCds";
+    }
+    leaf inminpeqmod-eds {
+      type uint32 {
+        range "0..3";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.INMINPEQMODEds";
+      reference
+        "Device.DSL.Line.{i}.INMINPEQMODEds";
+    }
+    leaf upstream-attenuation {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.UpstreamAttenuation";
+      reference
+        "Device.DSL.Line.{i}.UpstreamAttenuation";
+    }
+    leaf downstream-attenuation {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.DownstreamAttenuation";
+      reference
+        "Device.DSL.Line.{i}.DownstreamAttenuation";
+    }
+    leaf upstream-power {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.UpstreamPower";
+      reference
+        "Device.DSL.Line.{i}.UpstreamPower";
+    }
+    leaf downstream-power {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.DownstreamPower";
+      reference
+        "Device.DSL.Line.{i}.DownstreamPower";
+    }
+    leaf xtur-vendor {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.XTURVendor";
+      reference
+        "Device.DSL.Line.{i}.XTURVendor";
+    }
+    leaf xtur-country {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.XTURCountry";
+      reference
+        "Device.DSL.Line.{i}.XTURCountry";
+    }
+    leaf xturansi-std {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.XTURANSIStd";
+      reference
+        "Device.DSL.Line.{i}.XTURANSIStd";
+    }
+    leaf xturansi-rev {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.XTURANSIRev";
+      reference
+        "Device.DSL.Line.{i}.XTURANSIRev";
+    }
+    leaf xtuc-vendor {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.XTUCVendor";
+      reference
+        "Device.DSL.Line.{i}.XTUCVendor";
+    }
+    leaf xtuc-country {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.XTUCCountry";
+      reference
+        "Device.DSL.Line.{i}.XTUCCountry";
+    }
+    leaf xtucansi-std {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.XTUCANSIStd";
+      reference
+        "Device.DSL.Line.{i}.XTUCANSIStd";
+    }
+    leaf xtucansi-rev {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.XTUCANSIRev";
+      reference
+        "Device.DSL.Line.{i}.XTUCANSIRev";
+    }
+  }
+
+  grouping line-data-gathering-g {
+    description
+      "Grouping object for Device.DSL.Line.{i}.DataGathering.";
+    leaf logging-depth-r {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.DataGathering.LoggingDepthR";
+      reference
+        "Device.DSL.Line.{i}.DataGathering.LoggingDepthR";
+    }
+    leaf act-logging-depth-reporting-r {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.DataGathering.ActLoggingDepthReportingR";
+      reference
+        "Device.DSL.Line.{i}.DataGathering.ActLoggingDepthReportingR";
+    }
+    leaf event-trace-buffer-r {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.DataGathering.EventTraceBufferR";
+      reference
+        "Device.DSL.Line.{i}.DataGathering.EventTraceBufferR";
+    }
+  }
+
+  grouping line-stats-g {
+    description
+      "Grouping object for Device.DSL.Line.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.BytesSent";
+      reference
+        "Device.DSL.Line.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.BytesReceived";
+      reference
+        "Device.DSL.Line.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.PacketsSent";
+      reference
+        "Device.DSL.Line.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.PacketsReceived";
+      reference
+        "Device.DSL.Line.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.ErrorsSent";
+      reference
+        "Device.DSL.Line.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.DSL.Line.{i}.Stats.ErrorsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.DSL.Line.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.DSL.Line.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf total-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.TotalStart";
+      reference
+        "Device.DSL.Line.{i}.Stats.TotalStart";
+    }
+    leaf showtime-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.ShowtimeStart";
+      reference
+        "Device.DSL.Line.{i}.Stats.ShowtimeStart";
+    }
+    leaf last-showtime-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.LastShowtimeStart";
+      reference
+        "Device.DSL.Line.{i}.Stats.LastShowtimeStart";
+    }
+    leaf current-day-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.CurrentDayStart";
+      reference
+        "Device.DSL.Line.{i}.Stats.CurrentDayStart";
+    }
+    leaf quarter-hour-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.QuarterHourStart";
+      reference
+        "Device.DSL.Line.{i}.Stats.QuarterHourStart";
+    }
+  }
+
+  grouping line-stats-current-day-g {
+    description
+      "Grouping object for Device.DSL.Line.{i}.Stats.CurrentDay.";
+    leaf errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.CurrentDay.ErroredSecs";
+      reference
+        "Device.DSL.Line.{i}.Stats.CurrentDay.ErroredSecs";
+    }
+    leaf severely-errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.CurrentDay.SeverelyErroredSecs";
+      reference
+        "Device.DSL.Line.{i}.Stats.CurrentDay.SeverelyErroredSecs";
+    }
+  }
+
+  grouping line-stats-last-showtime-g {
+    description
+      "Grouping object for Device.DSL.Line.{i}.Stats.LastShowtime.";
+    leaf errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.LastShowtime.ErroredSecs";
+      reference
+        "Device.DSL.Line.{i}.Stats.LastShowtime.ErroredSecs";
+    }
+    leaf severely-errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.LastShowtime.SeverelyErroredSecs";
+      reference
+        "Device.DSL.Line.{i}.Stats.LastShowtime.SeverelyErroredSecs";
+    }
+  }
+
+  grouping line-stats-quarter-hour-g {
+    description
+      "Grouping object for Device.DSL.Line.{i}.Stats.QuarterHour.";
+    leaf errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.QuarterHour.ErroredSecs";
+      reference
+        "Device.DSL.Line.{i}.Stats.QuarterHour.ErroredSecs";
+    }
+    leaf severely-errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.QuarterHour.SeverelyErroredSecs";
+      reference
+        "Device.DSL.Line.{i}.Stats.QuarterHour.SeverelyErroredSecs";
+    }
+  }
+
+  grouping line-stats-showtime-g {
+    description
+      "Grouping object for Device.DSL.Line.{i}.Stats.Showtime.";
+    leaf errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.Showtime.ErroredSecs";
+      reference
+        "Device.DSL.Line.{i}.Stats.Showtime.ErroredSecs";
+    }
+    leaf severely-errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.Showtime.SeverelyErroredSecs";
+      reference
+        "Device.DSL.Line.{i}.Stats.Showtime.SeverelyErroredSecs";
+    }
+  }
+
+  grouping line-stats-total-g {
+    description
+      "Grouping object for Device.DSL.Line.{i}.Stats.Total.";
+    leaf errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.Total.ErroredSecs";
+      reference
+        "Device.DSL.Line.{i}.Stats.Total.ErroredSecs";
+    }
+    leaf severely-errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.Total.SeverelyErroredSecs";
+      reference
+        "Device.DSL.Line.{i}.Stats.Total.SeverelyErroredSecs";
+    }
+  }
+
+  grouping line-test-params-g {
+    description
+      "Grouping object for Device.DSL.Line.{i}.TestParams.";
+    leaf hlog-gds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.HLOGGds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.HLOGGds";
+    }
+    leaf hlog-gus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.HLOGGus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.HLOGGus";
+    }
+    leaf hlo-gpsds {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.HLOGpsds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.HLOGpsds";
+    }
+    leaf hlo-gpsus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.HLOGpsus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.HLOGpsus";
+    }
+    leaf hlogm-tds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.HLOGMTds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.HLOGMTds";
+    }
+    leaf hlogm-tus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.HLOGMTus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.HLOGMTus";
+    }
+    leaf qln-gds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.QLNGds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.QLNGds";
+    }
+    leaf qln-gus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.QLNGus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.QLNGus";
+    }
+    leaf ql-npsds {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.QLNpsds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.QLNpsds";
+    }
+    leaf ql-npsus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.QLNpsus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.QLNpsus";
+    }
+    leaf qlnm-tds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.QLNMTds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.QLNMTds";
+    }
+    leaf qlnm-tus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.QLNMTus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.QLNMTus";
+    }
+    leaf snr-gds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.SNRGds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.SNRGds";
+    }
+    leaf snr-gus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.SNRGus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.SNRGus";
+    }
+    leaf sn-rpsds {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.SNRpsds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.SNRpsds";
+    }
+    leaf sn-rpsus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.SNRpsus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.SNRpsus";
+    }
+    leaf snrm-tds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.SNRMTds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.SNRMTds";
+    }
+    leaf snrm-tus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.SNRMTus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.SNRMTus";
+    }
+    leaf lat-nds {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.LATNds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.LATNds";
+    }
+    leaf lat-nus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.LATNus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.LATNus";
+    }
+    leaf sat-nds {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.SATNds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.SATNds";
+    }
+    leaf sat-nus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.SATNus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.SATNus";
+    }
+  }
+
+  grouping device-ds-lite-g {
+    description
+      "Grouping object for Device.DSLite.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.DSLite.Enable";
+      reference
+        "Device.DSLite.Enable";
+    }
+    leaf interface-setting-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DSLite.InterfaceSettingNumberOfEntries";
+      reference
+        "Device.DSLite.InterfaceSettingNumberOfEntries";
+    }
+  }
+
+  grouping ds-lite-interface-setting-g {
+    description
+      "Grouping object for Device.DSLite.InterfaceSetting.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DSLite.InterfaceSetting.{i}.Enable";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DSLite.InterfaceSetting.{i}.Status";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DSLite.InterfaceSetting.{i}.Alias";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.Alias";
+    }
+    leaf endpoint-assignment-precedence {
+      type enumeration {
+        enum DHCPv6 {
+          description
+            "Enum Value - DHCPv6";
+        }
+        enum Static {
+          description
+            "Enum Value - Static";
+        }
+      }
+      description
+        "Device.DSLite.InterfaceSetting.{i}.EndpointAssignmentPrecedence";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.EndpointAssignmentPrecedence";
+    }
+    leaf endpoint-address-type-precedence {
+      type enumeration {
+        enum FQDN {
+          description
+            "Enum Value - FQDN";
+        }
+        enum IPv6Address {
+          description
+            "Enum Value - IPv6Address";
+        }
+      }
+      description
+        "Device.DSLite.InterfaceSetting.{i}.EndpointAddressTypePrecedence";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.EndpointAddressTypePrecedence";
+    }
+    leaf endpoint-address-in-use {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.DSLite.InterfaceSetting.{i}.EndpointAddressInUse";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.EndpointAddressInUse";
+    }
+    leaf endpoint-name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DSLite.InterfaceSetting.{i}.EndpointName";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.EndpointName";
+    }
+    leaf endpoint-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.DSLite.InterfaceSetting.{i}.EndpointAddress";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.EndpointAddress";
+    }
+    leaf origin {
+      type string;
+      config false;
+      description
+        "Device.DSLite.InterfaceSetting.{i}.Origin";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.Origin";
+    }
+    leaf tunnel-interface {
+      type string;
+      config false;
+      description
+        "Device.DSLite.InterfaceSetting.{i}.TunnelInterface";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.TunnelInterface";
+    }
+    leaf tunneled-interface {
+      type string;
+      config false;
+      description
+        "Device.DSLite.InterfaceSetting.{i}.TunneledInterface";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.TunneledInterface";
+    }
+  }
+
+  grouping device-device-info-g {
+    description
+      "Grouping object for Device.DeviceInfo.";
+    leaf device-category {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.DeviceCategory";
+      reference
+        "Device.DeviceInfo.DeviceCategory";
+    }
+    leaf manufacturer {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.Manufacturer";
+      reference
+        "Device.DeviceInfo.Manufacturer";
+    }
+    leaf manufacturer-oui {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ManufacturerOUI";
+      reference
+        "Device.DeviceInfo.ManufacturerOUI";
+    }
+    leaf supported-data-model-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.SupportedDataModelNumberOfEntries";
+      reference
+        "Device.DeviceInfo.SupportedDataModelNumberOfEntries";
+    }
+    leaf model-name {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ModelName";
+      reference
+        "Device.DeviceInfo.ModelName";
+    }
+    leaf model-number {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ModelNumber";
+      reference
+        "Device.DeviceInfo.ModelNumber";
+    }
+    leaf description {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.Description";
+      reference
+        "Device.DeviceInfo.Description";
+    }
+    leaf product-class {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ProductClass";
+      reference
+        "Device.DeviceInfo.ProductClass";
+    }
+    leaf serial-number {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.SerialNumber";
+      reference
+        "Device.DeviceInfo.SerialNumber";
+    }
+    leaf hardware-version {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.HardwareVersion";
+      reference
+        "Device.DeviceInfo.HardwareVersion";
+    }
+    leaf software-version {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.SoftwareVersion";
+      reference
+        "Device.DeviceInfo.SoftwareVersion";
+    }
+    leaf active-firmware-image {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ActiveFirmwareImage";
+      reference
+        "Device.DeviceInfo.ActiveFirmwareImage";
+    }
+    leaf boot-firmware-image {
+      type string;
+      description
+        "Device.DeviceInfo.BootFirmwareImage";
+      reference
+        "Device.DeviceInfo.BootFirmwareImage";
+    }
+    leaf additional-hardware-version {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.AdditionalHardwareVersion";
+      reference
+        "Device.DeviceInfo.AdditionalHardwareVersion";
+    }
+    leaf additional-software-version {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.AdditionalSoftwareVersion";
+      reference
+        "Device.DeviceInfo.AdditionalSoftwareVersion";
+    }
+    leaf provisioning-code {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DeviceInfo.ProvisioningCode";
+      reference
+        "Device.DeviceInfo.ProvisioningCode";
+    }
+    leaf up-time {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.UpTime";
+      reference
+        "Device.DeviceInfo.UpTime";
+    }
+    leaf first-use-date {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.FirstUseDate";
+      reference
+        "Device.DeviceInfo.FirstUseDate";
+    }
+    leaf firmware-image-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.FirmwareImageNumberOfEntries";
+      reference
+        "Device.DeviceInfo.FirmwareImageNumberOfEntries";
+    }
+    leaf vendor-config-file-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.VendorConfigFileNumberOfEntries";
+      reference
+        "Device.DeviceInfo.VendorConfigFileNumberOfEntries";
+    }
+    leaf processor-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.ProcessorNumberOfEntries";
+      reference
+        "Device.DeviceInfo.ProcessorNumberOfEntries";
+    }
+    leaf vendor-log-file-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.VendorLogFileNumberOfEntries";
+      reference
+        "Device.DeviceInfo.VendorLogFileNumberOfEntries";
+    }
+    leaf location-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.LocationNumberOfEntries";
+      reference
+        "Device.DeviceInfo.LocationNumberOfEntries";
+    }
+    leaf device-image-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.DeviceImageNumberOfEntries";
+      reference
+        "Device.DeviceInfo.DeviceImageNumberOfEntries";
+    }
+  }
+
+  grouping device-info-device-image-file-g {
+    description
+      "Grouping object for Device.DeviceInfo.DeviceImageFile.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DeviceInfo.DeviceImageFile.{i}.Alias";
+      reference
+        "Device.DeviceInfo.DeviceImageFile.{i}.Alias";
+    }
+    leaf location {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.DeviceImageFile.{i}.Location";
+      reference
+        "Device.DeviceInfo.DeviceImageFile.{i}.Location";
+    }
+    leaf image {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.DeviceImageFile.{i}.Image";
+      reference
+        "Device.DeviceInfo.DeviceImageFile.{i}.Image";
+    }
+  }
+
+  grouping device-info-firmware-image-g {
+    description
+      "Grouping object for Device.DeviceInfo.FirmwareImage.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DeviceInfo.FirmwareImage.{i}.Alias";
+      reference
+        "Device.DeviceInfo.FirmwareImage.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.FirmwareImage.{i}.Name";
+      reference
+        "Device.DeviceInfo.FirmwareImage.{i}.Name";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.FirmwareImage.{i}.Version";
+      reference
+        "Device.DeviceInfo.FirmwareImage.{i}.Version";
+    }
+    leaf available {
+      type boolean;
+      description
+        "Device.DeviceInfo.FirmwareImage.{i}.Available";
+      reference
+        "Device.DeviceInfo.FirmwareImage.{i}.Available";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.FirmwareImage.{i}.Status";
+      reference
+        "Device.DeviceInfo.FirmwareImage.{i}.Status";
+    }
+    leaf boot-failure-log {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.FirmwareImage.{i}.BootFailureLog";
+      reference
+        "Device.DeviceInfo.FirmwareImage.{i}.BootFailureLog";
+    }
+  }
+
+  grouping device-info-location-g {
+    description
+      "Grouping object for Device.DeviceInfo.Location.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf source {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.Location.{i}.Source";
+      reference
+        "Device.DeviceInfo.Location.{i}.Source";
+    }
+    leaf acquired-time {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.Location.{i}.AcquiredTime";
+      reference
+        "Device.DeviceInfo.Location.{i}.AcquiredTime";
+    }
+    leaf external-source {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.Location.{i}.ExternalSource";
+      reference
+        "Device.DeviceInfo.Location.{i}.ExternalSource";
+    }
+    leaf external-protocol {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.Location.{i}.ExternalProtocol";
+      reference
+        "Device.DeviceInfo.Location.{i}.ExternalProtocol";
+    }
+    leaf data-object {
+      type string {
+        length "min..1200";
+      }
+      description
+        "Device.DeviceInfo.Location.{i}.DataObject";
+      reference
+        "Device.DeviceInfo.Location.{i}.DataObject";
+    }
+  }
+
+  grouping device-info-memory-status-g {
+    description
+      "Grouping object for Device.DeviceInfo.MemoryStatus.";
+    leaf total {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.MemoryStatus.Total";
+      reference
+        "Device.DeviceInfo.MemoryStatus.Total";
+    }
+    leaf free {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.MemoryStatus.Free";
+      reference
+        "Device.DeviceInfo.MemoryStatus.Free";
+    }
+  }
+
+  grouping device-info-network-properties-g {
+    description
+      "Grouping object for Device.DeviceInfo.NetworkProperties.";
+    leaf max-tcp-window-size {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.NetworkProperties.MaxTCPWindowSize";
+      reference
+        "Device.DeviceInfo.NetworkProperties.MaxTCPWindowSize";
+    }
+    leaf tcp-implementation {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.NetworkProperties.TCPImplementation";
+      reference
+        "Device.DeviceInfo.NetworkProperties.TCPImplementation";
+    }
+  }
+
+  grouping device-info-process-status-g {
+    description
+      "Grouping object for Device.DeviceInfo.ProcessStatus.";
+    leaf cpu-usage {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.ProcessStatus.CPUUsage";
+      reference
+        "Device.DeviceInfo.ProcessStatus.CPUUsage";
+    }
+    leaf process-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.ProcessStatus.ProcessNumberOfEntries";
+      reference
+        "Device.DeviceInfo.ProcessStatus.ProcessNumberOfEntries";
+    }
+  }
+
+  grouping process-status-process-g {
+    description
+      "Grouping object for Device.DeviceInfo.ProcessStatus.Process.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf pid {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.PID";
+      reference
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.PID";
+    }
+    leaf command {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.Command";
+      reference
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.Command";
+    }
+    leaf size {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.Size";
+      reference
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.Size";
+    }
+    leaf priority {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.Priority";
+      reference
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.Priority";
+    }
+    leaf cpu-time {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.CPUTime";
+      reference
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.CPUTime";
+    }
+    leaf state {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.State";
+      reference
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.State";
+    }
+  }
+
+  grouping device-info-processor-g {
+    description
+      "Grouping object for Device.DeviceInfo.Processor.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DeviceInfo.Processor.{i}.Alias";
+      reference
+        "Device.DeviceInfo.Processor.{i}.Alias";
+    }
+    leaf architecture {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.Processor.{i}.Architecture";
+      reference
+        "Device.DeviceInfo.Processor.{i}.Architecture";
+    }
+  }
+
+  grouping device-info-proxier-info-g {
+    description
+      "Grouping object for Device.DeviceInfo.ProxierInfo.";
+    leaf manufacturer-oui {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ProxierInfo.ManufacturerOUI";
+      reference
+        "Device.DeviceInfo.ProxierInfo.ManufacturerOUI";
+    }
+    leaf product-class {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ProxierInfo.ProductClass";
+      reference
+        "Device.DeviceInfo.ProxierInfo.ProductClass";
+    }
+    leaf serial-number {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ProxierInfo.SerialNumber";
+      reference
+        "Device.DeviceInfo.ProxierInfo.SerialNumber";
+    }
+    leaf proxy-protocol {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ProxierInfo.ProxyProtocol";
+      reference
+        "Device.DeviceInfo.ProxierInfo.ProxyProtocol";
+    }
+  }
+
+  grouping device-info-supported-data-model-g {
+    description
+      "Grouping object for Device.DeviceInfo.SupportedDataModel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DeviceInfo.SupportedDataModel.{i}.Alias";
+      reference
+        "Device.DeviceInfo.SupportedDataModel.{i}.Alias";
+    }
+    leaf url {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.SupportedDataModel.{i}.URL";
+      reference
+        "Device.DeviceInfo.SupportedDataModel.{i}.URL";
+    }
+    leaf uuid {
+      type string {
+        length "min..36";
+      }
+      config false;
+      description
+        "Device.DeviceInfo.SupportedDataModel.{i}.UUID";
+      reference
+        "Device.DeviceInfo.SupportedDataModel.{i}.UUID";
+    }
+    leaf urn {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.SupportedDataModel.{i}.URN";
+      reference
+        "Device.DeviceInfo.SupportedDataModel.{i}.URN";
+    }
+    leaf features {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.SupportedDataModel.{i}.Features";
+      reference
+        "Device.DeviceInfo.SupportedDataModel.{i}.Features";
+    }
+  }
+
+  grouping device-info-temperature-status-g {
+    description
+      "Grouping object for Device.DeviceInfo.TemperatureStatus.";
+    leaf temperature-sensor-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensorNumberOfEntries";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensorNumberOfEntries";
+    }
+  }
+
+  grouping temperature-status-temperature-sensor-g {
+    description
+      "Grouping object for Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.Alias";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.Enable";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.Status";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.Status";
+    }
+    leaf reset-time {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.ResetTime";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.ResetTime";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.Name";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.Name";
+    }
+    leaf value {
+      type int32;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.Value";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.Value";
+    }
+    leaf last-update {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.LastUpdate";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.LastUpdate";
+    }
+    leaf min-value {
+      type int32;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.MinValue";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.MinValue";
+    }
+    leaf min-time {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.MinTime";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.MinTime";
+    }
+    leaf max-value {
+      type int32;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.MaxValue";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.MaxValue";
+    }
+    leaf max-time {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.MaxTime";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.MaxTime";
+    }
+    leaf low-alarm-value {
+      type int32 {
+        range "-274..max";
+      }
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.LowAlarmValue";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.LowAlarmValue";
+    }
+    leaf low-alarm-time {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.LowAlarmTime";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.LowAlarmTime";
+    }
+    leaf high-alarm-value {
+      type int32 {
+        range "-274..max";
+      }
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.HighAlarmValue";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.HighAlarmValue";
+    }
+    leaf polling-interval {
+      type uint32;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.PollingInterval";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.PollingInterval";
+    }
+    leaf high-alarm-time {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.HighAlarmTime";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.HighAlarmTime";
+    }
+  }
+
+  grouping device-info-vendor-config-file-g {
+    description
+      "Grouping object for Device.DeviceInfo.VendorConfigFile.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DeviceInfo.VendorConfigFile.{i}.Alias";
+      reference
+        "Device.DeviceInfo.VendorConfigFile.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.VendorConfigFile.{i}.Name";
+      reference
+        "Device.DeviceInfo.VendorConfigFile.{i}.Name";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.VendorConfigFile.{i}.Version";
+      reference
+        "Device.DeviceInfo.VendorConfigFile.{i}.Version";
+    }
+    leaf date {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.VendorConfigFile.{i}.Date";
+      reference
+        "Device.DeviceInfo.VendorConfigFile.{i}.Date";
+    }
+    leaf description {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.VendorConfigFile.{i}.Description";
+      reference
+        "Device.DeviceInfo.VendorConfigFile.{i}.Description";
+    }
+    leaf use-for-backup-restore {
+      type boolean;
+      config false;
+      description
+        "Device.DeviceInfo.VendorConfigFile.{i}.UseForBackupRestore";
+      reference
+        "Device.DeviceInfo.VendorConfigFile.{i}.UseForBackupRestore";
+    }
+  }
+
+  grouping device-info-vendor-log-file-g {
+    description
+      "Grouping object for Device.DeviceInfo.VendorLogFile.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DeviceInfo.VendorLogFile.{i}.Alias";
+      reference
+        "Device.DeviceInfo.VendorLogFile.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.VendorLogFile.{i}.Name";
+      reference
+        "Device.DeviceInfo.VendorLogFile.{i}.Name";
+    }
+    leaf maximum-size {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.VendorLogFile.{i}.MaximumSize";
+      reference
+        "Device.DeviceInfo.VendorLogFile.{i}.MaximumSize";
+    }
+    leaf persistent {
+      type boolean;
+      config false;
+      description
+        "Device.DeviceInfo.VendorLogFile.{i}.Persistent";
+      reference
+        "Device.DeviceInfo.VendorLogFile.{i}.Persistent";
+    }
+  }
+
+  grouping device-dynamic-dns-g {
+    description
+      "Grouping object for Device.DynamicDNS.";
+    leaf client-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DynamicDNS.ClientNumberOfEntries";
+      reference
+        "Device.DynamicDNS.ClientNumberOfEntries";
+    }
+    leaf server-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DynamicDNS.ServerNumberOfEntries";
+      reference
+        "Device.DynamicDNS.ServerNumberOfEntries";
+    }
+    leaf supported-services {
+      type string;
+      config false;
+      description
+        "Device.DynamicDNS.SupportedServices";
+      reference
+        "Device.DynamicDNS.SupportedServices";
+    }
+  }
+
+  grouping dynamic-dns-client-g {
+    description
+      "Grouping object for Device.DynamicDNS.Client.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DynamicDNS.Client.{i}.Enable";
+      reference
+        "Device.DynamicDNS.Client.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DynamicDNS.Client.{i}.Status";
+      reference
+        "Device.DynamicDNS.Client.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DynamicDNS.Client.{i}.Alias";
+      reference
+        "Device.DynamicDNS.Client.{i}.Alias";
+    }
+    leaf last-error {
+      type string;
+      config false;
+      description
+        "Device.DynamicDNS.Client.{i}.LastError";
+      reference
+        "Device.DynamicDNS.Client.{i}.LastError";
+    }
+    leaf server {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DynamicDNS.Client.{i}.Server";
+      reference
+        "Device.DynamicDNS.Client.{i}.Server";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DynamicDNS.Client.{i}.Interface";
+      reference
+        "Device.DynamicDNS.Client.{i}.Interface";
+    }
+    leaf username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DynamicDNS.Client.{i}.Username";
+      reference
+        "Device.DynamicDNS.Client.{i}.Username";
+    }
+    leaf hostname-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DynamicDNS.Client.{i}.HostnameNumberOfEntries";
+      reference
+        "Device.DynamicDNS.Client.{i}.HostnameNumberOfEntries";
+    }
+  }
+
+  grouping client-hostname-g {
+    description
+      "Grouping object for Device.DynamicDNS.Client.{i}.Hostname.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DynamicDNS.Client.{i}.Hostname.{i}.Enable";
+      reference
+        "Device.DynamicDNS.Client.{i}.Hostname.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DynamicDNS.Client.{i}.Hostname.{i}.Status";
+      reference
+        "Device.DynamicDNS.Client.{i}.Hostname.{i}.Status";
+    }
+    leaf name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DynamicDNS.Client.{i}.Hostname.{i}.Name";
+      reference
+        "Device.DynamicDNS.Client.{i}.Hostname.{i}.Name";
+    }
+    leaf last-update {
+      type string;
+      config false;
+      description
+        "Device.DynamicDNS.Client.{i}.Hostname.{i}.LastUpdate";
+      reference
+        "Device.DynamicDNS.Client.{i}.Hostname.{i}.LastUpdate";
+    }
+  }
+
+  grouping dynamic-dns-server-g {
+    description
+      "Grouping object for Device.DynamicDNS.Server.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DynamicDNS.Server.{i}.Enable";
+      reference
+        "Device.DynamicDNS.Server.{i}.Enable";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DynamicDNS.Server.{i}.Name";
+      reference
+        "Device.DynamicDNS.Server.{i}.Name";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DynamicDNS.Server.{i}.Alias";
+      reference
+        "Device.DynamicDNS.Server.{i}.Alias";
+    }
+    leaf service-name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DynamicDNS.Server.{i}.ServiceName";
+      reference
+        "Device.DynamicDNS.Server.{i}.ServiceName";
+    }
+    leaf server-address {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DynamicDNS.Server.{i}.ServerAddress";
+      reference
+        "Device.DynamicDNS.Server.{i}.ServerAddress";
+    }
+    leaf server-port {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.DynamicDNS.Server.{i}.ServerPort";
+      reference
+        "Device.DynamicDNS.Server.{i}.ServerPort";
+    }
+    leaf supported-protocols {
+      type string;
+      config false;
+      description
+        "Device.DynamicDNS.Server.{i}.SupportedProtocols";
+      reference
+        "Device.DynamicDNS.Server.{i}.SupportedProtocols";
+    }
+    leaf protocol {
+      type string;
+      description
+        "Device.DynamicDNS.Server.{i}.Protocol";
+      reference
+        "Device.DynamicDNS.Server.{i}.Protocol";
+    }
+    leaf check-interval {
+      type uint32;
+      description
+        "Device.DynamicDNS.Server.{i}.CheckInterval";
+      reference
+        "Device.DynamicDNS.Server.{i}.CheckInterval";
+    }
+    leaf retry-interval {
+      type uint32;
+      description
+        "Device.DynamicDNS.Server.{i}.RetryInterval";
+      reference
+        "Device.DynamicDNS.Server.{i}.RetryInterval";
+    }
+    leaf max-retries {
+      type uint32;
+      description
+        "Device.DynamicDNS.Server.{i}.MaxRetries";
+      reference
+        "Device.DynamicDNS.Server.{i}.MaxRetries";
+    }
+  }
+
+  grouping device-etsi-m2-m-g {
+    description
+      "Grouping object for Device.ETSIM2M.";
+    leaf scl-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCLNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCLNumberOfEntries";
+    }
+  }
+
+  grouping etsi-m2-m-scl-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ETSIM2M.SCL.{i}.Enable";
+      reference
+        "Device.ETSIM2M.SCL.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ETSIM2M.SCL.{i}.Alias";
+      reference
+        "Device.ETSIM2M.SCL.{i}.Alias";
+    }
+    leaf announced-to-scl-list {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.AnnouncedToSCLList";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AnnouncedToSCLList";
+    }
+    leaf saf-policy-set-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySetNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySetNumberOfEntries";
+    }
+    leaf area-nwk-instance-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstanceNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstanceNumberOfEntries";
+    }
+    leaf area-nwk-device-info-instance-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstanceNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstanceNumberOfEntries";
+    }
+  }
+
+  grouping scl-area-nwk-device-info-instance-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf area-nwk-instance {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.AreaNwkInstance";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.AreaNwkInstance";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Host";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Host";
+    }
+    leaf list-of-device-neighbors {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.ListOfDeviceNeighbors";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.ListOfDeviceNeighbors";
+    }
+    leaf list-of-device-applications {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.ListOfDeviceApplications";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.ListOfDeviceApplications";
+    }
+    leaf sleep-interval {
+      type uint32;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.SleepInterval";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.SleepInterval";
+    }
+    leaf sleep-duration {
+      type uint32;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.SleepDuration";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.SleepDuration";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Status";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Status";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Active";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Active";
+    }
+    leaf property-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.PropertyNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.PropertyNumberOfEntries";
+    }
+  }
+
+  grouping area-nwk-device-info-instance-property-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Property.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Property.{i}.Name";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Property.{i}.Name";
+    }
+    leaf value {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Property.{i}.Value";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Property.{i}.Value";
+    }
+  }
+
+  grouping scl-area-nwk-instance-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf id {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.ID";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.ID";
+    }
+    leaf area-nwk-type {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.AreaNwkType";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.AreaNwkType";
+    }
+    leaf list-of-devices {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.ListOfDevices";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.ListOfDevices";
+    }
+    leaf property-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.PropertyNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.PropertyNumberOfEntries";
+    }
+  }
+
+  grouping area-nwk-instance-property-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.Property.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.Property.{i}.Name";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.Property.{i}.Name";
+    }
+    leaf value {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.Property.{i}.Value";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.Property.{i}.Value";
+    }
+  }
+
+  grouping scl-discovery-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.Discovery.";
+    leaf max-number-of-discov-records {
+      type uint32;
+      description
+        "Device.ETSIM2M.SCL.{i}.Discovery.MaxNumberOfDiscovRecords";
+      reference
+        "Device.ETSIM2M.SCL.{i}.Discovery.MaxNumberOfDiscovRecords";
+    }
+    leaf max-size-of-discov-answer {
+      type uint32;
+      description
+        "Device.ETSIM2M.SCL.{i}.Discovery.MaxSizeOfDiscovAnswer";
+      reference
+        "Device.ETSIM2M.SCL.{i}.Discovery.MaxSizeOfDiscovAnswer";
+    }
+  }
+
+  grouping scl-reregistration-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.Reregistration.";
+    leaf reg-target-nscl-list {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.Reregistration.RegTargetNSCLList";
+      reference
+        "Device.ETSIM2M.SCL.{i}.Reregistration.RegTargetNSCLList";
+    }
+    leaf reg-search-strings {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.Reregistration.RegSearchStrings";
+      reference
+        "Device.ETSIM2M.SCL.{i}.Reregistration.RegSearchStrings";
+    }
+    leaf reg-access-right-id {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.Reregistration.RegAccessRightID";
+      reference
+        "Device.ETSIM2M.SCL.{i}.Reregistration.RegAccessRightID";
+    }
+    leaf reg-expiration-duration {
+      type int32;
+      description
+        "Device.ETSIM2M.SCL.{i}.Reregistration.RegExpirationDuration";
+      reference
+        "Device.ETSIM2M.SCL.{i}.Reregistration.RegExpirationDuration";
+    }
+  }
+
+  grouping reregistration-action-status-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.Reregistration.ActionStatus.";
+    leaf progress {
+      type uint32 {
+        range "0..100";
+      }
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.Reregistration.ActionStatus.Progress";
+      reference
+        "Device.ETSIM2M.SCL.{i}.Reregistration.ActionStatus.Progress";
+    }
+    leaf final-status {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.Reregistration.ActionStatus.FinalStatus";
+      reference
+        "Device.ETSIM2M.SCL.{i}.Reregistration.ActionStatus.FinalStatus";
+    }
+  }
+
+  grouping scl-saf-policy-set-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.Enable";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.Alias";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.Alias";
+    }
+    leaf policy-scope {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.PolicyScope";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.PolicyScope";
+    }
+    leaf anp-policy-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicyNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicyNumberOfEntries";
+    }
+  }
+
+  grouping saf-policy-set-anp-policy-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.Enable";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.Alias";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.Alias";
+    }
+    leaf an-name {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.ANName";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.ANName";
+    }
+    leaf block-period-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriodNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriodNumberOfEntries";
+    }
+    leaf request-category-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategoryNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategoryNumberOfEntries";
+    }
+  }
+
+  grouping anp-policy-block-period-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.Enable";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.Alias";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.Alias";
+    }
+    leaf failed-attempts {
+      type uint32;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.FailedAttempts";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.FailedAttempts";
+    }
+    leaf block-duration {
+      type int32;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.BlockDuration";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.BlockDuration";
+    }
+  }
+
+  grouping anp-policy-request-category-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Enable";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Alias";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Alias";
+    }
+    leaf rcat {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.RCAT";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.RCAT";
+    }
+    leaf schedule-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.ScheduleNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.ScheduleNumberOfEntries";
+    }
+  }
+
+  grouping request-category-schedule-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.Enable";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.Alias";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.Alias";
+    }
+    leaf schedules {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.Schedules";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.Schedules";
+    }
+    leaf abs-time-span-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpanNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpanNumberOfEntries";
+    }
+  }
+
+  grouping schedule-abs-time-span-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.Enable";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.Alias";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.Alias";
+    }
+    leaf start-time {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.StartTime";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.StartTime";
+    }
+    leaf end-time {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.EndTime";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.EndTime";
+    }
+  }
+
+  grouping saf-policy-set-m2-msp-policy-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.";
+    leaf default-rcat-value {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.DefaultRCATValue";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.DefaultRCATValue";
+    }
+    leaf request-category-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategoryNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategoryNumberOfEntries";
+    }
+  }
+
+  grouping m2-msp-policy-request-category-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.Enable";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.Alias";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.Alias";
+    }
+    leaf rcat {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.RCAT";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.RCAT";
+    }
+    leaf tolerable-delay {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.TolerableDelay";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.TolerableDelay";
+    }
+    leaf thresh {
+      type uint32;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.Thresh";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.Thresh";
+    }
+    leaf mem {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.Mem";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.Mem";
+    }
+    leaf ranked-an-list {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.RankedANList";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.RankedANList";
+    }
+  }
+
+  grouping device-ethernet-g {
+    description
+      "Grouping object for Device.Ethernet.";
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.InterfaceNumberOfEntries";
+      reference
+        "Device.Ethernet.InterfaceNumberOfEntries";
+    }
+    leaf link-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.LinkNumberOfEntries";
+      reference
+        "Device.Ethernet.LinkNumberOfEntries";
+    }
+    leaf vlan-termination-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.VLANTerminationNumberOfEntries";
+      reference
+        "Device.Ethernet.VLANTerminationNumberOfEntries";
+    }
+    leaf rmon-stats-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.RMONStatsNumberOfEntries";
+      reference
+        "Device.Ethernet.RMONStatsNumberOfEntries";
+    }
+    leaf lag-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.LAGNumberOfEntries";
+      reference
+        "Device.Ethernet.LAGNumberOfEntries";
+    }
+  }
+
+  grouping ethernet-interface-g {
+    description
+      "Grouping object for Device.Ethernet.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Ethernet.Interface.{i}.Enable";
+      reference
+        "Device.Ethernet.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Status";
+      reference
+        "Device.Ethernet.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Ethernet.Interface.{i}.Alias";
+      reference
+        "Device.Ethernet.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Name";
+      reference
+        "Device.Ethernet.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.LastChange";
+      reference
+        "Device.Ethernet.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.Ethernet.Interface.{i}.LowerLayers";
+      reference
+        "Device.Ethernet.Interface.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Upstream";
+      reference
+        "Device.Ethernet.Interface.{i}.Upstream";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.MACAddress";
+      reference
+        "Device.Ethernet.Interface.{i}.MACAddress";
+    }
+    leaf max-bit-rate {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.Ethernet.Interface.{i}.MaxBitRate";
+      reference
+        "Device.Ethernet.Interface.{i}.MaxBitRate";
+    }
+    leaf current-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.CurrentBitRate";
+      reference
+        "Device.Ethernet.Interface.{i}.CurrentBitRate";
+    }
+    leaf duplex-mode {
+      type enumeration {
+        enum Half {
+          description
+            "Enum Value - Half";
+        }
+        enum Full {
+          description
+            "Enum Value - Full";
+        }
+        enum Auto {
+          description
+            "Enum Value - Auto";
+        }
+      }
+      description
+        "Device.Ethernet.Interface.{i}.DuplexMode";
+      reference
+        "Device.Ethernet.Interface.{i}.DuplexMode";
+    }
+    leaf eee-capability {
+      type boolean;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.EEECapability";
+      reference
+        "Device.Ethernet.Interface.{i}.EEECapability";
+    }
+    leaf eee-enable {
+      type boolean;
+      description
+        "Device.Ethernet.Interface.{i}.EEEEnable";
+      reference
+        "Device.Ethernet.Interface.{i}.EEEEnable";
+    }
+  }
+
+  grouping ethernet-interface-stats-g {
+    description
+      "Grouping object for Device.Ethernet.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping ethernet-lag-g {
+    description
+      "Grouping object for Device.Ethernet.LAG.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Ethernet.LAG.{i}.Enable";
+      reference
+        "Device.Ethernet.LAG.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Status";
+      reference
+        "Device.Ethernet.LAG.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Ethernet.LAG.{i}.Alias";
+      reference
+        "Device.Ethernet.LAG.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Name";
+      reference
+        "Device.Ethernet.LAG.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.LastChange";
+      reference
+        "Device.Ethernet.LAG.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.Ethernet.LAG.{i}.LowerLayers";
+      reference
+        "Device.Ethernet.LAG.{i}.LowerLayers";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.Ethernet.LAG.{i}.MACAddress";
+      reference
+        "Device.Ethernet.LAG.{i}.MACAddress";
+    }
+  }
+
+  grouping lag-stats-g {
+    description
+      "Grouping object for Device.Ethernet.LAG.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.BytesSent";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.BytesReceived";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.PacketsSent";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.PacketsReceived";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.ErrorsSent";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping ethernet-link-g {
+    description
+      "Grouping object for Device.Ethernet.Link.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Ethernet.Link.{i}.Enable";
+      reference
+        "Device.Ethernet.Link.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Status";
+      reference
+        "Device.Ethernet.Link.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Ethernet.Link.{i}.Alias";
+      reference
+        "Device.Ethernet.Link.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Name";
+      reference
+        "Device.Ethernet.Link.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.LastChange";
+      reference
+        "Device.Ethernet.Link.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.Ethernet.Link.{i}.LowerLayers";
+      reference
+        "Device.Ethernet.Link.{i}.LowerLayers";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.MACAddress";
+      reference
+        "Device.Ethernet.Link.{i}.MACAddress";
+    }
+    leaf priority-tagging {
+      type boolean;
+      description
+        "Device.Ethernet.Link.{i}.PriorityTagging";
+      reference
+        "Device.Ethernet.Link.{i}.PriorityTagging";
+    }
+  }
+
+  grouping ethernet-link-stats-g {
+    description
+      "Grouping object for Device.Ethernet.Link.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.BytesSent";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.BytesReceived";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.PacketsSent";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.PacketsReceived";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.ErrorsSent";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping ethernet-rmon-stats-g {
+    description
+      "Grouping object for Device.Ethernet.RMONStats.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Ethernet.RMONStats.{i}.Enable";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.Status";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Ethernet.RMONStats.{i}.Alias";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.Name";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Name";
+    }
+    leaf interface {
+      type string;
+      description
+        "Device.Ethernet.RMONStats.{i}.Interface";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Interface";
+    }
+    leaf vlanid {
+      type uint32 {
+        range "0..4094";
+      }
+      description
+        "Device.Ethernet.RMONStats.{i}.VLANID";
+      reference
+        "Device.Ethernet.RMONStats.{i}.VLANID";
+    }
+    leaf queue {
+      type string;
+      description
+        "Device.Ethernet.RMONStats.{i}.Queue";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Queue";
+    }
+    leaf all-queues {
+      type boolean;
+      description
+        "Device.Ethernet.RMONStats.{i}.AllQueues";
+      reference
+        "Device.Ethernet.RMONStats.{i}.AllQueues";
+    }
+    leaf drop-events {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.DropEvents";
+      reference
+        "Device.Ethernet.RMONStats.{i}.DropEvents";
+    }
+    leaf bytes {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.Bytes";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Bytes";
+    }
+    leaf packets {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.Packets";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Packets";
+    }
+    leaf broadcast-packets {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.BroadcastPackets";
+      reference
+        "Device.Ethernet.RMONStats.{i}.BroadcastPackets";
+    }
+    leaf multicast-packets {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.MulticastPackets";
+      reference
+        "Device.Ethernet.RMONStats.{i}.MulticastPackets";
+    }
+    leaf crc-errored-packets {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.CRCErroredPackets";
+      reference
+        "Device.Ethernet.RMONStats.{i}.CRCErroredPackets";
+    }
+    leaf undersize-packets {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.UndersizePackets";
+      reference
+        "Device.Ethernet.RMONStats.{i}.UndersizePackets";
+    }
+    leaf oversize-packets {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.OversizePackets";
+      reference
+        "Device.Ethernet.RMONStats.{i}.OversizePackets";
+    }
+    leaf packets64-bytes {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.Packets64Bytes";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Packets64Bytes";
+    }
+    leaf packets65to127-bytes {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.Packets65to127Bytes";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Packets65to127Bytes";
+    }
+    leaf packets128to255-bytes {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.Packets128to255Bytes";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Packets128to255Bytes";
+    }
+    leaf packets256to511-bytes {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.Packets256to511Bytes";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Packets256to511Bytes";
+    }
+    leaf packets512to1023-bytes {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.Packets512to1023Bytes";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Packets512to1023Bytes";
+    }
+    leaf packets1024to1518-bytes {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.Packets1024to1518Bytes";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Packets1024to1518Bytes";
+    }
+  }
+
+  grouping ethernet-vlan-termination-g {
+    description
+      "Grouping object for Device.Ethernet.VLANTermination.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Enable";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Status";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Ethernet.VLANTermination.{i}.Alias";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Name";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.LastChange";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.Ethernet.VLANTermination.{i}.LowerLayers";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.LowerLayers";
+    }
+    leaf vlanid {
+      type uint32 {
+        range "1..4094";
+      }
+      description
+        "Device.Ethernet.VLANTermination.{i}.VLANID";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.VLANID";
+    }
+    leaf tpid {
+      type uint32;
+      description
+        "Device.Ethernet.VLANTermination.{i}.TPID";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.TPID";
+    }
+  }
+
+  grouping vlan-termination-stats-g {
+    description
+      "Grouping object for Device.Ethernet.VLANTermination.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.BytesSent";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.BytesReceived";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.PacketsSent";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.PacketsReceived";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.ErrorsSent";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping fap-application-platform-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.";
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Version";
+      reference
+        "Device.FAP.ApplicationPlatform.Version";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Enable";
+      reference
+        "Device.FAP.ApplicationPlatform.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Status";
+      reference
+        "Device.FAP.ApplicationPlatform.Status";
+    }
+    leaf max-number-of-applications {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.MaxNumberOfApplications";
+      reference
+        "Device.FAP.ApplicationPlatform.MaxNumberOfApplications";
+    }
+    leaf current-numberof-applications {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.CurrentNumberofApplications";
+      reference
+        "Device.FAP.ApplicationPlatform.CurrentNumberofApplications";
+    }
+  }
+
+  grouping application-platform-capabilities-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Capabilities.";
+    leaf presence-application-support {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.PresenceApplicationSupport";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.PresenceApplicationSupport";
+    }
+    leaf femto-awareness-api-support {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.FemtoAwarenessAPISupport";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.FemtoAwarenessAPISupport";
+    }
+    leaf smsapi-support {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.SMSAPISupport";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.SMSAPISupport";
+    }
+    leaf subscribe-to-notifications-of-sms-sent-to-application-support {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.SubscribeToNotificationsOfSMSSentToApplicationSupport";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.SubscribeToNotificationsOfSMSSentToApplicationSupport";
+    }
+    leaf query-sms-delivery-status-support {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.QuerySMSDeliveryStatusSupport";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.QuerySMSDeliveryStatusSupport";
+    }
+    leaf mmsapi-support {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.MMSAPISupport";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.MMSAPISupport";
+    }
+    leaf query-mms-delivery-status-support {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.QueryMMSDeliveryStatusSupport";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.QueryMMSDeliveryStatusSupport";
+    }
+    leaf subscribe-to-notifications-of-mms-sent-to-application-support {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.SubscribeToNotificationsOfMMSSentToApplicationSupport";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.SubscribeToNotificationsOfMMSSentToApplicationSupport";
+    }
+    leaf terminal-location-api-support {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.TerminalLocationAPISupport";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.TerminalLocationAPISupport";
+    }
+    leaf authentication-methods-supported {
+      type string;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.AuthenticationMethodsSupported";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.AuthenticationMethodsSupported";
+    }
+    leaf access-levels-supported {
+      type string;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.AccessLevelsSupported";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.AccessLevelsSupported";
+    }
+    leaf send-sms-target-address-type {
+      type string;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.SendSMSTargetAddressType";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.SendSMSTargetAddressType";
+    }
+    leaf send-mms-target-address-type {
+      type string;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.SendMMSTargetAddressType";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.SendMMSTargetAddressType";
+    }
+  }
+
+  grouping application-platform-control-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Control.";
+    leaf authentication-method {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.AuthenticationMethod";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.AuthenticationMethod";
+    }
+    leaf tunnel-inst {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.TunnelInst";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.TunnelInst";
+    }
+  }
+
+  grouping control-femto-awareness-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Control.FemtoAwareness.";
+    leaf api-enable {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.APIEnable";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.APIEnable";
+    }
+    leaf queue-enable {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.QueueEnable";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.QueueEnable";
+    }
+    leaf queueing {
+      type enumeration {
+        enum FiFo {
+          description
+            "Enum Value - FiFo";
+        }
+        enum Priority {
+          description
+            "Enum Value - Priority";
+        }
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.Queueing";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.Queueing";
+    }
+    leaf max-api-users-number {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.MaxAPIUsersNumber";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.MaxAPIUsersNumber";
+    }
+    leaf femtozone-id {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.FemtozoneID";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.FemtozoneID";
+    }
+    leaf notifications-user-identifier-msisdn {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.NotificationsUserIdentifierMSISDN";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.NotificationsUserIdentifierMSISDN";
+    }
+    leaf subscribe-to-notifications-response-callback-data {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.SubscribeToNotificationsResponseCallbackData";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.SubscribeToNotificationsResponseCallbackData";
+    }
+    leaf query-femtocell-response-timezone {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.QueryFemtocellResponseTimezone";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.QueryFemtocellResponseTimezone";
+    }
+  }
+
+  grouping control-mms-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Control.MMS.";
+    leaf api-enable {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.MMS.APIEnable";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.MMS.APIEnable";
+    }
+    leaf queue-enable {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.MMS.QueueEnable";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.MMS.QueueEnable";
+    }
+    leaf queueing {
+      type enumeration {
+        enum FiFo {
+          description
+            "Enum Value - FiFo";
+        }
+        enum Priority {
+          description
+            "Enum Value - Priority";
+        }
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.MMS.Queueing";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.MMS.Queueing";
+    }
+    leaf max-api-users-number {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.MMS.MaxAPIUsersNumber";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.MMS.MaxAPIUsersNumber";
+    }
+    leaf min-send-mms-time-interval {
+      type uint32 {
+        range "0..3599";
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.MMS.MinSendMMSTimeInterval";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.MMS.MinSendMMSTimeInterval";
+    }
+    leaf enable-query-mms-delivery-status {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.MMS.EnableQueryMMSDeliveryStatus";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.MMS.EnableQueryMMSDeliveryStatus";
+    }
+    leaf enable-subscribe-to-notifications-of-message-sent-to-application {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.MMS.EnableSubscribeToNotificationsOfMessageSentToApplication";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.MMS.EnableSubscribeToNotificationsOfMessageSentToApplication";
+    }
+  }
+
+  grouping control-sms-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Control.SMS.";
+    leaf api-enable {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.SMS.APIEnable";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.SMS.APIEnable";
+    }
+    leaf queue-enable {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.SMS.QueueEnable";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.SMS.QueueEnable";
+    }
+    leaf queueing {
+      type enumeration {
+        enum FiFo {
+          description
+            "Enum Value - FiFo";
+        }
+        enum Priority {
+          description
+            "Enum Value - Priority";
+        }
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.SMS.Queueing";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.SMS.Queueing";
+    }
+    leaf max-api-users-number {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.SMS.MaxAPIUsersNumber";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.SMS.MaxAPIUsersNumber";
+    }
+    leaf min-send-sms-time-interval {
+      type uint32 {
+        range "0..3599";
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.SMS.MinSendSMSTimeInterval";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.SMS.MinSendSMSTimeInterval";
+    }
+    leaf enable-query-sms-delivery-status {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.SMS.EnableQuerySMSDeliveryStatus";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.SMS.EnableQuerySMSDeliveryStatus";
+    }
+    leaf enable-subscribe-to-notifications-of-message-sent-to-application {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.SMS.EnableSubscribeToNotificationsOfMessageSentToApplication";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.SMS.EnableSubscribeToNotificationsOfMessageSentToApplication";
+    }
+  }
+
+  grouping control-terminal-location-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Control.TerminalLocation.";
+    leaf api-enable {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.APIEnable";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.APIEnable";
+    }
+    leaf queue-enable {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.QueueEnable";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.QueueEnable";
+    }
+    leaf queueing {
+      type enumeration {
+        enum FiFo {
+          description
+            "Enum Value - FiFo";
+        }
+        enum Priority {
+          description
+            "Enum Value - Priority";
+        }
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.Queueing";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.Queueing";
+    }
+    leaf max-api-users-number {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.MaxAPIUsersNumber";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.MaxAPIUsersNumber";
+    }
+    leaf query-mobile-location-response-address {
+      type enumeration {
+        enum TelUri {
+          description
+            "Enum Value - TelUri";
+        }
+        enum AnonymousReference {
+          description
+            "Enum Value - AnonymousReference";
+        }
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.QueryMobileLocationResponseAddress";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.QueryMobileLocationResponseAddress";
+    }
+    leaf query-mobile-location-response-longitude-latitude {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.QueryMobileLocationResponseLongitudeLatitude";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.QueryMobileLocationResponseLongitudeLatitude";
+    }
+    leaf query-mobile-location-response-altitude {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.QueryMobileLocationResponseAltitude";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.QueryMobileLocationResponseAltitude";
+    }
+    leaf query-mobile-location-response-timestamp {
+      type uint32 {
+        range "0..86399";
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.QueryMobileLocationResponseTimestamp";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.QueryMobileLocationResponseTimestamp";
+    }
+  }
+
+  grouping application-platform-monitoring-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Monitoring.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.Enable";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.Enable";
+    }
+    leaf monitoring-interval {
+      type uint32;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.MonitoringInterval";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.MonitoringInterval";
+    }
+    leaf authentication-requests-received {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.AuthenticationRequestsReceived";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.AuthenticationRequestsReceived";
+    }
+    leaf authentication-requests-rejected {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.AuthenticationRequestsRejected";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.AuthenticationRequestsRejected";
+    }
+  }
+
+  grouping monitoring-femto-awareness-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.";
+    leaf api-available {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.APIAvailable";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.APIAvailable";
+    }
+    leaf api-users {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.APIUsers";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.APIUsers";
+    }
+    leaf queue-state {
+      type string;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.QueueState";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.QueueState";
+    }
+    leaf queue-num {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.QueueNum";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.QueueNum";
+    }
+    leaf queue-received {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.QueueReceived";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.QueueReceived";
+    }
+    leaf queue-discarded {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.QueueDiscarded";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.QueueDiscarded";
+    }
+  }
+
+  grouping monitoring-mms-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Monitoring.MMS.";
+    leaf api-available {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.APIAvailable";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.APIAvailable";
+    }
+    leaf api-users {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.APIUsers";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.APIUsers";
+    }
+    leaf queue-state {
+      type string;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.QueueState";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.QueueState";
+    }
+    leaf queue-num {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.QueueNum";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.QueueNum";
+    }
+    leaf queue-received {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.QueueReceived";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.QueueReceived";
+    }
+    leaf queue-discarded {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.QueueDiscarded";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.QueueDiscarded";
+    }
+  }
+
+  grouping monitoring-sms-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Monitoring.SMS.";
+    leaf api-available {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.APIAvailable";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.APIAvailable";
+    }
+    leaf api-users {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.APIUsers";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.APIUsers";
+    }
+    leaf queue-state {
+      type string;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.QueueState";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.QueueState";
+    }
+    leaf queue-num {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.QueueNum";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.QueueNum";
+    }
+    leaf queue-received {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.QueueReceived";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.QueueReceived";
+    }
+    leaf queue-discarded {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.QueueDiscarded";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.QueueDiscarded";
+    }
+  }
+
+  grouping monitoring-terminal-location-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.";
+    leaf api-available {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.APIAvailable";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.APIAvailable";
+    }
+    leaf api-users {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.APIUsers";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.APIUsers";
+    }
+    leaf queue-state {
+      type string;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.QueueState";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.QueueState";
+    }
+    leaf queue-num {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.QueueNum";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.QueueNum";
+    }
+    leaf queue-received {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.QueueReceived";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.QueueReceived";
+    }
+    leaf queue-discarded {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.QueueDiscarded";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.QueueDiscarded";
+    }
+  }
+
+  grouping fap-gps-g {
+    description
+      "Grouping object for Device.FAP.GPS.";
+    leaf scan-on-boot {
+      type boolean;
+      description
+        "Device.FAP.GPS.ScanOnBoot";
+      reference
+        "Device.FAP.GPS.ScanOnBoot";
+    }
+    leaf scan-periodically {
+      type boolean;
+      description
+        "Device.FAP.GPS.ScanPeriodically";
+      reference
+        "Device.FAP.GPS.ScanPeriodically";
+    }
+    leaf periodic-interval {
+      type uint32;
+      description
+        "Device.FAP.GPS.PeriodicInterval";
+      reference
+        "Device.FAP.GPS.PeriodicInterval";
+    }
+    leaf periodic-time {
+      type string;
+      description
+        "Device.FAP.GPS.PeriodicTime";
+      reference
+        "Device.FAP.GPS.PeriodicTime";
+    }
+    leaf continuous-gps {
+      type boolean;
+      description
+        "Device.FAP.GPS.ContinuousGPS";
+      reference
+        "Device.FAP.GPS.ContinuousGPS";
+    }
+    leaf scan-timeout {
+      type uint32;
+      description
+        "Device.FAP.GPS.ScanTimeout";
+      reference
+        "Device.FAP.GPS.ScanTimeout";
+    }
+    leaf scan-status {
+      type string;
+      config false;
+      description
+        "Device.FAP.GPS.ScanStatus";
+      reference
+        "Device.FAP.GPS.ScanStatus";
+    }
+    leaf error-details {
+      type string;
+      config false;
+      description
+        "Device.FAP.GPS.ErrorDetails";
+      reference
+        "Device.FAP.GPS.ErrorDetails";
+    }
+    leaf last-scan-time {
+      type string;
+      config false;
+      description
+        "Device.FAP.GPS.LastScanTime";
+      reference
+        "Device.FAP.GPS.LastScanTime";
+    }
+    leaf last-successful-scan-time {
+      type string;
+      config false;
+      description
+        "Device.FAP.GPS.LastSuccessfulScanTime";
+      reference
+        "Device.FAP.GPS.LastSuccessfulScanTime";
+    }
+    leaf locked-latitude {
+      type int32 {
+        range "-90000000..90000000";
+      }
+      config false;
+      description
+        "Device.FAP.GPS.LockedLatitude";
+      reference
+        "Device.FAP.GPS.LockedLatitude";
+    }
+    leaf locked-longitude {
+      type int32 {
+        range "-180000000..180000000";
+      }
+      config false;
+      description
+        "Device.FAP.GPS.LockedLongitude";
+      reference
+        "Device.FAP.GPS.LockedLongitude";
+    }
+    leaf number-of-satellites {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.GPS.NumberOfSatellites";
+      reference
+        "Device.FAP.GPS.NumberOfSatellites";
+    }
+  }
+
+  grouping gps-agps-server-config-g {
+    description
+      "Grouping object for Device.FAP.GPS.AGPSServerConfig.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.FAP.GPS.AGPSServerConfig.Enable";
+      reference
+        "Device.FAP.GPS.AGPSServerConfig.Enable";
+    }
+    leaf server-url {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.FAP.GPS.AGPSServerConfig.ServerURL";
+      reference
+        "Device.FAP.GPS.AGPSServerConfig.ServerURL";
+    }
+    leaf server-port {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.FAP.GPS.AGPSServerConfig.ServerPort";
+      reference
+        "Device.FAP.GPS.AGPSServerConfig.ServerPort";
+    }
+    leaf username {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.FAP.GPS.AGPSServerConfig.Username";
+      reference
+        "Device.FAP.GPS.AGPSServerConfig.Username";
+    }
+    leaf reference-latitude {
+      type int32 {
+        range "-90000000..90000000";
+      }
+      description
+        "Device.FAP.GPS.AGPSServerConfig.ReferenceLatitude";
+      reference
+        "Device.FAP.GPS.AGPSServerConfig.ReferenceLatitude";
+    }
+    leaf reference-longitude {
+      type int32 {
+        range "-180000000..180000000";
+      }
+      description
+        "Device.FAP.GPS.AGPSServerConfig.ReferenceLongitude";
+      reference
+        "Device.FAP.GPS.AGPSServerConfig.ReferenceLongitude";
+    }
+    leaf server-in-use {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.GPS.AGPSServerConfig.ServerInUse";
+      reference
+        "Device.FAP.GPS.AGPSServerConfig.ServerInUse";
+    }
+  }
+
+  grouping gps-continuous-gps-status-g {
+    description
+      "Grouping object for Device.FAP.GPS.ContinuousGPSStatus.";
+    leaf current-fix {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.CurrentFix";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.CurrentFix";
+    }
+    leaf got-fix {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.GotFix";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.GotFix";
+    }
+    leaf timing-good {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.TimingGood";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.TimingGood";
+    }
+    leaf latitude {
+      type int32 {
+        range "-90000000..90000000";
+      }
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.Latitude";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.Latitude";
+    }
+    leaf longitude {
+      type int32 {
+        range "-180000000..180000000";
+      }
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.Longitude";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.Longitude";
+    }
+    leaf elevation {
+      type int32 {
+        range "-5000000..25000000";
+      }
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.Elevation";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.Elevation";
+    }
+    leaf last-fix-time {
+      type string;
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.LastFixTime";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.LastFixTime";
+    }
+    leaf last-fix-duration {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.LastFixDuration";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.LastFixDuration";
+    }
+    leaf first-fix-timeout {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.FirstFixTimeout";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.FirstFixTimeout";
+    }
+    leaf satellites-tracked {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.SatellitesTracked";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.SatellitesTracked";
+    }
+    leaf satellite-tracking-interval {
+      type uint32 {
+        range "60..3600";
+      }
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.SatelliteTrackingInterval";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.SatelliteTrackingInterval";
+    }
+    leaf receiver-status {
+      type string;
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.ReceiverStatus";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.ReceiverStatus";
+    }
+    leaf location-type {
+      type string;
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.LocationType";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.LocationType";
+    }
+    leaf lock-time-out-duration {
+      type uint32 {
+        range "120..86400";
+      }
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.LockTimeOutDuration";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.LockTimeOutDuration";
+    }
+  }
+
+  grouping fap-perf-mgmt-g {
+    description
+      "Grouping object for Device.FAP.PerfMgmt.";
+    leaf config-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.PerfMgmt.ConfigNumberOfEntries";
+      reference
+        "Device.FAP.PerfMgmt.ConfigNumberOfEntries";
+    }
+  }
+
+  grouping perf-mgmt-config-g {
+    description
+      "Grouping object for Device.FAP.PerfMgmt.Config.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.FAP.PerfMgmt.Config.{i}.Enable";
+      reference
+        "Device.FAP.PerfMgmt.Config.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.FAP.PerfMgmt.Config.{i}.Alias";
+      reference
+        "Device.FAP.PerfMgmt.Config.{i}.Alias";
+    }
+    leaf url {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.FAP.PerfMgmt.Config.{i}.URL";
+      reference
+        "Device.FAP.PerfMgmt.Config.{i}.URL";
+    }
+    leaf username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.FAP.PerfMgmt.Config.{i}.Username";
+      reference
+        "Device.FAP.PerfMgmt.Config.{i}.Username";
+    }
+    leaf periodic-upload-interval {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.FAP.PerfMgmt.Config.{i}.PeriodicUploadInterval";
+      reference
+        "Device.FAP.PerfMgmt.Config.{i}.PeriodicUploadInterval";
+    }
+    leaf periodic-upload-time {
+      type string;
+      description
+        "Device.FAP.PerfMgmt.Config.{i}.PeriodicUploadTime";
+      reference
+        "Device.FAP.PerfMgmt.Config.{i}.PeriodicUploadTime";
+    }
+  }
+
+  grouping device-fast-g {
+    description
+      "Grouping object for Device.FAST.";
+    leaf line-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.LineNumberOfEntries";
+      reference
+        "Device.FAST.LineNumberOfEntries";
+    }
+  }
+
+  grouping fast-line-g {
+    description
+      "Grouping object for Device.FAST.Line.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.FAST.Line.{i}.Enable";
+      reference
+        "Device.FAST.Line.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Status";
+      reference
+        "Device.FAST.Line.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.FAST.Line.{i}.Alias";
+      reference
+        "Device.FAST.Line.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Name";
+      reference
+        "Device.FAST.Line.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.LastChange";
+      reference
+        "Device.FAST.Line.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.FAST.Line.{i}.LowerLayers";
+      reference
+        "Device.FAST.Line.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Upstream";
+      reference
+        "Device.FAST.Line.{i}.Upstream";
+    }
+    leaf firmware-version {
+      type string;
+      config false;
+      description
+        "Device.FAST.Line.{i}.FirmwareVersion";
+      reference
+        "Device.FAST.Line.{i}.FirmwareVersion";
+    }
+    leaf link-status {
+      type string;
+      config false;
+      description
+        "Device.FAST.Line.{i}.LinkStatus";
+      reference
+        "Device.FAST.Line.{i}.LinkStatus";
+    }
+    leaf allowed-profiles {
+      type string;
+      config false;
+      description
+        "Device.FAST.Line.{i}.AllowedProfiles";
+      reference
+        "Device.FAST.Line.{i}.AllowedProfiles";
+    }
+    leaf current-profile {
+      type string;
+      config false;
+      description
+        "Device.FAST.Line.{i}.CurrentProfile";
+      reference
+        "Device.FAST.Line.{i}.CurrentProfile";
+    }
+    leaf power-management-state {
+      type string;
+      config false;
+      description
+        "Device.FAST.Line.{i}.PowerManagementState";
+      reference
+        "Device.FAST.Line.{i}.PowerManagementState";
+    }
+    leaf success-failure-cause {
+      type uint32 {
+        range "0..5";
+      }
+      config false;
+      description
+        "Device.FAST.Line.{i}.SuccessFailureCause";
+      reference
+        "Device.FAST.Line.{i}.SuccessFailureCause";
+    }
+    leaf upbokler {
+      type uint32 {
+        range "0..1280";
+      }
+      config false;
+      description
+        "Device.FAST.Line.{i}.UPBOKLER";
+      reference
+        "Device.FAST.Line.{i}.UPBOKLER";
+    }
+    leaf last-transmitted-downstream-signal {
+      type uint32 {
+        range "0..21";
+      }
+      config false;
+      description
+        "Device.FAST.Line.{i}.LastTransmittedDownstreamSignal";
+      reference
+        "Device.FAST.Line.{i}.LastTransmittedDownstreamSignal";
+    }
+    leaf last-transmitted-upstream-signal {
+      type uint32 {
+        range "0..21";
+      }
+      config false;
+      description
+        "Device.FAST.Line.{i}.LastTransmittedUpstreamSignal";
+      reference
+        "Device.FAST.Line.{i}.LastTransmittedUpstreamSignal";
+    }
+    leaf upbokle {
+      type uint32 {
+        range "0..1280";
+      }
+      config false;
+      description
+        "Device.FAST.Line.{i}.UPBOKLE";
+      reference
+        "Device.FAST.Line.{i}.UPBOKLE";
+    }
+    leaf line-number {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.LineNumber";
+      reference
+        "Device.FAST.Line.{i}.LineNumber";
+    }
+    leaf upstream-max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.UpstreamMaxBitRate";
+      reference
+        "Device.FAST.Line.{i}.UpstreamMaxBitRate";
+    }
+    leaf downstream-max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.DownstreamMaxBitRate";
+      reference
+        "Device.FAST.Line.{i}.DownstreamMaxBitRate";
+    }
+    leaf upstream-noise-margin {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.UpstreamNoiseMargin";
+      reference
+        "Device.FAST.Line.{i}.UpstreamNoiseMargin";
+    }
+    leaf downstream-noise-margin {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.DownstreamNoiseMargin";
+      reference
+        "Device.FAST.Line.{i}.DownstreamNoiseMargin";
+    }
+    leaf upstream-attenuation {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.UpstreamAttenuation";
+      reference
+        "Device.FAST.Line.{i}.UpstreamAttenuation";
+    }
+    leaf downstream-attenuation {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.DownstreamAttenuation";
+      reference
+        "Device.FAST.Line.{i}.DownstreamAttenuation";
+    }
+    leaf upstream-power {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.UpstreamPower";
+      reference
+        "Device.FAST.Line.{i}.UpstreamPower";
+    }
+    leaf downstream-power {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.DownstreamPower";
+      reference
+        "Device.FAST.Line.{i}.DownstreamPower";
+    }
+    leaf snrmrm-cds {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.SNRMRMCds";
+      reference
+        "Device.FAST.Line.{i}.SNRMRMCds";
+    }
+    leaf snrmrm-cus {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.SNRMRMCus";
+      reference
+        "Device.FAST.Line.{i}.SNRMRMCus";
+    }
+    leaf bitsrm-cpsds {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.BITSRMCpsds";
+      reference
+        "Device.FAST.Line.{i}.BITSRMCpsds";
+    }
+    leaf bitsrm-cpsus {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.BITSRMCpsus";
+      reference
+        "Device.FAST.Line.{i}.BITSRMCpsus";
+    }
+    leaf fextcance-lds {
+      type boolean;
+      config false;
+      description
+        "Device.FAST.Line.{i}.FEXTCANCELds";
+      reference
+        "Device.FAST.Line.{i}.FEXTCANCELds";
+    }
+    leaf fextcance-lus {
+      type boolean;
+      config false;
+      description
+        "Device.FAST.Line.{i}.FEXTCANCELus";
+      reference
+        "Device.FAST.Line.{i}.FEXTCANCELus";
+    }
+    leaf et-rds {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.ETRds";
+      reference
+        "Device.FAST.Line.{i}.ETRds";
+    }
+    leaf et-rus {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.ETRus";
+      reference
+        "Device.FAST.Line.{i}.ETRus";
+    }
+    leaf attet-rds {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.ATTETRds";
+      reference
+        "Device.FAST.Line.{i}.ATTETRds";
+    }
+    leaf attet-rus {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.ATTETRus";
+      reference
+        "Device.FAST.Line.{i}.ATTETRus";
+    }
+    leaf mineftr {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.MINEFTR";
+      reference
+        "Device.FAST.Line.{i}.MINEFTR";
+    }
+  }
+
+  grouping fast-line-stats-g {
+    description
+      "Grouping object for Device.FAST.Line.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.BytesSent";
+      reference
+        "Device.FAST.Line.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.BytesReceived";
+      reference
+        "Device.FAST.Line.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.PacketsSent";
+      reference
+        "Device.FAST.Line.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.PacketsReceived";
+      reference
+        "Device.FAST.Line.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.ErrorsSent";
+      reference
+        "Device.FAST.Line.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.FAST.Line.{i}.Stats.ErrorsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.FAST.Line.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.FAST.Line.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf total-start {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.TotalStart";
+      reference
+        "Device.FAST.Line.{i}.Stats.TotalStart";
+    }
+    leaf showtime-start {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.ShowtimeStart";
+      reference
+        "Device.FAST.Line.{i}.Stats.ShowtimeStart";
+    }
+    leaf last-showtime-start {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtimeStart";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtimeStart";
+    }
+    leaf current-day-start {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDayStart";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDayStart";
+    }
+    leaf quarter-hour-start {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHourStart";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHourStart";
+    }
+  }
+
+  grouping fast-line-stats-current-day-g {
+    description
+      "Grouping object for Device.FAST.Line.{i}.Stats.CurrentDay.";
+    leaf errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.ErroredSecs";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.ErroredSecs";
+    }
+    leaf severely-errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SeverelyErroredSecs";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SeverelyErroredSecs";
+    }
+    leaf loss {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.LOSS";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.LOSS";
+    }
+    leaf lors {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.LORS";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.LORS";
+    }
+    leaf uas {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.UAS";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.UAS";
+    }
+    leaf rtxuc {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.RTXUC";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.RTXUC";
+    }
+    leaf rtxtx {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.RTXTX";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.RTXTX";
+    }
+    leaf success-bsw {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SuccessBSW";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SuccessBSW";
+    }
+    leaf success-sra {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SuccessSRA";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SuccessSRA";
+    }
+    leaf success-fra {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SuccessFRA";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SuccessFRA";
+    }
+    leaf success-rpa {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SuccessRPA";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SuccessRPA";
+    }
+    leaf success-tiga {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SuccessTIGA";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SuccessTIGA";
+    }
+  }
+
+  grouping fast-line-stats-last-showtime-g {
+    description
+      "Grouping object for Device.FAST.Line.{i}.Stats.LastShowtime.";
+    leaf errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.ErroredSecs";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.ErroredSecs";
+    }
+    leaf severely-errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SeverelyErroredSecs";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SeverelyErroredSecs";
+    }
+    leaf loss {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.LOSS";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.LOSS";
+    }
+    leaf lors {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.LORS";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.LORS";
+    }
+    leaf uas {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.UAS";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.UAS";
+    }
+    leaf rtxuc {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.RTXUC";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.RTXUC";
+    }
+    leaf rtxtx {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.RTXTX";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.RTXTX";
+    }
+    leaf success-bsw {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SuccessBSW";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SuccessBSW";
+    }
+    leaf success-sra {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SuccessSRA";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SuccessSRA";
+    }
+    leaf success-fra {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SuccessFRA";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SuccessFRA";
+    }
+    leaf success-rpa {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SuccessRPA";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SuccessRPA";
+    }
+    leaf success-tiga {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SuccessTIGA";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SuccessTIGA";
+    }
+  }
+
+  grouping fast-line-stats-quarter-hour-g {
+    description
+      "Grouping object for Device.FAST.Line.{i}.Stats.QuarterHour.";
+    leaf errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.ErroredSecs";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.ErroredSecs";
+    }
+    leaf severely-errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SeverelyErroredSecs";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SeverelyErroredSecs";
+    }
+    leaf loss {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.LOSS";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.LOSS";
+    }
+    leaf lors {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.LORS";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.LORS";
+    }
+    leaf uas {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.UAS";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.UAS";
+    }
+    leaf rtxuc {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.RTXUC";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.RTXUC";
+    }
+    leaf rtxtx {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.RTXTX";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.RTXTX";
+    }
+    leaf success-bsw {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SuccessBSW";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SuccessBSW";
+    }
+    leaf success-sra {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SuccessSRA";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SuccessSRA";
+    }
+    leaf success-fra {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SuccessFRA";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SuccessFRA";
+    }
+    leaf success-rpa {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SuccessRPA";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SuccessRPA";
+    }
+    leaf success-tiga {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SuccessTIGA";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SuccessTIGA";
+    }
+  }
+
+  grouping fast-line-stats-showtime-g {
+    description
+      "Grouping object for Device.FAST.Line.{i}.Stats.Showtime.";
+    leaf errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.ErroredSecs";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.ErroredSecs";
+    }
+    leaf severely-errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.SeverelyErroredSecs";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.SeverelyErroredSecs";
+    }
+    leaf loss {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.LOSS";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.LOSS";
+    }
+    leaf lors {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.LORS";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.LORS";
+    }
+    leaf uas {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.UAS";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.UAS";
+    }
+    leaf rtxuc {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.RTXUC";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.RTXUC";
+    }
+    leaf rtxtx {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.RTXTX";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.RTXTX";
+    }
+    leaf success-bsw {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.SuccessBSW";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.SuccessBSW";
+    }
+    leaf success-sra {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.SuccessSRA";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.SuccessSRA";
+    }
+    leaf success-fra {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.SuccessFRA";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.SuccessFRA";
+    }
+    leaf success-rpa {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.SuccessRPA";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.SuccessRPA";
+    }
+    leaf success-tiga {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.SuccessTIGA";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.SuccessTIGA";
+    }
+  }
+
+  grouping fast-line-stats-total-g {
+    description
+      "Grouping object for Device.FAST.Line.{i}.Stats.Total.";
+    leaf errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.ErroredSecs";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.ErroredSecs";
+    }
+    leaf severely-errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.SeverelyErroredSecs";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.SeverelyErroredSecs";
+    }
+    leaf loss {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.LOSS";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.LOSS";
+    }
+    leaf lors {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.LORS";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.LORS";
+    }
+    leaf uas {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.UAS";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.UAS";
+    }
+    leaf rtxuc {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.RTXUC";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.RTXUC";
+    }
+    leaf rtxtx {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.RTXTX";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.RTXTX";
+    }
+    leaf success-bsw {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.SuccessBSW";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.SuccessBSW";
+    }
+    leaf success-sra {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.SuccessSRA";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.SuccessSRA";
+    }
+    leaf success-fra {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.SuccessFRA";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.SuccessFRA";
+    }
+    leaf success-rpa {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.SuccessRPA";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.SuccessRPA";
+    }
+    leaf success-tiga {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.SuccessTIGA";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.SuccessTIGA";
+    }
+  }
+
+  grouping fast-line-test-params-g {
+    description
+      "Grouping object for Device.FAST.Line.{i}.TestParams.";
+    leaf snr-gds {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.SNRGds";
+      reference
+        "Device.FAST.Line.{i}.TestParams.SNRGds";
+    }
+    leaf snr-gus {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.SNRGus";
+      reference
+        "Device.FAST.Line.{i}.TestParams.SNRGus";
+    }
+    leaf sn-rpsds {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.SNRpsds";
+      reference
+        "Device.FAST.Line.{i}.TestParams.SNRpsds";
+    }
+    leaf sn-rpsus {
+      type string;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.SNRpsus";
+      reference
+        "Device.FAST.Line.{i}.TestParams.SNRpsus";
+    }
+    leaf snrm-tds {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.SNRMTds";
+      reference
+        "Device.FAST.Line.{i}.TestParams.SNRMTds";
+    }
+    leaf snrm-tus {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.SNRMTus";
+      reference
+        "Device.FAST.Line.{i}.TestParams.SNRMTus";
+    }
+    leaf actinp {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.ACTINP";
+      reference
+        "Device.FAST.Line.{i}.TestParams.ACTINP";
+    }
+    leaf nfec {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.NFEC";
+      reference
+        "Device.FAST.Line.{i}.TestParams.NFEC";
+    }
+    leaf rfec {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.RFEC";
+      reference
+        "Device.FAST.Line.{i}.TestParams.RFEC";
+    }
+    leaf upstream-curr-rate {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.UpstreamCurrRate";
+      reference
+        "Device.FAST.Line.{i}.TestParams.UpstreamCurrRate";
+    }
+    leaf downstream-curr-rate {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.DownstreamCurrRate";
+      reference
+        "Device.FAST.Line.{i}.TestParams.DownstreamCurrRate";
+    }
+    leaf actinprein {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.ACTINPREIN";
+      reference
+        "Device.FAST.Line.{i}.TestParams.ACTINPREIN";
+    }
+  }
+
+  grouping device-fault-mgmt-g {
+    description
+      "Grouping object for Device.FaultMgmt.";
+    leaf supported-alarm-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.FaultMgmt.SupportedAlarmNumberOfEntries";
+      reference
+        "Device.FaultMgmt.SupportedAlarmNumberOfEntries";
+    }
+    leaf max-current-alarm-entries {
+      type uint32;
+      config false;
+      description
+        "Device.FaultMgmt.MaxCurrentAlarmEntries";
+      reference
+        "Device.FaultMgmt.MaxCurrentAlarmEntries";
+    }
+    leaf current-alarm-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarmNumberOfEntries";
+      reference
+        "Device.FaultMgmt.CurrentAlarmNumberOfEntries";
+    }
+    leaf history-event-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEventNumberOfEntries";
+      reference
+        "Device.FaultMgmt.HistoryEventNumberOfEntries";
+    }
+    leaf expedited-event-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEventNumberOfEntries";
+      reference
+        "Device.FaultMgmt.ExpeditedEventNumberOfEntries";
+    }
+    leaf queued-event-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEventNumberOfEntries";
+      reference
+        "Device.FaultMgmt.QueuedEventNumberOfEntries";
+    }
+  }
+
+  grouping fault-mgmt-current-alarm-g {
+    description
+      "Grouping object for Device.FaultMgmt.CurrentAlarm.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alarm-identifier {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarm.{i}.AlarmIdentifier";
+      reference
+        "Device.FaultMgmt.CurrentAlarm.{i}.AlarmIdentifier";
+    }
+    leaf alarm-raised-time {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarm.{i}.AlarmRaisedTime";
+      reference
+        "Device.FaultMgmt.CurrentAlarm.{i}.AlarmRaisedTime";
+    }
+    leaf alarm-changed-time {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarm.{i}.AlarmChangedTime";
+      reference
+        "Device.FaultMgmt.CurrentAlarm.{i}.AlarmChangedTime";
+    }
+    leaf managed-object-instance {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarm.{i}.ManagedObjectInstance";
+      reference
+        "Device.FaultMgmt.CurrentAlarm.{i}.ManagedObjectInstance";
+    }
+    leaf event-type {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarm.{i}.EventType";
+      reference
+        "Device.FaultMgmt.CurrentAlarm.{i}.EventType";
+    }
+    leaf probable-cause {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarm.{i}.ProbableCause";
+      reference
+        "Device.FaultMgmt.CurrentAlarm.{i}.ProbableCause";
+    }
+    leaf specific-problem {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarm.{i}.SpecificProblem";
+      reference
+        "Device.FaultMgmt.CurrentAlarm.{i}.SpecificProblem";
+    }
+    leaf perceived-severity {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarm.{i}.PerceivedSeverity";
+      reference
+        "Device.FaultMgmt.CurrentAlarm.{i}.PerceivedSeverity";
+    }
+    leaf additional-text {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarm.{i}.AdditionalText";
+      reference
+        "Device.FaultMgmt.CurrentAlarm.{i}.AdditionalText";
+    }
+    leaf additional-information {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarm.{i}.AdditionalInformation";
+      reference
+        "Device.FaultMgmt.CurrentAlarm.{i}.AdditionalInformation";
+    }
+  }
+
+  grouping fault-mgmt-expedited-event-g {
+    description
+      "Grouping object for Device.FaultMgmt.ExpeditedEvent.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf event-time {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEvent.{i}.EventTime";
+      reference
+        "Device.FaultMgmt.ExpeditedEvent.{i}.EventTime";
+    }
+    leaf alarm-identifier {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEvent.{i}.AlarmIdentifier";
+      reference
+        "Device.FaultMgmt.ExpeditedEvent.{i}.AlarmIdentifier";
+    }
+    leaf notification-type {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEvent.{i}.NotificationType";
+      reference
+        "Device.FaultMgmt.ExpeditedEvent.{i}.NotificationType";
+    }
+    leaf managed-object-instance {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEvent.{i}.ManagedObjectInstance";
+      reference
+        "Device.FaultMgmt.ExpeditedEvent.{i}.ManagedObjectInstance";
+    }
+    leaf event-type {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEvent.{i}.EventType";
+      reference
+        "Device.FaultMgmt.ExpeditedEvent.{i}.EventType";
+    }
+    leaf probable-cause {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEvent.{i}.ProbableCause";
+      reference
+        "Device.FaultMgmt.ExpeditedEvent.{i}.ProbableCause";
+    }
+    leaf specific-problem {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEvent.{i}.SpecificProblem";
+      reference
+        "Device.FaultMgmt.ExpeditedEvent.{i}.SpecificProblem";
+    }
+    leaf perceived-severity {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEvent.{i}.PerceivedSeverity";
+      reference
+        "Device.FaultMgmt.ExpeditedEvent.{i}.PerceivedSeverity";
+    }
+    leaf additional-text {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEvent.{i}.AdditionalText";
+      reference
+        "Device.FaultMgmt.ExpeditedEvent.{i}.AdditionalText";
+    }
+    leaf additional-information {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEvent.{i}.AdditionalInformation";
+      reference
+        "Device.FaultMgmt.ExpeditedEvent.{i}.AdditionalInformation";
+    }
+  }
+
+  grouping fault-mgmt-history-event-g {
+    description
+      "Grouping object for Device.FaultMgmt.HistoryEvent.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf event-time {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEvent.{i}.EventTime";
+      reference
+        "Device.FaultMgmt.HistoryEvent.{i}.EventTime";
+    }
+    leaf alarm-identifier {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEvent.{i}.AlarmIdentifier";
+      reference
+        "Device.FaultMgmt.HistoryEvent.{i}.AlarmIdentifier";
+    }
+    leaf notification-type {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEvent.{i}.NotificationType";
+      reference
+        "Device.FaultMgmt.HistoryEvent.{i}.NotificationType";
+    }
+    leaf managed-object-instance {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEvent.{i}.ManagedObjectInstance";
+      reference
+        "Device.FaultMgmt.HistoryEvent.{i}.ManagedObjectInstance";
+    }
+    leaf event-type {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEvent.{i}.EventType";
+      reference
+        "Device.FaultMgmt.HistoryEvent.{i}.EventType";
+    }
+    leaf probable-cause {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEvent.{i}.ProbableCause";
+      reference
+        "Device.FaultMgmt.HistoryEvent.{i}.ProbableCause";
+    }
+    leaf specific-problem {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEvent.{i}.SpecificProblem";
+      reference
+        "Device.FaultMgmt.HistoryEvent.{i}.SpecificProblem";
+    }
+    leaf perceived-severity {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEvent.{i}.PerceivedSeverity";
+      reference
+        "Device.FaultMgmt.HistoryEvent.{i}.PerceivedSeverity";
+    }
+    leaf additional-text {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEvent.{i}.AdditionalText";
+      reference
+        "Device.FaultMgmt.HistoryEvent.{i}.AdditionalText";
+    }
+    leaf additional-information {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEvent.{i}.AdditionalInformation";
+      reference
+        "Device.FaultMgmt.HistoryEvent.{i}.AdditionalInformation";
+    }
+  }
+
+  grouping fault-mgmt-queued-event-g {
+    description
+      "Grouping object for Device.FaultMgmt.QueuedEvent.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf event-time {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEvent.{i}.EventTime";
+      reference
+        "Device.FaultMgmt.QueuedEvent.{i}.EventTime";
+    }
+    leaf alarm-identifier {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEvent.{i}.AlarmIdentifier";
+      reference
+        "Device.FaultMgmt.QueuedEvent.{i}.AlarmIdentifier";
+    }
+    leaf notification-type {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEvent.{i}.NotificationType";
+      reference
+        "Device.FaultMgmt.QueuedEvent.{i}.NotificationType";
+    }
+    leaf managed-object-instance {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEvent.{i}.ManagedObjectInstance";
+      reference
+        "Device.FaultMgmt.QueuedEvent.{i}.ManagedObjectInstance";
+    }
+    leaf event-type {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEvent.{i}.EventType";
+      reference
+        "Device.FaultMgmt.QueuedEvent.{i}.EventType";
+    }
+    leaf probable-cause {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEvent.{i}.ProbableCause";
+      reference
+        "Device.FaultMgmt.QueuedEvent.{i}.ProbableCause";
+    }
+    leaf specific-problem {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEvent.{i}.SpecificProblem";
+      reference
+        "Device.FaultMgmt.QueuedEvent.{i}.SpecificProblem";
+    }
+    leaf perceived-severity {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEvent.{i}.PerceivedSeverity";
+      reference
+        "Device.FaultMgmt.QueuedEvent.{i}.PerceivedSeverity";
+    }
+    leaf additional-text {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEvent.{i}.AdditionalText";
+      reference
+        "Device.FaultMgmt.QueuedEvent.{i}.AdditionalText";
+    }
+    leaf additional-information {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEvent.{i}.AdditionalInformation";
+      reference
+        "Device.FaultMgmt.QueuedEvent.{i}.AdditionalInformation";
+    }
+  }
+
+  grouping fault-mgmt-supported-alarm-g {
+    description
+      "Grouping object for Device.FaultMgmt.SupportedAlarm.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf event-type {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.SupportedAlarm.{i}.EventType";
+      reference
+        "Device.FaultMgmt.SupportedAlarm.{i}.EventType";
+    }
+    leaf probable-cause {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.SupportedAlarm.{i}.ProbableCause";
+      reference
+        "Device.FaultMgmt.SupportedAlarm.{i}.ProbableCause";
+    }
+    leaf specific-problem {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.SupportedAlarm.{i}.SpecificProblem";
+      reference
+        "Device.FaultMgmt.SupportedAlarm.{i}.SpecificProblem";
+    }
+    leaf perceived-severity {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.SupportedAlarm.{i}.PerceivedSeverity";
+      reference
+        "Device.FaultMgmt.SupportedAlarm.{i}.PerceivedSeverity";
+    }
+    leaf reporting-mechanism {
+      type enumeration {
+        enum "0 Expedited" {
+          description
+            "Enum Value - 0 Expedited";
+        }
+        enum "1 Queued" {
+          description
+            "Enum Value - 1 Queued";
+        }
+        enum "2 Logged" {
+          description
+            "Enum Value - 2 Logged";
+        }
+        enum "3 Disabled" {
+          description
+            "Enum Value - 3 Disabled";
+        }
+      }
+      description
+        "Device.FaultMgmt.SupportedAlarm.{i}.ReportingMechanism";
+      reference
+        "Device.FaultMgmt.SupportedAlarm.{i}.ReportingMechanism";
+    }
+  }
+
+  grouping device-firewall-g {
+    description
+      "Grouping object for Device.Firewall.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.Firewall.Enable";
+      reference
+        "Device.Firewall.Enable";
+    }
+    leaf config {
+      type enumeration {
+        enum High {
+          description
+            "Enum Value - High";
+        }
+        enum Low {
+          description
+            "Enum Value - Low";
+        }
+        enum Off {
+          description
+            "Enum Value - Off";
+        }
+        enum Advanced {
+          description
+            "Enum Value - Advanced";
+        }
+      }
+      description
+        "Device.Firewall.Config";
+      reference
+        "Device.Firewall.Config";
+    }
+    leaf advanced-level {
+      type string;
+      description
+        "Device.Firewall.AdvancedLevel";
+      reference
+        "Device.Firewall.AdvancedLevel";
+    }
+    leaf type {
+      type string;
+      config false;
+      description
+        "Device.Firewall.Type";
+      reference
+        "Device.Firewall.Type";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.Firewall.Version";
+      reference
+        "Device.Firewall.Version";
+    }
+    leaf last-change {
+      type string;
+      config false;
+      description
+        "Device.Firewall.LastChange";
+      reference
+        "Device.Firewall.LastChange";
+    }
+    leaf level-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Firewall.LevelNumberOfEntries";
+      reference
+        "Device.Firewall.LevelNumberOfEntries";
+    }
+    leaf chain-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Firewall.ChainNumberOfEntries";
+      reference
+        "Device.Firewall.ChainNumberOfEntries";
+    }
+  }
+
+  grouping firewall-chain-g {
+    description
+      "Grouping object for Device.Firewall.Chain.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Enable";
+      reference
+        "Device.Firewall.Chain.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Alias";
+      reference
+        "Device.Firewall.Chain.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Name";
+      reference
+        "Device.Firewall.Chain.{i}.Name";
+    }
+    leaf creator {
+      type string;
+      config false;
+      description
+        "Device.Firewall.Chain.{i}.Creator";
+      reference
+        "Device.Firewall.Chain.{i}.Creator";
+    }
+    leaf rule-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Firewall.Chain.{i}.RuleNumberOfEntries";
+      reference
+        "Device.Firewall.Chain.{i}.RuleNumberOfEntries";
+    }
+  }
+
+  grouping chain-rule-g {
+    description
+      "Grouping object for Device.Firewall.Chain.{i}.Rule.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.Enable";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.Status";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.Status";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.Order";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.Order";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.Alias";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.Alias";
+    }
+    leaf description {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.Description";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.Description";
+    }
+    leaf target {
+      type enumeration {
+        enum Drop {
+          description
+            "Enum Value - Drop";
+        }
+        enum Accept {
+          description
+            "Enum Value - Accept";
+        }
+        enum Reject {
+          description
+            "Enum Value - Reject";
+        }
+        enum Return {
+          description
+            "Enum Value - Return";
+        }
+        enum TargetChain {
+          description
+            "Enum Value - TargetChain";
+        }
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.Target";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.Target";
+    }
+    leaf target-chain {
+      type string;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.TargetChain";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.TargetChain";
+    }
+    leaf log {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.Log";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.Log";
+    }
+    leaf creation-date {
+      type string;
+      config false;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.CreationDate";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.CreationDate";
+    }
+    leaf expiry-date {
+      type string;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.ExpiryDate";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.ExpiryDate";
+    }
+    leaf source-interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceInterface";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceInterface";
+    }
+    leaf source-interface-exclude {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceInterfaceExclude";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceInterfaceExclude";
+    }
+    leaf source-all-interfaces {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceAllInterfaces";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceAllInterfaces";
+    }
+    leaf dest-interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestInterface";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestInterface";
+    }
+    leaf dest-interface-exclude {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestInterfaceExclude";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestInterfaceExclude";
+    }
+    leaf dest-all-interfaces {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestAllInterfaces";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestAllInterfaces";
+    }
+    leaf ip-version {
+      type int32 {
+        range "-1..15";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.IPVersion";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.IPVersion";
+    }
+    leaf dest-ip {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestIP";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestIP";
+    }
+    leaf dest-mask {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestMask";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestMask";
+    }
+    leaf dest-ip-exclude {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestIPExclude";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestIPExclude";
+    }
+    leaf source-ip {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceIP";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceIP";
+    }
+    leaf source-mask {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceMask";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceMask";
+    }
+    leaf source-ip-exclude {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceIPExclude";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceIPExclude";
+    }
+    leaf protocol {
+      type int32 {
+        range "-1..255";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.Protocol";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.Protocol";
+    }
+    leaf protocol-exclude {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.ProtocolExclude";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.ProtocolExclude";
+    }
+    leaf dest-port {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestPort";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestPort";
+    }
+    leaf dest-port-range-max {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestPortRangeMax";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestPortRangeMax";
+    }
+    leaf dest-port-exclude {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestPortExclude";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestPortExclude";
+    }
+    leaf source-port {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourcePort";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourcePort";
+    }
+    leaf source-port-range-max {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourcePortRangeMax";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourcePortRangeMax";
+    }
+    leaf source-port-exclude {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourcePortExclude";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourcePortExclude";
+    }
+    leaf dscp {
+      type int32 {
+        range "-1..63";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DSCP";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DSCP";
+    }
+    leaf dscp-exclude {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DSCPExclude";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DSCPExclude";
+    }
+  }
+
+  grouping firewall-level-g {
+    description
+      "Grouping object for Device.Firewall.Level.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Firewall.Level.{i}.Alias";
+      reference
+        "Device.Firewall.Level.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Firewall.Level.{i}.Name";
+      reference
+        "Device.Firewall.Level.{i}.Name";
+    }
+    leaf description {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Firewall.Level.{i}.Description";
+      reference
+        "Device.Firewall.Level.{i}.Description";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.Firewall.Level.{i}.Order";
+      reference
+        "Device.Firewall.Level.{i}.Order";
+    }
+    leaf chain {
+      type string;
+      config false;
+      description
+        "Device.Firewall.Level.{i}.Chain";
+      reference
+        "Device.Firewall.Level.{i}.Chain";
+    }
+    leaf port-mapping-enabled {
+      type boolean;
+      description
+        "Device.Firewall.Level.{i}.PortMappingEnabled";
+      reference
+        "Device.Firewall.Level.{i}.PortMappingEnabled";
+    }
+    leaf default-policy {
+      type enumeration {
+        enum Drop {
+          description
+            "Enum Value - Drop";
+        }
+        enum Accept {
+          description
+            "Enum Value - Accept";
+        }
+        enum Reject {
+          description
+            "Enum Value - Reject";
+        }
+      }
+      description
+        "Device.Firewall.Level.{i}.DefaultPolicy";
+      reference
+        "Device.Firewall.Level.{i}.DefaultPolicy";
+    }
+    leaf default-log-policy {
+      type boolean;
+      description
+        "Device.Firewall.Level.{i}.DefaultLogPolicy";
+      reference
+        "Device.Firewall.Level.{i}.DefaultLogPolicy";
+    }
+  }
+
+  grouping device-gre-g {
+    description
+      "Grouping object for Device.GRE.";
+    leaf tunnel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.TunnelNumberOfEntries";
+      reference
+        "Device.GRE.TunnelNumberOfEntries";
+    }
+    leaf filter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.FilterNumberOfEntries";
+      reference
+        "Device.GRE.FilterNumberOfEntries";
+    }
+  }
+
+  grouping gre-filter-g {
+    description
+      "Grouping object for Device.GRE.Filter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.GRE.Filter.{i}.Enable";
+      reference
+        "Device.GRE.Filter.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.GRE.Filter.{i}.Status";
+      reference
+        "Device.GRE.Filter.{i}.Status";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.GRE.Filter.{i}.Order";
+      reference
+        "Device.GRE.Filter.{i}.Order";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.GRE.Filter.{i}.Alias";
+      reference
+        "Device.GRE.Filter.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.GRE.Filter.{i}.Interface";
+      reference
+        "Device.GRE.Filter.{i}.Interface";
+    }
+    leaf all-interfaces {
+      type boolean;
+      description
+        "Device.GRE.Filter.{i}.AllInterfaces";
+      reference
+        "Device.GRE.Filter.{i}.AllInterfaces";
+    }
+    leaf vlanid-check {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.GRE.Filter.{i}.VLANIDCheck";
+      reference
+        "Device.GRE.Filter.{i}.VLANIDCheck";
+    }
+    leaf vlanid-exclude {
+      type boolean;
+      description
+        "Device.GRE.Filter.{i}.VLANIDExclude";
+      reference
+        "Device.GRE.Filter.{i}.VLANIDExclude";
+    }
+    leaf dscp-mark-policy {
+      type int32 {
+        range "-2..63";
+      }
+      description
+        "Device.GRE.Filter.{i}.DSCPMarkPolicy";
+      reference
+        "Device.GRE.Filter.{i}.DSCPMarkPolicy";
+    }
+  }
+
+  grouping gre-tunnel-g {
+    description
+      "Grouping object for Device.GRE.Tunnel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.GRE.Tunnel.{i}.Enable";
+      reference
+        "Device.GRE.Tunnel.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Status";
+      reference
+        "Device.GRE.Tunnel.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.GRE.Tunnel.{i}.Alias";
+      reference
+        "Device.GRE.Tunnel.{i}.Alias";
+    }
+    leaf remote-endpoints {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.GRE.Tunnel.{i}.RemoteEndpoints";
+      reference
+        "Device.GRE.Tunnel.{i}.RemoteEndpoints";
+    }
+    leaf keep-alive-policy {
+      type enumeration {
+        enum ICMP {
+          description
+            "Enum Value - ICMP";
+        }
+        enum None {
+          description
+            "Enum Value - None";
+        }
+      }
+      description
+        "Device.GRE.Tunnel.{i}.KeepAlivePolicy";
+      reference
+        "Device.GRE.Tunnel.{i}.KeepAlivePolicy";
+    }
+    leaf keep-alive-timeout {
+      type uint32;
+      description
+        "Device.GRE.Tunnel.{i}.KeepAliveTimeout";
+      reference
+        "Device.GRE.Tunnel.{i}.KeepAliveTimeout";
+    }
+    leaf keep-alive-threshold {
+      type uint32;
+      description
+        "Device.GRE.Tunnel.{i}.KeepAliveThreshold";
+      reference
+        "Device.GRE.Tunnel.{i}.KeepAliveThreshold";
+    }
+    leaf delivery-header-protocol {
+      type enumeration {
+        enum IPv4 {
+          description
+            "Enum Value - IPv4";
+        }
+        enum IPv6 {
+          description
+            "Enum Value - IPv6";
+        }
+      }
+      description
+        "Device.GRE.Tunnel.{i}.DeliveryHeaderProtocol";
+      reference
+        "Device.GRE.Tunnel.{i}.DeliveryHeaderProtocol";
+    }
+    leaf default-dscp-mark {
+      type uint32;
+      description
+        "Device.GRE.Tunnel.{i}.DefaultDSCPMark";
+      reference
+        "Device.GRE.Tunnel.{i}.DefaultDSCPMark";
+    }
+    leaf connected-remote-endpoint {
+      type string;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.ConnectedRemoteEndpoint";
+      reference
+        "Device.GRE.Tunnel.{i}.ConnectedRemoteEndpoint";
+    }
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.InterfaceNumberOfEntries";
+      reference
+        "Device.GRE.Tunnel.{i}.InterfaceNumberOfEntries";
+    }
+  }
+
+  grouping tunnel-interface-g {
+    description
+      "Grouping object for Device.GRE.Tunnel.{i}.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Enable";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Status";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Alias";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Name";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.LastChange";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.LowerLayers";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.LowerLayers";
+    }
+    leaf protocol-id-override {
+      type uint32;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.ProtocolIdOverride";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.ProtocolIdOverride";
+    }
+    leaf use-checksum {
+      type boolean;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.UseChecksum";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.UseChecksum";
+    }
+    leaf key-identifier-generation-policy {
+      type enumeration {
+        enum Disabled {
+          description
+            "Enum Value - Disabled";
+        }
+        enum Provisioned {
+          description
+            "Enum Value - Provisioned";
+        }
+        enum CPE_Generated {
+          description
+            "Enum Value - CPE_Generated";
+        }
+      }
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.KeyIdentifierGenerationPolicy";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.KeyIdentifierGenerationPolicy";
+    }
+    leaf key-identifier {
+      type uint32;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.KeyIdentifier";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.KeyIdentifier";
+    }
+    leaf use-sequence-number {
+      type boolean;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.UseSequenceNumber";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.UseSequenceNumber";
+    }
+  }
+
+  grouping tunnel-interface-stats-g {
+    description
+      "Grouping object for Device.GRE.Tunnel.{i}.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf discard-checksum-received {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.DiscardChecksumReceived";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.DiscardChecksumReceived";
+    }
+    leaf discard-sequence-number-received {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.DiscardSequenceNumberReceived";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.DiscardSequenceNumberReceived";
+    }
+  }
+
+  grouping tunnel-stats-g {
+    description
+      "Grouping object for Device.GRE.Tunnel.{i}.Stats.";
+    leaf keep-alive-sent {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Stats.KeepAliveSent";
+      reference
+        "Device.GRE.Tunnel.{i}.Stats.KeepAliveSent";
+    }
+    leaf keep-alive-received {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Stats.KeepAliveReceived";
+      reference
+        "Device.GRE.Tunnel.{i}.Stats.KeepAliveReceived";
+    }
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Stats.BytesSent";
+      reference
+        "Device.GRE.Tunnel.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Stats.BytesReceived";
+      reference
+        "Device.GRE.Tunnel.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Stats.PacketsSent";
+      reference
+        "Device.GRE.Tunnel.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Stats.PacketsReceived";
+      reference
+        "Device.GRE.Tunnel.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Stats.ErrorsSent";
+      reference
+        "Device.GRE.Tunnel.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.GRE.Tunnel.{i}.Stats.ErrorsReceived";
+    }
+  }
+
+  grouping device-gateway-info-g {
+    description
+      "Grouping object for Device.GatewayInfo.";
+    leaf manufacturer-oui {
+      type string;
+      config false;
+      description
+        "Device.GatewayInfo.ManufacturerOUI";
+      reference
+        "Device.GatewayInfo.ManufacturerOUI";
+    }
+    leaf product-class {
+      type string;
+      config false;
+      description
+        "Device.GatewayInfo.ProductClass";
+      reference
+        "Device.GatewayInfo.ProductClass";
+    }
+    leaf serial-number {
+      type string;
+      config false;
+      description
+        "Device.GatewayInfo.SerialNumber";
+      reference
+        "Device.GatewayInfo.SerialNumber";
+    }
+  }
+
+  grouping device-ghn-g {
+    description
+      "Grouping object for Device.Ghn.";
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.InterfaceNumberOfEntries";
+      reference
+        "Device.Ghn.InterfaceNumberOfEntries";
+    }
+  }
+
+  grouping diagnostics-phy-throughput-g {
+    description
+      "Grouping object for Device.Ghn.Diagnostics.PHYThroughput.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Canceled {
+          description
+            "Enum Value - Canceled";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error {
+          description
+            "Enum Value - Error";
+        }
+      }
+      description
+        "Device.Ghn.Diagnostics.PHYThroughput.DiagnosticsState";
+      reference
+        "Device.Ghn.Diagnostics.PHYThroughput.DiagnosticsState";
+    }
+    leaf interface {
+      type string;
+      description
+        "Device.Ghn.Diagnostics.PHYThroughput.Interface";
+      reference
+        "Device.Ghn.Diagnostics.PHYThroughput.Interface";
+    }
+    leaf diagnose-mac-address {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.Ghn.Diagnostics.PHYThroughput.DiagnoseMACAddress";
+      reference
+        "Device.Ghn.Diagnostics.PHYThroughput.DiagnoseMACAddress";
+    }
+    leaf phy-throughput-result-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PHYThroughput.PHYThroughputResultNumberOfEntries";
+      reference
+        "Device.Ghn.Diagnostics.PHYThroughput.PHYThroughputResultNumberOfEntries";
+    }
+  }
+
+  grouping phy-throughput-result-g {
+    description
+      "Grouping object for Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf destination-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.DestinationMACAddress";
+      reference
+        "Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.DestinationMACAddress";
+    }
+    leaf link-state {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.LinkState";
+      reference
+        "Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.LinkState";
+    }
+    leaf tx-phy-rate {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.TxPhyRate";
+      reference
+        "Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.TxPhyRate";
+    }
+    leaf rx-phy-rate {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.RxPhyRate";
+      reference
+        "Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.RxPhyRate";
+    }
+  }
+
+  grouping diagnostics-performance-monitoring-g {
+    description
+      "Grouping object for Device.Ghn.Diagnostics.PerformanceMonitoring.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Canceled {
+          description
+            "Enum Value - Canceled";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error {
+          description
+            "Enum Value - Error";
+        }
+      }
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.DiagnosticsState";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.DiagnosticsState";
+    }
+    leaf interface {
+      type string;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Interface";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Interface";
+    }
+    leaf diagnose-mac-address {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.DiagnoseMACAddress";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.DiagnoseMACAddress";
+    }
+    leaf sample-interval {
+      type uint32;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.SampleInterval";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.SampleInterval";
+    }
+    leaf snr-group-length {
+      type uint32 {
+        range "1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256";
+      }
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.SNRGroupLength";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.SNRGroupLength";
+    }
+  }
+
+  grouping performance-monitoring-channels-g {
+    description
+      "Grouping object for Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.";
+    leaf time-stamp {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.TimeStamp";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.TimeStamp";
+    }
+    leaf channel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.ChannelNumberOfEntries";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.ChannelNumberOfEntries";
+    }
+  }
+
+  grouping channels-channel-g {
+    description
+      "Grouping object for Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf destination-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.DestinationMACAddress";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.DestinationMACAddress";
+    }
+    leaf snr {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.SNR";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.SNR";
+    }
+  }
+
+  grouping performance-monitoring-nodes-g {
+    description
+      "Grouping object for Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.";
+    leaf current-start {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.CurrentStart";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.CurrentStart";
+    }
+    leaf current-end {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.CurrentEnd";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.CurrentEnd";
+    }
+    leaf node-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.NodeNumberOfEntries";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.NodeNumberOfEntries";
+    }
+  }
+
+  grouping nodes-node-g {
+    description
+      "Grouping object for Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf destination-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.DestinationMACAddress";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.DestinationMACAddress";
+    }
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BytesSent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BytesReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsSent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ErrorsSent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ErrorsReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.UnicastPacketsSent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.UnicastPacketsReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.DiscardPacketsSent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.DiscardPacketsReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MulticastPacketsSent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MulticastPacketsReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsSent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.UnknownProtoPacketsReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.UnknownProtoPacketsReceived";
+    }
+    leaf mgmt-bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MgmtBytesSent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MgmtBytesSent";
+    }
+    leaf mgmt-bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MgmtBytesReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MgmtBytesReceived";
+    }
+    leaf mgmt-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MgmtPacketsSent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MgmtPacketsSent";
+    }
+    leaf mgmt-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MgmtPacketsReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MgmtPacketsReceived";
+    }
+    leaf blocks-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BlocksSent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BlocksSent";
+    }
+    leaf blocks-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BlocksReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BlocksReceived";
+    }
+    leaf blocks-resent {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BlocksResent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BlocksResent";
+    }
+    leaf blocks-errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BlocksErrorsReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BlocksErrorsReceived";
+    }
+  }
+
+  grouping ghn-interface-g {
+    description
+      "Grouping object for Device.Ghn.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Ghn.Interface.{i}.Enable";
+      reference
+        "Device.Ghn.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Status";
+      reference
+        "Device.Ghn.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Ghn.Interface.{i}.Alias";
+      reference
+        "Device.Ghn.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Name";
+      reference
+        "Device.Ghn.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.LastChange";
+      reference
+        "Device.Ghn.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.Ghn.Interface.{i}.LowerLayers";
+      reference
+        "Device.Ghn.Interface.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Upstream";
+      reference
+        "Device.Ghn.Interface.{i}.Upstream";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.MACAddress";
+      reference
+        "Device.Ghn.Interface.{i}.MACAddress";
+    }
+    leaf firmware-version {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.FirmwareVersion";
+      reference
+        "Device.Ghn.Interface.{i}.FirmwareVersion";
+    }
+    leaf connection-type {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.ConnectionType";
+      reference
+        "Device.Ghn.Interface.{i}.ConnectionType";
+    }
+    leaf max-transmit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.MaxTransmitRate";
+      reference
+        "Device.Ghn.Interface.{i}.MaxTransmitRate";
+    }
+    leaf target-domain-names {
+      type string {
+        length "min..32";
+      }
+      description
+        "Device.Ghn.Interface.{i}.TargetDomainNames";
+      reference
+        "Device.Ghn.Interface.{i}.TargetDomainNames";
+    }
+    leaf domain-name {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.DomainName";
+      reference
+        "Device.Ghn.Interface.{i}.DomainName";
+    }
+    leaf domain-name-identifier {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.DomainNameIdentifier";
+      reference
+        "Device.Ghn.Interface.{i}.DomainNameIdentifier";
+    }
+    leaf domain-id {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.DomainId";
+      reference
+        "Device.Ghn.Interface.{i}.DomainId";
+    }
+    leaf device-id {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.DeviceId";
+      reference
+        "Device.Ghn.Interface.{i}.DeviceId";
+    }
+    leaf max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.MaxBitRate";
+      reference
+        "Device.Ghn.Interface.{i}.MaxBitRate";
+    }
+    leaf node-type-dm-capable {
+      type boolean;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.NodeTypeDMCapable";
+      reference
+        "Device.Ghn.Interface.{i}.NodeTypeDMCapable";
+    }
+    leaf dm-requested {
+      type boolean;
+      description
+        "Device.Ghn.Interface.{i}.DMRequested";
+      reference
+        "Device.Ghn.Interface.{i}.DMRequested";
+    }
+    leaf is-dm {
+      type boolean;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.IsDM";
+      reference
+        "Device.Ghn.Interface.{i}.IsDM";
+    }
+    leaf node-type-sc-capable {
+      type boolean;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.NodeTypeSCCapable";
+      reference
+        "Device.Ghn.Interface.{i}.NodeTypeSCCapable";
+    }
+    leaf sc-requested {
+      type boolean;
+      description
+        "Device.Ghn.Interface.{i}.SCRequested";
+      reference
+        "Device.Ghn.Interface.{i}.SCRequested";
+    }
+    leaf is-sc {
+      type boolean;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.IsSC";
+      reference
+        "Device.Ghn.Interface.{i}.IsSC";
+    }
+    leaf standard-versions {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.StandardVersions";
+      reference
+        "Device.Ghn.Interface.{i}.StandardVersions";
+    }
+    leaf max-band-plan {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.MaxBandPlan";
+      reference
+        "Device.Ghn.Interface.{i}.MaxBandPlan";
+    }
+    leaf medium-type {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.MediumType";
+      reference
+        "Device.Ghn.Interface.{i}.MediumType";
+    }
+    leaf taifg {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.TAIFG";
+      reference
+        "Device.Ghn.Interface.{i}.TAIFG";
+    }
+    leaf notched-amateur-radio-bands {
+      type string {
+        length "min..2";
+      }
+      description
+        "Device.Ghn.Interface.{i}.NotchedAmateurRadioBands";
+      reference
+        "Device.Ghn.Interface.{i}.NotchedAmateurRadioBands";
+    }
+    leaf phy-throughput-diagnostics-enable {
+      type string;
+      description
+        "Device.Ghn.Interface.{i}.PHYThroughputDiagnosticsEnable";
+      reference
+        "Device.Ghn.Interface.{i}.PHYThroughputDiagnosticsEnable";
+    }
+    leaf performance-monitoring-diagnostics-enable {
+      type string;
+      description
+        "Device.Ghn.Interface.{i}.PerformanceMonitoringDiagnosticsEnable";
+      reference
+        "Device.Ghn.Interface.{i}.PerformanceMonitoringDiagnosticsEnable";
+    }
+    leaf sm-masked-band-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.SMMaskedBandNumberOfEntries";
+      reference
+        "Device.Ghn.Interface.{i}.SMMaskedBandNumberOfEntries";
+    }
+    leaf node-type-dm-config {
+      type boolean;
+      description
+        "Device.Ghn.Interface.{i}.NodeTypeDMConfig";
+      reference
+        "Device.Ghn.Interface.{i}.NodeTypeDMConfig";
+    }
+    leaf node-type-dm-status {
+      type boolean;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.NodeTypeDMStatus";
+      reference
+        "Device.Ghn.Interface.{i}.NodeTypeDMStatus";
+    }
+    leaf node-type-sc-status {
+      type boolean;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.NodeTypeSCStatus";
+      reference
+        "Device.Ghn.Interface.{i}.NodeTypeSCStatus";
+    }
+    leaf associated-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.AssociatedDeviceNumberOfEntries";
+      reference
+        "Device.Ghn.Interface.{i}.AssociatedDeviceNumberOfEntries";
+    }
+    leaf psm {
+      type uint32 {
+        range "min..max";
+      }
+      description
+        "Device.Ghn.Interface.{i}.PSM";
+      reference
+        "Device.Ghn.Interface.{i}.PSM";
+    }
+  }
+
+  grouping interface-associated-device-g {
+    description
+      "Grouping object for Device.Ghn.Interface.{i}.AssociatedDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.MACAddress";
+      reference
+        "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.MACAddress";
+    }
+    leaf device-id {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.DeviceId";
+      reference
+        "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.DeviceId";
+    }
+    leaf tx-phy-rate {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.TxPhyRate";
+      reference
+        "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.TxPhyRate";
+    }
+    leaf rx-phy-rate {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.RxPhyRate";
+      reference
+        "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.RxPhyRate";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.Active";
+      reference
+        "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.Active";
+    }
+  }
+
+  grouping interface-dm-info-g {
+    description
+      "Grouping object for Device.Ghn.Interface.{i}.DMInfo.";
+    leaf domain-name {
+      type string {
+        length "min..32";
+      }
+      description
+        "Device.Ghn.Interface.{i}.DMInfo.DomainName";
+      reference
+        "Device.Ghn.Interface.{i}.DMInfo.DomainName";
+    }
+    leaf domain-name-identifier {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.DMInfo.DomainNameIdentifier";
+      reference
+        "Device.Ghn.Interface.{i}.DMInfo.DomainNameIdentifier";
+    }
+    leaf domain-id {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.DMInfo.DomainId";
+      reference
+        "Device.Ghn.Interface.{i}.DMInfo.DomainId";
+    }
+    leaf mac-cycle-duration {
+      type uint32 {
+        range "0 | 10..200";
+      }
+      description
+        "Device.Ghn.Interface.{i}.DMInfo.MACCycleDuration";
+      reference
+        "Device.Ghn.Interface.{i}.DMInfo.MACCycleDuration";
+    }
+    leaf sc-device-id {
+      type uint32;
+      description
+        "Device.Ghn.Interface.{i}.DMInfo.SCDeviceId";
+      reference
+        "Device.Ghn.Interface.{i}.DMInfo.SCDeviceId";
+    }
+    leaf scmac-address {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.Ghn.Interface.{i}.DMInfo.SCMACAddress";
+      reference
+        "Device.Ghn.Interface.{i}.DMInfo.SCMACAddress";
+    }
+    leaf reregistration-time-period {
+      type uint32 {
+        range "5..63";
+      }
+      description
+        "Device.Ghn.Interface.{i}.DMInfo.ReregistrationTimePeriod";
+      reference
+        "Device.Ghn.Interface.{i}.DMInfo.ReregistrationTimePeriod";
+    }
+    leaf topology-periodic-interval {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "Device.Ghn.Interface.{i}.DMInfo.TopologyPeriodicInterval";
+      reference
+        "Device.Ghn.Interface.{i}.DMInfo.TopologyPeriodicInterval";
+    }
+    leaf min-supported-bandplan {
+      type uint32;
+      description
+        "Device.Ghn.Interface.{i}.DMInfo.MinSupportedBandplan";
+      reference
+        "Device.Ghn.Interface.{i}.DMInfo.MinSupportedBandplan";
+    }
+    leaf max-supported-bandplan {
+      type uint32;
+      description
+        "Device.Ghn.Interface.{i}.DMInfo.MaxSupportedBandplan";
+      reference
+        "Device.Ghn.Interface.{i}.DMInfo.MaxSupportedBandplan";
+    }
+  }
+
+  grouping interface-sc-info-g {
+    description
+      "Grouping object for Device.Ghn.Interface.{i}.SCInfo.";
+    leaf modes-supported {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.SCInfo.ModesSupported";
+      reference
+        "Device.Ghn.Interface.{i}.SCInfo.ModesSupported";
+    }
+    leaf mode-enabled {
+      type string;
+      description
+        "Device.Ghn.Interface.{i}.SCInfo.ModeEnabled";
+      reference
+        "Device.Ghn.Interface.{i}.SCInfo.ModeEnabled";
+    }
+    leaf mic-size {
+      type enumeration {
+        enum "4-byte MIC" {
+          description
+            "Enum Value - 4-byte MIC";
+        }
+        enum "8-byte MIC" {
+          description
+            "Enum Value - 8-byte MIC";
+        }
+        enum "16-byte MIC" {
+          description
+            "Enum Value - 16-byte MIC";
+        }
+      }
+      description
+        "Device.Ghn.Interface.{i}.SCInfo.MICSize";
+      reference
+        "Device.Ghn.Interface.{i}.SCInfo.MICSize";
+    }
+    leaf location {
+      type boolean;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.SCInfo.Location";
+      reference
+        "Device.Ghn.Interface.{i}.SCInfo.Location";
+    }
+  }
+
+  grouping interface-sm-masked-band-g {
+    description
+      "Grouping object for Device.Ghn.Interface.{i}.SMMaskedBand.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Ghn.Interface.{i}.SMMaskedBand.{i}.Enable";
+      reference
+        "Device.Ghn.Interface.{i}.SMMaskedBand.{i}.Enable";
+    }
+    leaf band-number {
+      type uint32;
+      description
+        "Device.Ghn.Interface.{i}.SMMaskedBand.{i}.BandNumber";
+      reference
+        "Device.Ghn.Interface.{i}.SMMaskedBand.{i}.BandNumber";
+    }
+    leaf start-sub-carrier {
+      type uint32;
+      description
+        "Device.Ghn.Interface.{i}.SMMaskedBand.{i}.StartSubCarrier";
+      reference
+        "Device.Ghn.Interface.{i}.SMMaskedBand.{i}.StartSubCarrier";
+    }
+    leaf stop-sub-carrier {
+      type uint32;
+      description
+        "Device.Ghn.Interface.{i}.SMMaskedBand.{i}.StopSubCarrier";
+      reference
+        "Device.Ghn.Interface.{i}.SMMaskedBand.{i}.StopSubCarrier";
+    }
+  }
+
+  grouping ghn-interface-stats-g {
+    description
+      "Grouping object for Device.Ghn.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+    leaf mgmt-bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.MgmtBytesSent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.MgmtBytesSent";
+    }
+    leaf mgmt-bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.MgmtBytesReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.MgmtBytesReceived";
+    }
+    leaf mgmt-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.MgmtPacketsSent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.MgmtPacketsSent";
+    }
+    leaf mgmt-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.MgmtPacketsReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.MgmtPacketsReceived";
+    }
+    leaf blocks-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.BlocksSent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.BlocksSent";
+    }
+    leaf blocks-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.BlocksReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.BlocksReceived";
+    }
+    leaf blocks-resent {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.BlocksResent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.BlocksResent";
+    }
+    leaf blocks-errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.BlocksErrorsReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.BlocksErrorsReceived";
+    }
+  }
+
+  grouping device-hpna-g {
+    description
+      "Grouping object for Device.HPNA.";
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.InterfaceNumberOfEntries";
+      reference
+        "Device.HPNA.InterfaceNumberOfEntries";
+    }
+  }
+
+  grouping hpna-diagnostics-phy-throughput-g {
+    description
+      "Grouping object for Device.HPNA.Diagnostics.PHYThroughput.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Canceled {
+          description
+            "Enum Value - Canceled";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error {
+          description
+            "Enum Value - Error";
+        }
+        enum Error_FailToEnableCert {
+          description
+            "Enum Value - Error_FailToEnableCert";
+        }
+        enum Error_CertCmdTimeout {
+          description
+            "Enum Value - Error_CertCmdTimeout";
+        }
+        enum Error_UnknownErr {
+          description
+            "Enum Value - Error_UnknownErr";
+        }
+        enum Error_UnsupportedOpcode {
+          description
+            "Enum Value - Error_UnsupportedOpcode";
+        }
+        enum Error_InvalidParam {
+          description
+            "Enum Value - Error_InvalidParam";
+        }
+        enum Error_UnsupportedCmdSegment {
+          description
+            "Enum Value - Error_UnsupportedCmdSegment";
+        }
+        enum Error_UnsupportedDataGen {
+          description
+            "Enum Value - Error_UnsupportedDataGen";
+        }
+        enum Error_InvalidSequence {
+          description
+            "Enum Value - Error_InvalidSequence";
+        }
+        enum Error_InvalidFrame {
+          description
+            "Enum Value - Error_InvalidFrame";
+        }
+        enum Eror_InvalidOpcode {
+          description
+            "Enum Value - Eror_InvalidOpcode";
+        }
+      }
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.DiagnosticsState";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.Interface";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.Interface";
+    }
+    leaf num-packets-in-burst {
+      type uint32;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.NumPacketsInBurst";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.NumPacketsInBurst";
+    }
+    leaf burst-interval {
+      type uint32;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.BurstInterval";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.BurstInterval";
+    }
+    leaf test-packet-payload-length {
+      type uint32 {
+        range "0..1480";
+      }
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.TestPacketPayloadLength";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.TestPacketPayloadLength";
+    }
+    leaf payload-encoding {
+      type uint32;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.PayloadEncoding";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.PayloadEncoding";
+    }
+    leaf payload-data-gen {
+      type uint32;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.PayloadDataGen";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.PayloadDataGen";
+    }
+    leaf payload-type {
+      type enumeration {
+        enum Pattern {
+          description
+            "Enum Value - Pattern";
+        }
+        enum IncrementByte {
+          description
+            "Enum Value - IncrementByte";
+        }
+      }
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.PayloadType";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.PayloadType";
+    }
+    leaf priority-level {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.PriorityLevel";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.PriorityLevel";
+    }
+    leaf result-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.ResultNumberOfEntries";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.ResultNumberOfEntries";
+    }
+  }
+
+  grouping diagnostics-phy-throughput-result-g {
+    description
+      "Grouping object for Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf src-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.SrcMACAddress";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.SrcMACAddress";
+    }
+    leaf dest-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.DestMACAddress";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.DestMACAddress";
+    }
+    leaf phy-rate {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.PHYRate";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.PHYRate";
+    }
+    leaf baud-rate {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.BaudRate";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.BaudRate";
+    }
+    leaf snr {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.SNR";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.SNR";
+    }
+    leaf packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.PacketsReceived";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.PacketsReceived";
+    }
+    leaf attenuation {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.Attenuation";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.Attenuation";
+    }
+  }
+
+  grouping hpna-diagnostics-performance-monitoring-g {
+    description
+      "Grouping object for Device.HPNA.Diagnostics.PerformanceMonitoring.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Canceled {
+          description
+            "Enum Value - Canceled";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error {
+          description
+            "Enum Value - Error";
+        }
+        enum Error_SampleIntervalTooSmall {
+          description
+            "Enum Value - Error_SampleIntervalTooSmall";
+        }
+      }
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.DiagnosticsState";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Interface";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Interface";
+    }
+    leaf sample-interval {
+      type uint32;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.SampleInterval";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.SampleInterval";
+    }
+  }
+
+  grouping diagnostics-performance-monitoring-channels-g {
+    description
+      "Grouping object for Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.";
+    leaf time-stamp {
+      type string;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.TimeStamp";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.TimeStamp";
+    }
+    leaf channel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.ChannelNumberOfEntries";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.ChannelNumberOfEntries";
+    }
+  }
+
+  grouping performance-monitoring-channels-channel-g {
+    description
+      "Grouping object for Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf host-src-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.HostSrcMACAddress";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.HostSrcMACAddress";
+    }
+    leaf host-dest-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.HostDestMACAddress";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.HostDestMACAddress";
+    }
+    leaf hpna-src-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.HPNASrcMACAddress";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.HPNASrcMACAddress";
+    }
+    leaf hpna-dest-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.HPNADestMACAddress";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.HPNADestMACAddress";
+    }
+    leaf phy-rate {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.PHYRate";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.PHYRate";
+    }
+    leaf baud-rate {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.BaudRate";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.BaudRate";
+    }
+    leaf snr {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.SNR";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.SNR";
+    }
+    leaf packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.PacketsSent";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.PacketsSent";
+    }
+    leaf packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.PacketsReceived";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.PacketsReceived";
+    }
+    leaf larq-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.LARQPacketsReceived";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.LARQPacketsReceived";
+    }
+    leaf flow-spec {
+      type string;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.FlowSpec";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.FlowSpec";
+    }
+  }
+
+  grouping diagnostics-performance-monitoring-nodes-g {
+    description
+      "Grouping object for Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.";
+    leaf current-start {
+      type string;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.CurrentStart";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.CurrentStart";
+    }
+    leaf current-end {
+      type string;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.CurrentEnd";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.CurrentEnd";
+    }
+    leaf node-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.NodeNumberOfEntries";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.NodeNumberOfEntries";
+    }
+  }
+
+  grouping performance-monitoring-nodes-node-g {
+    description
+      "Grouping object for Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MACAddress";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MACAddress";
+    }
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BytesSent";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BytesReceived";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsSent";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsReceived";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsSent";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsReceived";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MulticastPacketsSent";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MulticastPacketsReceived";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MulticastPacketsReceived";
+    }
+    leaf packets-crc-errored {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsCrcErrored";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsCrcErrored";
+    }
+    leaf packets-crc-errored-host {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsCrcErroredHost";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsCrcErroredHost";
+    }
+    leaf packets-short-errored {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsShortErrored";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsShortErrored";
+    }
+    leaf packets-short-errored-host {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsShortErroredHost";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsShortErroredHost";
+    }
+    leaf rx-packets-dropped {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.RxPacketsDropped";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.RxPacketsDropped";
+    }
+    leaf tx-packets-dropped {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.TxPacketsDropped";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.TxPacketsDropped";
+    }
+    leaf control-request-local {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ControlRequestLocal";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ControlRequestLocal";
+    }
+    leaf control-reply-local {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ControlReplyLocal";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ControlReplyLocal";
+    }
+    leaf control-request-remote {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ControlRequestRemote";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ControlRequestRemote";
+    }
+    leaf control-reply-remote {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ControlReplyRemote";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ControlReplyRemote";
+    }
+    leaf packets-sent-wire {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsSentWire";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsSentWire";
+    }
+    leaf broadcast-packets-sent-wire {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsSentWire";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsSentWire";
+    }
+    leaf multicast-packets-sent-wire {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MulticastPacketsSentWire";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MulticastPacketsSentWire";
+    }
+    leaf packets-internal-control {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsInternalControl";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsInternalControl";
+    }
+    leaf broadcast-packets-internal-control {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsInternalControl";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsInternalControl";
+    }
+    leaf packets-received-queued {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsReceivedQueued";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsReceivedQueued";
+    }
+    leaf packets-received-forward-unknown {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsReceivedForwardUnknown";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsReceivedForwardUnknown";
+    }
+    leaf node-utilization {
+      type uint32 {
+        range "0..1000";
+      }
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.NodeUtilization";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.NodeUtilization";
+    }
+  }
+
+  grouping hpna-interface-g {
+    description
+      "Grouping object for Device.HPNA.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.HPNA.Interface.{i}.Enable";
+      reference
+        "Device.HPNA.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Status";
+      reference
+        "Device.HPNA.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.HPNA.Interface.{i}.Alias";
+      reference
+        "Device.HPNA.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Name";
+      reference
+        "Device.HPNA.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.LastChange";
+      reference
+        "Device.HPNA.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.HPNA.Interface.{i}.LowerLayers";
+      reference
+        "Device.HPNA.Interface.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Upstream";
+      reference
+        "Device.HPNA.Interface.{i}.Upstream";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.MACAddress";
+      reference
+        "Device.HPNA.Interface.{i}.MACAddress";
+    }
+    leaf firmware-version {
+      type string;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.FirmwareVersion";
+      reference
+        "Device.HPNA.Interface.{i}.FirmwareVersion";
+    }
+    leaf node-id {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.NodeID";
+      reference
+        "Device.HPNA.Interface.{i}.NodeID";
+    }
+    leaf is-master {
+      type boolean;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.IsMaster";
+      reference
+        "Device.HPNA.Interface.{i}.IsMaster";
+    }
+    leaf synced {
+      type boolean;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Synced";
+      reference
+        "Device.HPNA.Interface.{i}.Synced";
+    }
+    leaf total-sync-time {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.TotalSyncTime";
+      reference
+        "Device.HPNA.Interface.{i}.TotalSyncTime";
+    }
+    leaf max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.MaxBitRate";
+      reference
+        "Device.HPNA.Interface.{i}.MaxBitRate";
+    }
+    leaf network-utilization {
+      type uint32 {
+        range "0..1000";
+      }
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.NetworkUtilization";
+      reference
+        "Device.HPNA.Interface.{i}.NetworkUtilization";
+    }
+    leaf possible-connection-types {
+      type string;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.PossibleConnectionTypes";
+      reference
+        "Device.HPNA.Interface.{i}.PossibleConnectionTypes";
+    }
+    leaf connection-type {
+      type string;
+      description
+        "Device.HPNA.Interface.{i}.ConnectionType";
+      reference
+        "Device.HPNA.Interface.{i}.ConnectionType";
+    }
+    leaf possible-spectral-modes {
+      type string;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.PossibleSpectralModes";
+      reference
+        "Device.HPNA.Interface.{i}.PossibleSpectralModes";
+    }
+    leaf spectral-mode {
+      type string;
+      description
+        "Device.HPNA.Interface.{i}.SpectralMode";
+      reference
+        "Device.HPNA.Interface.{i}.SpectralMode";
+    }
+    leaf mtu {
+      type uint32;
+      description
+        "Device.HPNA.Interface.{i}.MTU";
+      reference
+        "Device.HPNA.Interface.{i}.MTU";
+    }
+    leaf noise-margin {
+      type uint32;
+      description
+        "Device.HPNA.Interface.{i}.NoiseMargin";
+      reference
+        "Device.HPNA.Interface.{i}.NoiseMargin";
+    }
+    leaf default-non-larqper {
+      type uint32;
+      description
+        "Device.HPNA.Interface.{i}.DefaultNonLARQPER";
+      reference
+        "Device.HPNA.Interface.{i}.DefaultNonLARQPER";
+    }
+    leaf larq-enable {
+      type boolean;
+      description
+        "Device.HPNA.Interface.{i}.LARQEnable";
+      reference
+        "Device.HPNA.Interface.{i}.LARQEnable";
+    }
+    leaf min-multicast-rate {
+      type uint32;
+      description
+        "Device.HPNA.Interface.{i}.MinMulticastRate";
+      reference
+        "Device.HPNA.Interface.{i}.MinMulticastRate";
+    }
+    leaf neg-multicast-rate {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.NegMulticastRate";
+      reference
+        "Device.HPNA.Interface.{i}.NegMulticastRate";
+    }
+    leaf master-selection-mode {
+      type enumeration {
+        enum Automatic {
+          description
+            "Enum Value - Automatic";
+        }
+        enum ForceEndpoint {
+          description
+            "Enum Value - ForceEndpoint";
+        }
+        enum ForceMaster {
+          description
+            "Enum Value - ForceMaster";
+        }
+      }
+      description
+        "Device.HPNA.Interface.{i}.MasterSelectionMode";
+      reference
+        "Device.HPNA.Interface.{i}.MasterSelectionMode";
+    }
+    leaf associated-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.AssociatedDeviceNumberOfEntries";
+      reference
+        "Device.HPNA.Interface.{i}.AssociatedDeviceNumberOfEntries";
+    }
+  }
+
+  grouping hpna-interface-associated-device-g {
+    description
+      "Grouping object for Device.HPNA.Interface.{i}.AssociatedDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.MACAddress";
+      reference
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.MACAddress";
+    }
+    leaf node-id {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.NodeID";
+      reference
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.NodeID";
+    }
+    leaf is-master {
+      type boolean;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.IsMaster";
+      reference
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.IsMaster";
+    }
+    leaf synced {
+      type boolean;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.Synced";
+      reference
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.Synced";
+    }
+    leaf total-sync-time {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.TotalSyncTime";
+      reference
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.TotalSyncTime";
+    }
+    leaf max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.MaxBitRate";
+      reference
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.MaxBitRate";
+    }
+    leaf phy-diagnostics-enable {
+      type boolean;
+      description
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.PHYDiagnosticsEnable";
+      reference
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.PHYDiagnosticsEnable";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.Active";
+      reference
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.Active";
+    }
+  }
+
+  grouping interface-qo-s-g {
+    description
+      "Grouping object for Device.HPNA.Interface.{i}.QoS.";
+    leaf flow-spec-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpecNumberOfEntries";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpecNumberOfEntries";
+    }
+  }
+
+  grouping qo-s-flow-spec-g {
+    description
+      "Grouping object for Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Enable";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Status";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Alias";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Alias";
+    }
+    leaf traffic-classes {
+      type uint32;
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.TrafficClasses";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.TrafficClasses";
+    }
+    leaf flow-type {
+      type enumeration {
+        enum CBR {
+          description
+            "Enum Value - CBR";
+        }
+        enum VBR {
+          description
+            "Enum Value - VBR";
+        }
+        enum VBR-NRT {
+          description
+            "Enum Value - VBR-NRT";
+        }
+        enum BE {
+          description
+            "Enum Value - BE";
+        }
+      }
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.FlowType";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.FlowType";
+    }
+    leaf priority {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Priority";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Priority";
+    }
+    leaf latency {
+      type uint32 {
+        range "0..999";
+      }
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Latency";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Latency";
+    }
+    leaf jitter {
+      type uint32 {
+        range "0..999";
+      }
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Jitter";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Jitter";
+    }
+    leaf packet-size {
+      type uint32 {
+        range "0..max";
+      }
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.PacketSize";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.PacketSize";
+    }
+    leaf min-rate {
+      type uint32;
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.MinRate";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.MinRate";
+    }
+    leaf avg-rate {
+      type uint32;
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.AvgRate";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.AvgRate";
+    }
+    leaf max-rate {
+      type uint32;
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.MaxRate";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.MaxRate";
+    }
+    leaf per {
+      type uint32;
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.PER";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.PER";
+    }
+    leaf timeout {
+      type uint32;
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Timeout";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Timeout";
+    }
+  }
+
+  grouping hpna-interface-stats-g {
+    description
+      "Grouping object for Device.HPNA.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping device-home-plug-g {
+    description
+      "Grouping object for Device.HomePlug.";
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.InterfaceNumberOfEntries";
+      reference
+        "Device.HomePlug.InterfaceNumberOfEntries";
+    }
+  }
+
+  grouping home-plug-interface-g {
+    description
+      "Grouping object for Device.HomePlug.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.HomePlug.Interface.{i}.Enable";
+      reference
+        "Device.HomePlug.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Status";
+      reference
+        "Device.HomePlug.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.HomePlug.Interface.{i}.Alias";
+      reference
+        "Device.HomePlug.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Name";
+      reference
+        "Device.HomePlug.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.LastChange";
+      reference
+        "Device.HomePlug.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.HomePlug.Interface.{i}.LowerLayers";
+      reference
+        "Device.HomePlug.Interface.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Upstream";
+      reference
+        "Device.HomePlug.Interface.{i}.Upstream";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.MACAddress";
+      reference
+        "Device.HomePlug.Interface.{i}.MACAddress";
+    }
+    leaf logical-network {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.HomePlug.Interface.{i}.LogicalNetwork";
+      reference
+        "Device.HomePlug.Interface.{i}.LogicalNetwork";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Version";
+      reference
+        "Device.HomePlug.Interface.{i}.Version";
+    }
+    leaf firmware-version {
+      type string;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.FirmwareVersion";
+      reference
+        "Device.HomePlug.Interface.{i}.FirmwareVersion";
+    }
+    leaf force-c-co {
+      type boolean;
+      description
+        "Device.HomePlug.Interface.{i}.ForceCCo";
+      reference
+        "Device.HomePlug.Interface.{i}.ForceCCo";
+    }
+    leaf other-networks-present {
+      type string;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.OtherNetworksPresent";
+      reference
+        "Device.HomePlug.Interface.{i}.OtherNetworksPresent";
+    }
+    leaf max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.MaxBitRate";
+      reference
+        "Device.HomePlug.Interface.{i}.MaxBitRate";
+    }
+    leaf associated-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.AssociatedDeviceNumberOfEntries";
+      reference
+        "Device.HomePlug.Interface.{i}.AssociatedDeviceNumberOfEntries";
+    }
+  }
+
+  grouping home-plug-interface-associated-device-g {
+    description
+      "Grouping object for Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.MACAddress";
+      reference
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.MACAddress";
+    }
+    leaf tx-phy-rate {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.TxPhyRate";
+      reference
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.TxPhyRate";
+    }
+    leaf rx-phy-rate {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.RxPhyRate";
+      reference
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.RxPhyRate";
+    }
+    leaf snr-per-tone {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.SNRPerTone";
+      reference
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.SNRPerTone";
+    }
+    leaf avg-attenuation {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.AvgAttenuation";
+      reference
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.AvgAttenuation";
+    }
+    leaf end-station-ma-cs {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.EndStationMACs";
+      reference
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.EndStationMACs";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.Active";
+      reference
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.Active";
+    }
+  }
+
+  grouping home-plug-interface-stats-g {
+    description
+      "Grouping object for Device.HomePlug.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+    leaf mpdu-tx-ack {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.MPDUTxAck";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.MPDUTxAck";
+    }
+    leaf mpdu-tx-col {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.MPDUTxCol";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.MPDUTxCol";
+    }
+    leaf mpdu-tx-failed {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.MPDUTxFailed";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.MPDUTxFailed";
+    }
+    leaf mpdu-rx-ack {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.MPDURxAck";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.MPDURxAck";
+    }
+    leaf mpdu-rx-failed {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.MPDURxFailed";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.MPDURxFailed";
+    }
+  }
+
+  grouping device-hosts-g {
+    description
+      "Grouping object for Device.Hosts.";
+    leaf host-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Hosts.HostNumberOfEntries";
+      reference
+        "Device.Hosts.HostNumberOfEntries";
+    }
+  }
+
+  grouping hosts-host-g {
+    description
+      "Grouping object for Device.Hosts.Host.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Hosts.Host.{i}.Alias";
+      reference
+        "Device.Hosts.Host.{i}.Alias";
+    }
+    leaf phys-address {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.PhysAddress";
+      reference
+        "Device.Hosts.Host.{i}.PhysAddress";
+    }
+    leaf ip-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.Hosts.Host.{i}.IPAddress";
+      reference
+        "Device.Hosts.Host.{i}.IPAddress";
+    }
+    leaf address-source {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.AddressSource";
+      reference
+        "Device.Hosts.Host.{i}.AddressSource";
+    }
+    leaf dhcp-client {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.DHCPClient";
+      reference
+        "Device.Hosts.Host.{i}.DHCPClient";
+    }
+    leaf lease-time-remaining {
+      type int32;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.LeaseTimeRemaining";
+      reference
+        "Device.Hosts.Host.{i}.LeaseTimeRemaining";
+    }
+    leaf associated-device {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.AssociatedDevice";
+      reference
+        "Device.Hosts.Host.{i}.AssociatedDevice";
+    }
+    leaf layer1-interface {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.Layer1Interface";
+      reference
+        "Device.Hosts.Host.{i}.Layer1Interface";
+    }
+    leaf layer3-interface {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.Layer3Interface";
+      reference
+        "Device.Hosts.Host.{i}.Layer3Interface";
+    }
+    leaf vendor-class-id {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.VendorClassID";
+      reference
+        "Device.Hosts.Host.{i}.VendorClassID";
+    }
+    leaf client-id {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.ClientID";
+      reference
+        "Device.Hosts.Host.{i}.ClientID";
+    }
+    leaf user-class-id {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.UserClassID";
+      reference
+        "Device.Hosts.Host.{i}.UserClassID";
+    }
+    leaf host-name {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.HostName";
+      reference
+        "Device.Hosts.Host.{i}.HostName";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.Active";
+      reference
+        "Device.Hosts.Host.{i}.Active";
+    }
+    leaf active-last-change {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.ActiveLastChange";
+      reference
+        "Device.Hosts.Host.{i}.ActiveLastChange";
+    }
+    leaf ipv4-address-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.IPv4AddressNumberOfEntries";
+      reference
+        "Device.Hosts.Host.{i}.IPv4AddressNumberOfEntries";
+    }
+    leaf ipv6-address-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.IPv6AddressNumberOfEntries";
+      reference
+        "Device.Hosts.Host.{i}.IPv6AddressNumberOfEntries";
+    }
+  }
+
+  grouping host-ipv4-address-g {
+    description
+      "Grouping object for Device.Hosts.Host.{i}.IPv4Address.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf ip-address {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.Hosts.Host.{i}.IPv4Address.{i}.IPAddress";
+      reference
+        "Device.Hosts.Host.{i}.IPv4Address.{i}.IPAddress";
+    }
+  }
+
+  grouping host-ipv6-address-g {
+    description
+      "Grouping object for Device.Hosts.Host.{i}.IPv6Address.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf ip-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.Hosts.Host.{i}.IPv6Address.{i}.IPAddress";
+      reference
+        "Device.Hosts.Host.{i}.IPv6Address.{i}.IPAddress";
+    }
+  }
+
+  grouping host-wan-stats-g {
+    description
+      "Grouping object for Device.Hosts.Host.{i}.WANStats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.WANStats.BytesSent";
+      reference
+        "Device.Hosts.Host.{i}.WANStats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.WANStats.BytesReceived";
+      reference
+        "Device.Hosts.Host.{i}.WANStats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.WANStats.PacketsSent";
+      reference
+        "Device.Hosts.Host.{i}.WANStats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.WANStats.PacketsReceived";
+      reference
+        "Device.Hosts.Host.{i}.WANStats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.WANStats.ErrorsSent";
+      reference
+        "Device.Hosts.Host.{i}.WANStats.ErrorsSent";
+    }
+    leaf retrans-count {
+      type uint32;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.WANStats.RetransCount";
+      reference
+        "Device.Hosts.Host.{i}.WANStats.RetransCount";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.WANStats.DiscardPacketsSent";
+      reference
+        "Device.Hosts.Host.{i}.WANStats.DiscardPacketsSent";
+    }
+  }
+
+  grouping device-ieee1905-g {
+    description
+      "Grouping object for Device.IEEE1905.";
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.Version";
+      reference
+        "Device.IEEE1905.Version";
+    }
+  }
+
+  grouping ieee1905-al-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.";
+    leaf ieee1905-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.IEEE1905Id";
+      reference
+        "Device.IEEE1905.AL.IEEE1905Id";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Status";
+      reference
+        "Device.IEEE1905.AL.Status";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.LastChange";
+      reference
+        "Device.IEEE1905.AL.LastChange";
+    }
+    leaf lower-layers {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.LowerLayers";
+      reference
+        "Device.IEEE1905.AL.LowerLayers";
+    }
+    leaf registrar-freq-band {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.RegistrarFreqBand";
+      reference
+        "Device.IEEE1905.AL.RegistrarFreqBand";
+    }
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.InterfaceNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.InterfaceNumberOfEntries";
+    }
+  }
+
+  grouping al-forwarding-table-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.ForwardingTable.";
+    leaf set-forwarding-enabled {
+      type boolean;
+      description
+        "Device.IEEE1905.AL.ForwardingTable.SetForwardingEnabled";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.SetForwardingEnabled";
+    }
+    leaf forwarding-rule-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRuleNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRuleNumberOfEntries";
+    }
+  }
+
+  grouping forwarding-table-forwarding-rule-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf interface-list {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.InterfaceList";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.InterfaceList";
+    }
+    leaf mac-destination-address {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.MACDestinationAddress";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.MACDestinationAddress";
+    }
+    leaf mac-destination-address-flag {
+      type boolean;
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.MACDestinationAddressFlag";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.MACDestinationAddressFlag";
+    }
+    leaf mac-source-address {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.MACSourceAddress";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.MACSourceAddress";
+    }
+    leaf mac-source-address-flag {
+      type boolean;
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.MACSourceAddressFlag";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.MACSourceAddressFlag";
+    }
+    leaf ether-type {
+      type uint32;
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.EtherType";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.EtherType";
+    }
+    leaf ether-type-flag {
+      type boolean;
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.EtherTypeFlag";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.EtherTypeFlag";
+    }
+    leaf vid {
+      type uint32 {
+        range "0..4095";
+      }
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.Vid";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.Vid";
+    }
+    leaf vid-flag {
+      type boolean;
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.VidFlag";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.VidFlag";
+    }
+    leaf pcp {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.PCP";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.PCP";
+    }
+    leaf pcp-flag {
+      type boolean;
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.PCPFlag";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.PCPFlag";
+    }
+  }
+
+  grouping al-interface-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf interface-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.InterfaceId";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.InterfaceId";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Status";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Status";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.LastChange";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.LowerLayers";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.LowerLayers";
+    }
+    leaf interface-stack-reference {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.InterfaceStackReference";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.InterfaceStackReference";
+    }
+    leaf media-type {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.MediaType";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.MediaType";
+    }
+    leaf generic-phy-oui {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.GenericPhyOUI";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.GenericPhyOUI";
+    }
+    leaf generic-phy-variant {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.GenericPhyVariant";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.GenericPhyVariant";
+    }
+    leaf generic-phy-url {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.GenericPhyURL";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.GenericPhyURL";
+    }
+    leaf set-intf-power-state-enabled {
+      type boolean;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.SetIntfPowerStateEnabled";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.SetIntfPowerStateEnabled";
+    }
+    leaf power-state {
+      type enumeration {
+        enum On {
+          description
+            "Enum Value - On";
+        }
+        enum Power_Save {
+          description
+            "Enum Value - Power_Save";
+        }
+        enum Off {
+          description
+            "Enum Value - Off";
+        }
+        enum Unsupported {
+          description
+            "Enum Value - Unsupported";
+        }
+      }
+      description
+        "Device.IEEE1905.AL.Interface.{i}.PowerState";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.PowerState";
+    }
+    leaf vendor-properties-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.VendorPropertiesNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.VendorPropertiesNumberOfEntries";
+    }
+    leaf link-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.LinkNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.LinkNumberOfEntries";
+    }
+  }
+
+  grouping interface-link-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.Interface.{i}.Link.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf interface-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.InterfaceId";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.InterfaceId";
+    }
+    leaf ieee1905-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.IEEE1905Id";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.IEEE1905Id";
+    }
+    leaf media-type {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.MediaType";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.MediaType";
+    }
+    leaf generic-phy-oui {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.GenericPhyOUI";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.GenericPhyOUI";
+    }
+    leaf generic-phy-variant {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.GenericPhyVariant";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.GenericPhyVariant";
+    }
+    leaf generic-phy-url {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.GenericPhyURL";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.GenericPhyURL";
+    }
+  }
+
+  grouping link-metric-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.";
+    leaf ieee802dot1-bridge {
+      type boolean;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.IEEE802dot1Bridge";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.IEEE802dot1Bridge";
+    }
+    leaf packet-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.PacketErrors";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.PacketErrors";
+    }
+    leaf packet-errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.PacketErrorsReceived";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.PacketErrorsReceived";
+    }
+    leaf transmitted-packets {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.TransmittedPackets";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.TransmittedPackets";
+    }
+    leaf packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.PacketsReceived";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.PacketsReceived";
+    }
+    leaf mac-throughput-capacity {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.MACThroughputCapacity";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.MACThroughputCapacity";
+    }
+    leaf link-availability {
+      type uint32 {
+        range "0..100";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.LinkAvailability";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.LinkAvailability";
+    }
+    leaf phy-rate {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.PHYRate";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.PHYRate";
+    }
+    leaf rssi {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.RSSI";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.RSSI";
+    }
+  }
+
+  grouping interface-vendor-properties-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.Interface.{i}.VendorProperties.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf oui {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.VendorProperties.{i}.OUI";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.VendorProperties.{i}.OUI";
+    }
+    leaf information {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.VendorProperties.{i}.Information";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.VendorProperties.{i}.Information";
+    }
+  }
+
+  grouping al-network-topology-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.Enable";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.Status";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.Status";
+    }
+    leaf max-change-log-entries {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IEEE1905.AL.NetworkTopology.MaxChangeLogEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.MaxChangeLogEntries";
+    }
+    leaf last-change {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.LastChange";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.LastChange";
+    }
+    leaf ieee1905-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905DeviceNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905DeviceNumberOfEntries";
+    }
+    leaf change-log-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLogNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLogNumberOfEntries";
+    }
+  }
+
+  grouping network-topology-change-log-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf time-stamp {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.TimeStamp";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.TimeStamp";
+    }
+    leaf event-type {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.EventType";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.EventType";
+    }
+    leaf reporter-device-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.ReporterDeviceId";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.ReporterDeviceId";
+    }
+    leaf reporter-interface-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.ReporterInterfaceId";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.ReporterInterfaceId";
+    }
+    leaf neighbor-type {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.NeighborType";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.NeighborType";
+    }
+    leaf neighbor-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.NeighborId";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.NeighborId";
+    }
+  }
+
+  grouping network-topology-ieee1905-device-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf ieee1905-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Id";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Id";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Version";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Version";
+    }
+    leaf registrar-freq-band {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.RegistrarFreqBand";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.RegistrarFreqBand";
+    }
+    leaf friendly-name {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.FriendlyName";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.FriendlyName";
+    }
+    leaf manufacturer-name {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.ManufacturerName";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.ManufacturerName";
+    }
+    leaf manufacturer-model {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.ManufacturerModel";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.ManufacturerModel";
+    }
+    leaf control-url {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.ControlURL";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.ControlURL";
+    }
+    leaf vendor-properties-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorPropertiesNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorPropertiesNumberOfEntries";
+    }
+    leaf ipv4-address-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4AddressNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4AddressNumberOfEntries";
+    }
+    leaf ipv6-address-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6AddressNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6AddressNumberOfEntries";
+    }
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.InterfaceNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.InterfaceNumberOfEntries";
+    }
+    leaf non-ieee1905-neighbor-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905NeighborNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905NeighborNumberOfEntries";
+    }
+    leaf ieee1905-neighbor-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905NeighborNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905NeighborNumberOfEntries";
+    }
+    leaf l2-neighbor-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2NeighborNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2NeighborNumberOfEntries";
+    }
+    leaf bridging-tuple-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.BridgingTupleNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.BridgingTupleNumberOfEntries";
+    }
+  }
+
+  grouping ieee1905-device-bridging-tuple-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.BridgingTuple.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf interface-list {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.BridgingTuple.{i}.InterfaceList";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.BridgingTuple.{i}.InterfaceList";
+    }
+  }
+
+  grouping ieee1905-device-ieee1905-neighbor-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf local-interface {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.LocalInterface";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.LocalInterface";
+    }
+    leaf neighbor-device-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.NeighborDeviceId";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.NeighborDeviceId";
+    }
+    leaf metric-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.MetricNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.MetricNumberOfEntries";
+    }
+  }
+
+  grouping ieee1905-neighbor-metric-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf neighbor-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.NeighborMACAddress";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.NeighborMACAddress";
+    }
+    leaf ieee802dot1-bridge {
+      type boolean;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.IEEE802dot1Bridge";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.IEEE802dot1Bridge";
+    }
+    leaf packet-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.PacketErrors";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.PacketErrors";
+    }
+    leaf packet-errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.PacketErrorsReceived";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.PacketErrorsReceived";
+    }
+    leaf transmitted-packets {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.TransmittedPackets";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.TransmittedPackets";
+    }
+    leaf packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.PacketsReceived";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.PacketsReceived";
+    }
+    leaf mac-throughput-capacity {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.MACThroughputCapacity";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.MACThroughputCapacity";
+    }
+    leaf link-availability {
+      type uint32 {
+        range "0..100";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.LinkAvailability";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.LinkAvailability";
+    }
+    leaf phy-rate {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.PHYRate";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.PHYRate";
+    }
+    leaf rssi {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.RSSI";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.RSSI";
+    }
+  }
+
+  grouping ieee1905-device-ipv4-address-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.MACAddress";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.MACAddress";
+    }
+    leaf ipv4-address {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.IPv4Address";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.IPv4Address";
+    }
+    leaf ipv4-address-type {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.IPv4AddressType";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.IPv4AddressType";
+    }
+    leaf dhcp-server {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.DHCPServer";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.DHCPServer";
+    }
+  }
+
+  grouping ieee1905-device-ipv6-address-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.MACAddress";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.MACAddress";
+    }
+    leaf ipv6-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.IPv6Address";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.IPv6Address";
+    }
+    leaf ipv6-address-type {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.IPv6AddressType";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.IPv6AddressType";
+    }
+    leaf ipv6-address-origin {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.IPv6AddressOrigin";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.IPv6AddressOrigin";
+    }
+  }
+
+  grouping ieee1905-device-interface-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf interface-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.InterfaceId";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.InterfaceId";
+    }
+    leaf media-type {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.MediaType";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.MediaType";
+    }
+    leaf power-state {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.PowerState";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.PowerState";
+    }
+    leaf generic-phy-oui {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.GenericPhyOUI";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.GenericPhyOUI";
+    }
+    leaf generic-phy-variant {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.GenericPhyVariant";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.GenericPhyVariant";
+    }
+    leaf generic-phy-url {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.GenericPhyURL";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.GenericPhyURL";
+    }
+    leaf network-membership {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.NetworkMembership";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.NetworkMembership";
+    }
+    leaf role {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.Role";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.Role";
+    }
+    leaf ap-channel-band {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.APChannelBand";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.APChannelBand";
+    }
+    leaf frequency-index1 {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.FrequencyIndex1";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.FrequencyIndex1";
+    }
+    leaf frequency-index2 {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.FrequencyIndex2";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.FrequencyIndex2";
+    }
+  }
+
+  grouping ieee1905-device-l2-neighbor-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2Neighbor.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf local-interface {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2Neighbor.{i}.LocalInterface";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2Neighbor.{i}.LocalInterface";
+    }
+    leaf neighbor-interface-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2Neighbor.{i}.NeighborInterfaceId";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2Neighbor.{i}.NeighborInterfaceId";
+    }
+    leaf behind-interface-ids {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2Neighbor.{i}.BehindInterfaceIds";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2Neighbor.{i}.BehindInterfaceIds";
+    }
+  }
+
+  grouping ieee1905-device-non-ieee1905-neighbor-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905Neighbor.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf local-interface {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905Neighbor.{i}.LocalInterface";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905Neighbor.{i}.LocalInterface";
+    }
+    leaf neighbor-interface-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905Neighbor.{i}.NeighborInterfaceId";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905Neighbor.{i}.NeighborInterfaceId";
+    }
+  }
+
+  grouping ieee1905-device-vendor-properties-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorProperties.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf message-type {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorProperties.{i}.MessageType";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorProperties.{i}.MessageType";
+    }
+    leaf oui {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorProperties.{i}.OUI";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorProperties.{i}.OUI";
+    }
+    leaf information {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorProperties.{i}.Information";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorProperties.{i}.Information";
+    }
+  }
+
+  grouping al-networking-registrar-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkingRegistrar.";
+    leaf registrar2dot4 {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkingRegistrar.Registrar2dot4";
+      reference
+        "Device.IEEE1905.AL.NetworkingRegistrar.Registrar2dot4";
+    }
+    leaf registrar5 {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkingRegistrar.Registrar5";
+      reference
+        "Device.IEEE1905.AL.NetworkingRegistrar.Registrar5";
+    }
+    leaf registrar60 {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkingRegistrar.Registrar60";
+      reference
+        "Device.IEEE1905.AL.NetworkingRegistrar.Registrar60";
+    }
+  }
+
+  grouping al-security-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.Security.";
+    leaf setup-method {
+      type enumeration {
+        enum UCPK {
+          description
+            "Enum Value - UCPK";
+        }
+        enum PBC {
+          description
+            "Enum Value - PBC";
+        }
+        enum NFCNK {
+          description
+            "Enum Value - NFCNK";
+        }
+      }
+      description
+        "Device.IEEE1905.AL.Security.SetupMethod";
+      reference
+        "Device.IEEE1905.AL.Security.SetupMethod";
+    }
+  }
+
+  grouping device-ieee8021x-g {
+    description
+      "Grouping object for Device.IEEE8021x.";
+    leaf supplicant-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.SupplicantNumberOfEntries";
+      reference
+        "Device.IEEE8021x.SupplicantNumberOfEntries";
+    }
+  }
+
+  grouping ieee8021x-supplicant-g {
+    description
+      "Grouping object for Device.IEEE8021x.Supplicant.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Enable";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Status";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Alias";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Interface";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Interface";
+    }
+    leaf pae-state {
+      type string;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.PAEState";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.PAEState";
+    }
+    leaf eap-identity {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IEEE8021x.Supplicant.{i}.EAPIdentity";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.EAPIdentity";
+    }
+    leaf max-start {
+      type uint32 {
+        range "1..10";
+      }
+      description
+        "Device.IEEE8021x.Supplicant.{i}.MaxStart";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.MaxStart";
+    }
+    leaf start-period {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IEEE8021x.Supplicant.{i}.StartPeriod";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.StartPeriod";
+    }
+    leaf held-period {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IEEE8021x.Supplicant.{i}.HeldPeriod";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.HeldPeriod";
+    }
+    leaf auth-period {
+      type uint32;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.AuthPeriod";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.AuthPeriod";
+    }
+    leaf authentication-capabilities {
+      type string;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.AuthenticationCapabilities";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.AuthenticationCapabilities";
+    }
+    leaf start-failure-policy {
+      type enumeration {
+        enum FailAuthentication {
+          description
+            "Enum Value - FailAuthentication";
+        }
+        enum AssumeAuthentication {
+          description
+            "Enum Value - AssumeAuthentication";
+        }
+      }
+      description
+        "Device.IEEE8021x.Supplicant.{i}.StartFailurePolicy";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.StartFailurePolicy";
+    }
+    leaf authentication-success-policy {
+      type enumeration {
+        enum NoAction {
+          description
+            "Enum Value - NoAction";
+        }
+        enum RenewConnection {
+          description
+            "Enum Value - RenewConnection";
+        }
+      }
+      description
+        "Device.IEEE8021x.Supplicant.{i}.AuthenticationSuccessPolicy";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.AuthenticationSuccessPolicy";
+    }
+  }
+
+  grouping supplicant-eapm-d5-g {
+    description
+      "Grouping object for Device.IEEE8021x.Supplicant.{i}.EAPMD5.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.EAPMD5.Enable";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.EAPMD5.Enable";
+    }
+  }
+
+  grouping supplicant-eaptls-g {
+    description
+      "Grouping object for Device.IEEE8021x.Supplicant.{i}.EAPTLS.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.EAPTLS.Enable";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.EAPTLS.Enable";
+    }
+    leaf mutual-authentication-enable {
+      type boolean;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.EAPTLS.MutualAuthenticationEnable";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.EAPTLS.MutualAuthenticationEnable";
+    }
+  }
+
+  grouping supplicant-stats-g {
+    description
+      "Grouping object for Device.IEEE8021x.Supplicant.{i}.Stats.";
+    leaf received-frames {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.ReceivedFrames";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.ReceivedFrames";
+    }
+    leaf transmitted-frames {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.TransmittedFrames";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.TransmittedFrames";
+    }
+    leaf transmitted-start-frames {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.TransmittedStartFrames";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.TransmittedStartFrames";
+    }
+    leaf transmitted-logoff-frames {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.TransmittedLogoffFrames";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.TransmittedLogoffFrames";
+    }
+    leaf transmitted-response-id-frames {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.TransmittedResponseIdFrames";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.TransmittedResponseIdFrames";
+    }
+    leaf transmitted-response-frames {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.TransmittedResponseFrames";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.TransmittedResponseFrames";
+    }
+    leaf received-request-id-frames {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.ReceivedRequestIdFrames";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.ReceivedRequestIdFrames";
+    }
+    leaf received-request-frames {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.ReceivedRequestFrames";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.ReceivedRequestFrames";
+    }
+    leaf received-invalid-frames {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.ReceivedInvalidFrames";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.ReceivedInvalidFrames";
+    }
+    leaf received-length-error-frames {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.ReceivedLengthErrorFrames";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.ReceivedLengthErrorFrames";
+    }
+    leaf last-frame-version {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.LastFrameVersion";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.LastFrameVersion";
+    }
+    leaf last-frame-source-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.LastFrameSourceMACAddress";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.LastFrameSourceMACAddress";
+    }
+  }
+
+  grouping device-ip-g {
+    description
+      "Grouping object for Device.IP.";
+    leaf ipv4-capable {
+      type boolean;
+      config false;
+      description
+        "Device.IP.IPv4Capable";
+      reference
+        "Device.IP.IPv4Capable";
+    }
+    leaf ipv4-enable {
+      type boolean;
+      description
+        "Device.IP.IPv4Enable";
+      reference
+        "Device.IP.IPv4Enable";
+    }
+    leaf ipv4-status {
+      type string;
+      config false;
+      description
+        "Device.IP.IPv4Status";
+      reference
+        "Device.IP.IPv4Status";
+    }
+    leaf ipv6-capable {
+      type boolean;
+      config false;
+      description
+        "Device.IP.IPv6Capable";
+      reference
+        "Device.IP.IPv6Capable";
+    }
+    leaf ipv6-enable {
+      type boolean;
+      description
+        "Device.IP.IPv6Enable";
+      reference
+        "Device.IP.IPv6Enable";
+    }
+    leaf ipv6-status {
+      type string;
+      config false;
+      description
+        "Device.IP.IPv6Status";
+      reference
+        "Device.IP.IPv6Status";
+    }
+    leaf ula-prefix {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.IP.ULAPrefix";
+      reference
+        "Device.IP.ULAPrefix";
+    }
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.InterfaceNumberOfEntries";
+      reference
+        "Device.IP.InterfaceNumberOfEntries";
+    }
+    leaf active-port-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.ActivePortNumberOfEntries";
+      reference
+        "Device.IP.ActivePortNumberOfEntries";
+    }
+  }
+
+  grouping ip-active-port-g {
+    description
+      "Grouping object for Device.IP.ActivePort.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf local-ip-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IP.ActivePort.{i}.LocalIPAddress";
+      reference
+        "Device.IP.ActivePort.{i}.LocalIPAddress";
+    }
+    leaf local-port {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.IP.ActivePort.{i}.LocalPort";
+      reference
+        "Device.IP.ActivePort.{i}.LocalPort";
+    }
+    leaf remote-ip-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IP.ActivePort.{i}.RemoteIPAddress";
+      reference
+        "Device.IP.ActivePort.{i}.RemoteIPAddress";
+    }
+    leaf remote-port {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.IP.ActivePort.{i}.RemotePort";
+      reference
+        "Device.IP.ActivePort.{i}.RemotePort";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IP.ActivePort.{i}.Status";
+      reference
+        "Device.IP.ActivePort.{i}.Status";
+    }
+  }
+
+  grouping ip-diagnostics-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.";
+    leaf ipv4-ping-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv4PingSupported";
+      reference
+        "Device.IP.Diagnostics.IPv4PingSupported";
+    }
+    leaf ipv6-ping-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv6PingSupported";
+      reference
+        "Device.IP.Diagnostics.IPv6PingSupported";
+    }
+    leaf ipv4-trace-route-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv4TraceRouteSupported";
+      reference
+        "Device.IP.Diagnostics.IPv4TraceRouteSupported";
+    }
+    leaf ipv6-trace-route-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv6TraceRouteSupported";
+      reference
+        "Device.IP.Diagnostics.IPv6TraceRouteSupported";
+    }
+    leaf ipv4-download-diagnostics-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv4DownloadDiagnosticsSupported";
+      reference
+        "Device.IP.Diagnostics.IPv4DownloadDiagnosticsSupported";
+    }
+    leaf ipv6-download-diagnostics-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv6DownloadDiagnosticsSupported";
+      reference
+        "Device.IP.Diagnostics.IPv6DownloadDiagnosticsSupported";
+    }
+    leaf ipv4-upload-diagnostics-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv4UploadDiagnosticsSupported";
+      reference
+        "Device.IP.Diagnostics.IPv4UploadDiagnosticsSupported";
+    }
+    leaf ipv6-upload-diagnostics-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv6UploadDiagnosticsSupported";
+      reference
+        "Device.IP.Diagnostics.IPv6UploadDiagnosticsSupported";
+    }
+    leaf ipv4-udp-echo-diagnostics-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv4UDPEchoDiagnosticsSupported";
+      reference
+        "Device.IP.Diagnostics.IPv4UDPEchoDiagnosticsSupported";
+    }
+    leaf ipv6-udp-echo-diagnostics-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv6UDPEchoDiagnosticsSupported";
+      reference
+        "Device.IP.Diagnostics.IPv6UDPEchoDiagnosticsSupported";
+    }
+    leaf ipv4-server-selection-diagnostics-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv4ServerSelectionDiagnosticsSupported";
+      reference
+        "Device.IP.Diagnostics.IPv4ServerSelectionDiagnosticsSupported";
+    }
+    leaf ipv6-server-selection-diagnostics-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv6ServerSelectionDiagnosticsSupported";
+      reference
+        "Device.IP.Diagnostics.IPv6ServerSelectionDiagnosticsSupported";
+    }
+  }
+
+  grouping diagnostics-download-diagnostics-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.DownloadDiagnostics.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Completed {
+          description
+            "Enum Value - Completed";
+        }
+        enum Error_CannotResolveHostName {
+          description
+            "Enum Value - Error_CannotResolveHostName";
+        }
+        enum Error_NoRouteToHost {
+          description
+            "Enum Value - Error_NoRouteToHost";
+        }
+        enum Error_InitConnectionFailed {
+          description
+            "Enum Value - Error_InitConnectionFailed";
+        }
+        enum Error_NoResponse {
+          description
+            "Enum Value - Error_NoResponse";
+        }
+        enum Error_TransferFailed {
+          description
+            "Enum Value - Error_TransferFailed";
+        }
+        enum Error_PasswordRequestFailed {
+          description
+            "Enum Value - Error_PasswordRequestFailed";
+        }
+        enum Error_LoginFailed {
+          description
+            "Enum Value - Error_LoginFailed";
+        }
+        enum Error_NoTransferMode {
+          description
+            "Enum Value - Error_NoTransferMode";
+        }
+        enum Error_NoPASV {
+          description
+            "Enum Value - Error_NoPASV";
+        }
+        enum Error_IncorrectSize {
+          description
+            "Enum Value - Error_IncorrectSize";
+        }
+        enum Error_Timeout {
+          description
+            "Enum Value - Error_Timeout";
+        }
+        enum Error_Internal {
+          description
+            "Enum Value - Error_Internal";
+        }
+        enum Error_Other {
+          description
+            "Enum Value - Error_Other";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.Interface";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.Interface";
+    }
+    leaf download-url {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.DownloadURL";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.DownloadURL";
+    }
+    leaf download-transports {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.DownloadTransports";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.DownloadTransports";
+    }
+    leaf download-diagnostic-max-connections {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.DownloadDiagnosticMaxConnections";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.DownloadDiagnosticMaxConnections";
+    }
+    leaf download-diagnostics-max-incremental-result {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.DownloadDiagnosticsMaxIncrementalResult";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.DownloadDiagnosticsMaxIncrementalResult";
+    }
+    leaf dscp {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.DSCP";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.DSCP";
+    }
+    leaf ethernet-priority {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.EthernetPriority";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.EthernetPriority";
+    }
+    leaf time-based-test-duration {
+      type uint32 {
+        range "0..999";
+      }
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TimeBasedTestDuration";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TimeBasedTestDuration";
+    }
+    leaf time-based-test-measurement-interval {
+      type uint32 {
+        range "0..999";
+      }
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TimeBasedTestMeasurementInterval";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TimeBasedTestMeasurementInterval";
+    }
+    leaf time-based-test-measurement-offset {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TimeBasedTestMeasurementOffset";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TimeBasedTestMeasurementOffset";
+    }
+    leaf protocol-version {
+      type enumeration {
+        enum Any {
+          description
+            "Enum Value - Any";
+        }
+        enum IPv4 {
+          description
+            "Enum Value - IPv4";
+        }
+        enum IPv6 {
+          description
+            "Enum Value - IPv6";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.ProtocolVersion";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.ProtocolVersion";
+    }
+    leaf number-of-connections {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.NumberOfConnections";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.NumberOfConnections";
+    }
+    leaf ip-address-used {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.IPAddressUsed";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.IPAddressUsed";
+    }
+    leaf rom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.ROMTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.ROMTime";
+    }
+    leaf bom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.BOMTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.BOMTime";
+    }
+    leaf eom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.EOMTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.EOMTime";
+    }
+    leaf test-bytes-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TestBytesReceived";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TestBytesReceived";
+    }
+    leaf total-bytes-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TotalBytesReceived";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TotalBytesReceived";
+    }
+    leaf total-bytes-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TotalBytesSent";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TotalBytesSent";
+    }
+    leaf test-bytes-received-under-full-loading {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TestBytesReceivedUnderFullLoading";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TestBytesReceivedUnderFullLoading";
+    }
+    leaf total-bytes-received-under-full-loading {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TotalBytesReceivedUnderFullLoading";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TotalBytesReceivedUnderFullLoading";
+    }
+    leaf total-bytes-sent-under-full-loading {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TotalBytesSentUnderFullLoading";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TotalBytesSentUnderFullLoading";
+    }
+    leaf period-of-full-loading {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.PeriodOfFullLoading";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.PeriodOfFullLoading";
+    }
+    leaf tcp-open-request-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TCPOpenRequestTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TCPOpenRequestTime";
+    }
+    leaf tcp-open-response-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TCPOpenResponseTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TCPOpenResponseTime";
+    }
+    leaf per-connection-result-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResultNumberOfEntries";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResultNumberOfEntries";
+    }
+    leaf enable-per-connection-results {
+      type boolean;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.EnablePerConnectionResults";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.EnablePerConnectionResults";
+    }
+    leaf incremental-result-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResultNumberOfEntries";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResultNumberOfEntries";
+    }
+  }
+
+  grouping download-diagnostics-incremental-result-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf test-bytes-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.TestBytesReceived";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.TestBytesReceived";
+    }
+    leaf total-bytes-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.TotalBytesReceived";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.TotalBytesReceived";
+    }
+    leaf total-bytes-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.TotalBytesSent";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.TotalBytesSent";
+    }
+    leaf start-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.StartTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.StartTime";
+    }
+    leaf end-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.EndTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.EndTime";
+    }
+  }
+
+  grouping download-diagnostics-per-connection-result-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf rom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.ROMTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.ROMTime";
+    }
+    leaf bom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.BOMTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.BOMTime";
+    }
+    leaf eom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.EOMTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.EOMTime";
+    }
+    leaf test-bytes-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.TestBytesReceived";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.TestBytesReceived";
+    }
+    leaf total-bytes-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.TotalBytesReceived";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.TotalBytesReceived";
+    }
+    leaf total-bytes-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.TotalBytesSent";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.TotalBytesSent";
+    }
+    leaf tcp-open-request-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.TCPOpenRequestTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.TCPOpenRequestTime";
+    }
+    leaf tcp-open-response-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.TCPOpenResponseTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.TCPOpenResponseTime";
+    }
+  }
+
+  grouping diagnostics-ip-ping-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.IPPing.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Canceled {
+          description
+            "Enum Value - Canceled";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error {
+          description
+            "Enum Value - Error";
+        }
+        enum Error_CannotResolveHostName {
+          description
+            "Enum Value - Error_CannotResolveHostName";
+        }
+        enum Error_NoRouteToHost {
+          description
+            "Enum Value - Error_NoRouteToHost";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.IPPing.DiagnosticsState";
+      reference
+        "Device.IP.Diagnostics.IPPing.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.IPPing.Interface";
+      reference
+        "Device.IP.Diagnostics.IPPing.Interface";
+    }
+    leaf protocol-version {
+      type enumeration {
+        enum Any {
+          description
+            "Enum Value - Any";
+        }
+        enum IPv4 {
+          description
+            "Enum Value - IPv4";
+        }
+        enum IPv6 {
+          description
+            "Enum Value - IPv6";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.IPPing.ProtocolVersion";
+      reference
+        "Device.IP.Diagnostics.IPPing.ProtocolVersion";
+    }
+    leaf host {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.IPPing.Host";
+      reference
+        "Device.IP.Diagnostics.IPPing.Host";
+    }
+    leaf number-of-repetitions {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IP.Diagnostics.IPPing.NumberOfRepetitions";
+      reference
+        "Device.IP.Diagnostics.IPPing.NumberOfRepetitions";
+    }
+    leaf timeout {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IP.Diagnostics.IPPing.Timeout";
+      reference
+        "Device.IP.Diagnostics.IPPing.Timeout";
+    }
+    leaf data-block-size {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.IP.Diagnostics.IPPing.DataBlockSize";
+      reference
+        "Device.IP.Diagnostics.IPPing.DataBlockSize";
+    }
+    leaf dscp {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "Device.IP.Diagnostics.IPPing.DSCP";
+      reference
+        "Device.IP.Diagnostics.IPPing.DSCP";
+    }
+    leaf ip-address-used {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IP.Diagnostics.IPPing.IPAddressUsed";
+      reference
+        "Device.IP.Diagnostics.IPPing.IPAddressUsed";
+    }
+    leaf success-count {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPPing.SuccessCount";
+      reference
+        "Device.IP.Diagnostics.IPPing.SuccessCount";
+    }
+    leaf failure-count {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPPing.FailureCount";
+      reference
+        "Device.IP.Diagnostics.IPPing.FailureCount";
+    }
+    leaf average-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPPing.AverageResponseTime";
+      reference
+        "Device.IP.Diagnostics.IPPing.AverageResponseTime";
+    }
+    leaf minimum-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPPing.MinimumResponseTime";
+      reference
+        "Device.IP.Diagnostics.IPPing.MinimumResponseTime";
+    }
+    leaf maximum-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPPing.MaximumResponseTime";
+      reference
+        "Device.IP.Diagnostics.IPPing.MaximumResponseTime";
+    }
+    leaf average-response-time-detailed {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPPing.AverageResponseTimeDetailed";
+      reference
+        "Device.IP.Diagnostics.IPPing.AverageResponseTimeDetailed";
+    }
+    leaf minimum-response-time-detailed {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPPing.MinimumResponseTimeDetailed";
+      reference
+        "Device.IP.Diagnostics.IPPing.MinimumResponseTimeDetailed";
+    }
+    leaf maximum-response-time-detailed {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPPing.MaximumResponseTimeDetailed";
+      reference
+        "Device.IP.Diagnostics.IPPing.MaximumResponseTimeDetailed";
+    }
+  }
+
+  grouping diagnostics-server-selection-diagnostics-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.ServerSelectionDiagnostics.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Completed {
+          description
+            "Enum Value - Completed";
+        }
+        enum Error_CannotResolveHostName {
+          description
+            "Enum Value - Error_CannotResolveHostName";
+        }
+        enum Error_Internal {
+          description
+            "Enum Value - Error_Internal";
+        }
+        enum Error_Other {
+          description
+            "Enum Value - Error_Other";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.Interface";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.Interface";
+    }
+    leaf protocol-version {
+      type enumeration {
+        enum Any {
+          description
+            "Enum Value - Any";
+        }
+        enum IPv4 {
+          description
+            "Enum Value - IPv4";
+        }
+        enum IPv6 {
+          description
+            "Enum Value - IPv6";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.ProtocolVersion";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.ProtocolVersion";
+    }
+    leaf protocol {
+      type enumeration {
+        enum ICMP {
+          description
+            "Enum Value - ICMP";
+        }
+        enum "UDP Echo" {
+          description
+            "Enum Value - UDP Echo";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.Protocol";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.Protocol";
+    }
+    leaf host-list {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.HostList";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.HostList";
+    }
+    leaf number-of-repetitions {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.NumberOfRepetitions";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.NumberOfRepetitions";
+    }
+    leaf timeout {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.Timeout";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.Timeout";
+    }
+    leaf fastest-host {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.FastestHost";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.FastestHost";
+    }
+    leaf minimum-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.MinimumResponseTime";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.MinimumResponseTime";
+    }
+    leaf average-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.AverageResponseTime";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.AverageResponseTime";
+    }
+    leaf maximum-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.MaximumResponseTime";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.MaximumResponseTime";
+    }
+    leaf ip-address-used {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.IPAddressUsed";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.IPAddressUsed";
+    }
+  }
+
+  grouping diagnostics-trace-route-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.TraceRoute.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Canceled {
+          description
+            "Enum Value - Canceled";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error {
+          description
+            "Enum Value - Error";
+        }
+        enum Error_MaxHopCountExceeded {
+          description
+            "Enum Value - Error_MaxHopCountExceeded";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.TraceRoute.DiagnosticsState";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.TraceRoute.Interface";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.Interface";
+    }
+    leaf protocol-version {
+      type enumeration {
+        enum Any {
+          description
+            "Enum Value - Any";
+        }
+        enum IPv4 {
+          description
+            "Enum Value - IPv4";
+        }
+        enum IPv6 {
+          description
+            "Enum Value - IPv6";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.TraceRoute.ProtocolVersion";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.ProtocolVersion";
+    }
+    leaf host {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.TraceRoute.Host";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.Host";
+    }
+    leaf number-of-tries {
+      type uint32 {
+        range "1..3";
+      }
+      description
+        "Device.IP.Diagnostics.TraceRoute.NumberOfTries";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.NumberOfTries";
+    }
+    leaf timeout {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IP.Diagnostics.TraceRoute.Timeout";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.Timeout";
+    }
+    leaf data-block-size {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.IP.Diagnostics.TraceRoute.DataBlockSize";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.DataBlockSize";
+    }
+    leaf dscp {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "Device.IP.Diagnostics.TraceRoute.DSCP";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.DSCP";
+    }
+    leaf max-hop-count {
+      type uint32 {
+        range "1..64";
+      }
+      description
+        "Device.IP.Diagnostics.TraceRoute.MaxHopCount";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.MaxHopCount";
+    }
+    leaf ip-address-used {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IP.Diagnostics.TraceRoute.IPAddressUsed";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.IPAddressUsed";
+    }
+    leaf response-time {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.TraceRoute.ResponseTime";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.ResponseTime";
+    }
+    leaf route-hops-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.TraceRoute.RouteHopsNumberOfEntries";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.RouteHopsNumberOfEntries";
+    }
+  }
+
+  grouping trace-route-route-hops-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.Host";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.Host";
+    }
+    leaf host-address {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.HostAddress";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.HostAddress";
+    }
+    leaf error-code {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.ErrorCode";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.ErrorCode";
+    }
+    leaf rt-times {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.RTTimes";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.RTTimes";
+    }
+  }
+
+  grouping diagnostics-udp-echo-config-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.UDPEchoConfig.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.Enable";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.Enable";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.Interface";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.Interface";
+    }
+    leaf source-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.SourceIPAddress";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.SourceIPAddress";
+    }
+    leaf udp-port {
+      type uint32;
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.UDPPort";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.UDPPort";
+    }
+    leaf echo-plus-enabled {
+      type boolean;
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.EchoPlusEnabled";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.EchoPlusEnabled";
+    }
+    leaf echo-plus-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.EchoPlusSupported";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.EchoPlusSupported";
+    }
+    leaf packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.PacketsReceived";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.PacketsReceived";
+    }
+    leaf packets-responded {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.PacketsResponded";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.PacketsResponded";
+    }
+    leaf bytes-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.BytesReceived";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.BytesReceived";
+    }
+    leaf bytes-responded {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.BytesResponded";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.BytesResponded";
+    }
+    leaf time-first-packet-received {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.TimeFirstPacketReceived";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.TimeFirstPacketReceived";
+    }
+    leaf time-last-packet-received {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.TimeLastPacketReceived";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.TimeLastPacketReceived";
+    }
+  }
+
+  grouping diagnostics-udp-echo-diagnostics-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.UDPEchoDiagnostics.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Completed {
+          description
+            "Enum Value - Completed";
+        }
+        enum Error_CannotResolveHostName {
+          description
+            "Enum Value - Error_CannotResolveHostName";
+        }
+        enum Error_Internal {
+          description
+            "Enum Value - Error_Internal";
+        }
+        enum Error_Other {
+          description
+            "Enum Value - Error_Other";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.Interface";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.Interface";
+    }
+    leaf host {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.Host";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.Host";
+    }
+    leaf port {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.Port";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.Port";
+    }
+    leaf number-of-repetitions {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.NumberOfRepetitions";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.NumberOfRepetitions";
+    }
+    leaf timeout {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.Timeout";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.Timeout";
+    }
+    leaf data-block-size {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.DataBlockSize";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.DataBlockSize";
+    }
+    leaf dscp {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.DSCP";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.DSCP";
+    }
+    leaf inter-transmission-time {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.InterTransmissionTime";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.InterTransmissionTime";
+    }
+    leaf protocol-version {
+      type enumeration {
+        enum Any {
+          description
+            "Enum Value - Any";
+        }
+        enum IPv4 {
+          description
+            "Enum Value - IPv4";
+        }
+        enum IPv6 {
+          description
+            "Enum Value - IPv6";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.ProtocolVersion";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.ProtocolVersion";
+    }
+    leaf ip-address-used {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IPAddressUsed";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IPAddressUsed";
+    }
+    leaf success-count {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.SuccessCount";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.SuccessCount";
+    }
+    leaf failure-count {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.FailureCount";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.FailureCount";
+    }
+    leaf average-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.AverageResponseTime";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.AverageResponseTime";
+    }
+    leaf minimum-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.MinimumResponseTime";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.MinimumResponseTime";
+    }
+    leaf maximum-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.MaximumResponseTime";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.MaximumResponseTime";
+    }
+    leaf enable-individual-packet-results {
+      type boolean;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.EnableIndividualPacketResults";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.EnableIndividualPacketResults";
+    }
+    leaf individual-packet-result-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResultNumberOfEntries";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResultNumberOfEntries";
+    }
+    leaf udp-echo-diagnostics-max-results {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.UDPEchoDiagnosticsMaxResults";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.UDPEchoDiagnosticsMaxResults";
+    }
+  }
+
+  grouping udp-echo-diagnostics-individual-packet-result-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf packet-success {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.PacketSuccess";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.PacketSuccess";
+    }
+    leaf packet-send-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.PacketSendTime";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.PacketSendTime";
+    }
+    leaf packet-receive-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.PacketReceiveTime";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.PacketReceiveTime";
+    }
+    leaf test-gen-sn {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.TestGenSN";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.TestGenSN";
+    }
+    leaf test-resp-sn {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.TestRespSN";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.TestRespSN";
+    }
+    leaf test-resp-rcv-time-stamp {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.TestRespRcvTimeStamp";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.TestRespRcvTimeStamp";
+    }
+    leaf test-resp-reply-time-stamp {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.TestRespReplyTimeStamp";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.TestRespReplyTimeStamp";
+    }
+    leaf test-resp-reply-failure-count {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.TestRespReplyFailureCount";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.TestRespReplyFailureCount";
+    }
+  }
+
+  grouping diagnostics-upload-diagnostics-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.UploadDiagnostics.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Completed {
+          description
+            "Enum Value - Completed";
+        }
+        enum Error_CannotResolveHostName {
+          description
+            "Enum Value - Error_CannotResolveHostName";
+        }
+        enum Error_NoRouteToHost {
+          description
+            "Enum Value - Error_NoRouteToHost";
+        }
+        enum Error_InitConnectionFailed {
+          description
+            "Enum Value - Error_InitConnectionFailed";
+        }
+        enum Error_NoResponse {
+          description
+            "Enum Value - Error_NoResponse";
+        }
+        enum Error_PasswordRequestFailed {
+          description
+            "Enum Value - Error_PasswordRequestFailed";
+        }
+        enum Error_LoginFailed {
+          description
+            "Enum Value - Error_LoginFailed";
+        }
+        enum Error_NoTransferMode {
+          description
+            "Enum Value - Error_NoTransferMode";
+        }
+        enum Error_NoPASV {
+          description
+            "Enum Value - Error_NoPASV";
+        }
+        enum Error_NoCWD {
+          description
+            "Enum Value - Error_NoCWD";
+        }
+        enum Error_NoSTOR {
+          description
+            "Enum Value - Error_NoSTOR";
+        }
+        enum Error_NoTransferComplete {
+          description
+            "Enum Value - Error_NoTransferComplete";
+        }
+        enum Error_Timeout {
+          description
+            "Enum Value - Error_Timeout";
+        }
+        enum Error_Internal {
+          description
+            "Enum Value - Error_Internal";
+        }
+        enum Error_Other {
+          description
+            "Enum Value - Error_Other";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.Interface";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.Interface";
+    }
+    leaf upload-url {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.UploadURL";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.UploadURL";
+    }
+    leaf upload-transports {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.UploadTransports";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.UploadTransports";
+    }
+    leaf upload-diagnostics-max-connections {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.UploadDiagnosticsMaxConnections";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.UploadDiagnosticsMaxConnections";
+    }
+    leaf upload-diagnostics-max-incremental-result {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.UploadDiagnosticsMaxIncrementalResult";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.UploadDiagnosticsMaxIncrementalResult";
+    }
+    leaf dscp {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.DSCP";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.DSCP";
+    }
+    leaf ethernet-priority {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.EthernetPriority";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.EthernetPriority";
+    }
+    leaf test-file-length {
+      type uint32;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TestFileLength";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TestFileLength";
+    }
+    leaf time-based-test-duration {
+      type uint32 {
+        range "0..999";
+      }
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TimeBasedTestDuration";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TimeBasedTestDuration";
+    }
+    leaf time-based-test-measurement-interval {
+      type uint32 {
+        range "0..999";
+      }
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TimeBasedTestMeasurementInterval";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TimeBasedTestMeasurementInterval";
+    }
+    leaf time-based-test-measurement-offset {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TimeBasedTestMeasurementOffset";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TimeBasedTestMeasurementOffset";
+    }
+    leaf protocol-version {
+      type enumeration {
+        enum Any {
+          description
+            "Enum Value - Any";
+        }
+        enum IPv4 {
+          description
+            "Enum Value - IPv4";
+        }
+        enum IPv6 {
+          description
+            "Enum Value - IPv6";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.ProtocolVersion";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.ProtocolVersion";
+    }
+    leaf number-of-connections {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.NumberOfConnections";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.NumberOfConnections";
+    }
+    leaf ip-address-used {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.IPAddressUsed";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.IPAddressUsed";
+    }
+    leaf rom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.ROMTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.ROMTime";
+    }
+    leaf bom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.BOMTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.BOMTime";
+    }
+    leaf eom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.EOMTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.EOMTime";
+    }
+    leaf test-bytes-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TestBytesSent";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TestBytesSent";
+    }
+    leaf total-bytes-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TotalBytesReceived";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TotalBytesReceived";
+    }
+    leaf total-bytes-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TotalBytesSent";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TotalBytesSent";
+    }
+    leaf test-bytes-sent-under-full-loading {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TestBytesSentUnderFullLoading";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TestBytesSentUnderFullLoading";
+    }
+    leaf total-bytes-received-under-full-loading {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TotalBytesReceivedUnderFullLoading";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TotalBytesReceivedUnderFullLoading";
+    }
+    leaf total-bytes-sent-under-full-loading {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TotalBytesSentUnderFullLoading";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TotalBytesSentUnderFullLoading";
+    }
+    leaf period-of-full-loading {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.PeriodOfFullLoading";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.PeriodOfFullLoading";
+    }
+    leaf tcp-open-request-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TCPOpenRequestTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TCPOpenRequestTime";
+    }
+    leaf tcp-open-response-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TCPOpenResponseTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TCPOpenResponseTime";
+    }
+    leaf per-connection-result-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResultNumberOfEntries";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResultNumberOfEntries";
+    }
+    leaf enable-per-connection-results {
+      type boolean;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.EnablePerConnectionResults";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.EnablePerConnectionResults";
+    }
+    leaf incremental-result-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResultNumberOfEntries";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResultNumberOfEntries";
+    }
+  }
+
+  grouping upload-diagnostics-incremental-result-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf test-bytes-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.TestBytesSent";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.TestBytesSent";
+    }
+    leaf total-bytes-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.TotalBytesReceived";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.TotalBytesReceived";
+    }
+    leaf total-bytes-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.TotalBytesSent";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.TotalBytesSent";
+    }
+    leaf start-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.StartTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.StartTime";
+    }
+    leaf end-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.EndTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.EndTime";
+    }
+  }
+
+  grouping upload-diagnostics-per-connection-result-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf rom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.ROMTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.ROMTime";
+    }
+    leaf bom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.BOMTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.BOMTime";
+    }
+    leaf eom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.EOMTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.EOMTime";
+    }
+    leaf test-bytes-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.TestBytesSent";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.TestBytesSent";
+    }
+    leaf total-bytes-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.TotalBytesReceived";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.TotalBytesReceived";
+    }
+    leaf total-bytes-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.TotalBytesSent";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.TotalBytesSent";
+    }
+    leaf tcp-open-request-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.TCPOpenRequestTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.TCPOpenRequestTime";
+    }
+    leaf tcp-open-response-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.TCPOpenResponseTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.TCPOpenResponseTime";
+    }
+  }
+
+  grouping ip-interface-g {
+    description
+      "Grouping object for Device.IP.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.Enable";
+      reference
+        "Device.IP.Interface.{i}.Enable";
+    }
+    leaf ipv4-enable {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.IPv4Enable";
+      reference
+        "Device.IP.Interface.{i}.IPv4Enable";
+    }
+    leaf ipv6-enable {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.IPv6Enable";
+      reference
+        "Device.IP.Interface.{i}.IPv6Enable";
+    }
+    leaf ula-enable {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.ULAEnable";
+      reference
+        "Device.IP.Interface.{i}.ULAEnable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Status";
+      reference
+        "Device.IP.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IP.Interface.{i}.Alias";
+      reference
+        "Device.IP.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Name";
+      reference
+        "Device.IP.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Interface.{i}.LastChange";
+      reference
+        "Device.IP.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.IP.Interface.{i}.LowerLayers";
+      reference
+        "Device.IP.Interface.{i}.LowerLayers";
+    }
+    leaf router {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Interface.{i}.Router";
+      reference
+        "Device.IP.Interface.{i}.Router";
+    }
+    leaf max-mtu-size {
+      type uint32 {
+        range "64..65535";
+      }
+      description
+        "Device.IP.Interface.{i}.MaxMTUSize";
+      reference
+        "Device.IP.Interface.{i}.MaxMTUSize";
+    }
+    leaf type {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Type";
+      reference
+        "Device.IP.Interface.{i}.Type";
+    }
+    leaf loopback {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.Loopback";
+      reference
+        "Device.IP.Interface.{i}.Loopback";
+    }
+    leaf ipv4-address-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv4AddressNumberOfEntries";
+      reference
+        "Device.IP.Interface.{i}.IPv4AddressNumberOfEntries";
+    }
+    leaf ipv6-address-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv6AddressNumberOfEntries";
+      reference
+        "Device.IP.Interface.{i}.IPv6AddressNumberOfEntries";
+    }
+    leaf ipv6-prefix-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv6PrefixNumberOfEntries";
+      reference
+        "Device.IP.Interface.{i}.IPv6PrefixNumberOfEntries";
+    }
+    leaf auto-ip-enable {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.AutoIPEnable";
+      reference
+        "Device.IP.Interface.{i}.AutoIPEnable";
+    }
+    leaf twamp-reflector-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Interface.{i}.TWAMPReflectorNumberOfEntries";
+      reference
+        "Device.IP.Interface.{i}.TWAMPReflectorNumberOfEntries";
+    }
+  }
+
+  grouping interface-ipv4-address-g {
+    description
+      "Grouping object for Device.IP.Interface.{i}.IPv4Address.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.IPv4Address.{i}.Enable";
+      reference
+        "Device.IP.Interface.{i}.IPv4Address.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv4Address.{i}.Status";
+      reference
+        "Device.IP.Interface.{i}.IPv4Address.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IP.Interface.{i}.IPv4Address.{i}.Alias";
+      reference
+        "Device.IP.Interface.{i}.IPv4Address.{i}.Alias";
+    }
+    leaf ip-address {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.IP.Interface.{i}.IPv4Address.{i}.IPAddress";
+      reference
+        "Device.IP.Interface.{i}.IPv4Address.{i}.IPAddress";
+    }
+    leaf subnet-mask {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.IP.Interface.{i}.IPv4Address.{i}.SubnetMask";
+      reference
+        "Device.IP.Interface.{i}.IPv4Address.{i}.SubnetMask";
+    }
+    leaf addressing-type {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv4Address.{i}.AddressingType";
+      reference
+        "Device.IP.Interface.{i}.IPv4Address.{i}.AddressingType";
+    }
+  }
+
+  grouping interface-ipv6-address-g {
+    description
+      "Grouping object for Device.IP.Interface.{i}.IPv6Address.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Enable";
+      reference
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Status";
+      reference
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Status";
+    }
+    leaf ip-address-status {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv6Address.{i}.IPAddressStatus";
+      reference
+        "Device.IP.Interface.{i}.IPv6Address.{i}.IPAddressStatus";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Alias";
+      reference
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Alias";
+    }
+    leaf ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.IP.Interface.{i}.IPv6Address.{i}.IPAddress";
+      reference
+        "Device.IP.Interface.{i}.IPv6Address.{i}.IPAddress";
+    }
+    leaf origin {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Origin";
+      reference
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Origin";
+    }
+    leaf prefix {
+      type string;
+      description
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Prefix";
+      reference
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Prefix";
+    }
+    leaf preferred-lifetime {
+      type string;
+      description
+        "Device.IP.Interface.{i}.IPv6Address.{i}.PreferredLifetime";
+      reference
+        "Device.IP.Interface.{i}.IPv6Address.{i}.PreferredLifetime";
+    }
+    leaf valid-lifetime {
+      type string;
+      description
+        "Device.IP.Interface.{i}.IPv6Address.{i}.ValidLifetime";
+      reference
+        "Device.IP.Interface.{i}.IPv6Address.{i}.ValidLifetime";
+    }
+    leaf anycast {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Anycast";
+      reference
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Anycast";
+    }
+  }
+
+  grouping interface-ipv6-prefix-g {
+    description
+      "Grouping object for Device.IP.Interface.{i}.IPv6Prefix.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Enable";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Status";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Status";
+    }
+    leaf prefix-status {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.PrefixStatus";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.PrefixStatus";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Alias";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Alias";
+    }
+    leaf prefix {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Prefix";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Prefix";
+    }
+    leaf origin {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Origin";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Origin";
+    }
+    leaf static-type {
+      type enumeration {
+        enum Static {
+          description
+            "Enum Value - Static";
+        }
+        enum Inapplicable {
+          description
+            "Enum Value - Inapplicable";
+        }
+        enum PrefixDelegation {
+          description
+            "Enum Value - PrefixDelegation";
+        }
+        enum Child {
+          description
+            "Enum Value - Child";
+        }
+      }
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.StaticType";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.StaticType";
+    }
+    leaf parent-prefix {
+      type string;
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.ParentPrefix";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.ParentPrefix";
+    }
+    leaf child-prefix-bits {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.ChildPrefixBits";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.ChildPrefixBits";
+    }
+    leaf on-link {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.OnLink";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.OnLink";
+    }
+    leaf autonomous {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Autonomous";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Autonomous";
+    }
+    leaf preferred-lifetime {
+      type string;
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.PreferredLifetime";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.PreferredLifetime";
+    }
+    leaf valid-lifetime {
+      type string;
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.ValidLifetime";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.ValidLifetime";
+    }
+  }
+
+  grouping ip-interface-stats-g {
+    description
+      "Grouping object for Device.IP.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.IP.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.IP.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.IP.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.IP.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.IP.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.IP.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.IP.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.IP.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.IP.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.IP.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.IP.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.IP.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.IP.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.IP.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.IP.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping interface-twamp-reflector-g {
+    description
+      "Grouping object for Device.IP.Interface.{i}.TWAMPReflector.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.Enable";
+      reference
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.Status";
+      reference
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.Alias";
+      reference
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.Alias";
+    }
+    leaf port {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.Port";
+      reference
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.Port";
+    }
+    leaf maximum-ttl {
+      type uint32 {
+        range "1..255";
+      }
+      description
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.MaximumTTL";
+      reference
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.MaximumTTL";
+    }
+    leaf ip-allowed-list {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.IPAllowedList";
+      reference
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.IPAllowedList";
+    }
+    leaf port-allowed-list {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.PortAllowedList";
+      reference
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.PortAllowedList";
+    }
+  }
+
+  grouping device-i-psec-g {
+    description
+      "Grouping object for Device.IPsec.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.IPsec.Enable";
+      reference
+        "Device.IPsec.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IPsec.Status";
+      reference
+        "Device.IPsec.Status";
+    }
+    leaf ah-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IPsec.AHSupported";
+      reference
+        "Device.IPsec.AHSupported";
+    }
+    leaf ikev2-supported-encryption-algorithms {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SupportedEncryptionAlgorithms";
+      reference
+        "Device.IPsec.IKEv2SupportedEncryptionAlgorithms";
+    }
+    leaf esp-supported-encryption-algorithms {
+      type string;
+      config false;
+      description
+        "Device.IPsec.ESPSupportedEncryptionAlgorithms";
+      reference
+        "Device.IPsec.ESPSupportedEncryptionAlgorithms";
+    }
+    leaf ikev2-supported-pseudo-random-functions {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SupportedPseudoRandomFunctions";
+      reference
+        "Device.IPsec.IKEv2SupportedPseudoRandomFunctions";
+    }
+    leaf supported-integrity-algorithms {
+      type string;
+      config false;
+      description
+        "Device.IPsec.SupportedIntegrityAlgorithms";
+      reference
+        "Device.IPsec.SupportedIntegrityAlgorithms";
+    }
+    leaf supported-diffie-hellman-group-transforms {
+      type string;
+      config false;
+      description
+        "Device.IPsec.SupportedDiffieHellmanGroupTransforms";
+      reference
+        "Device.IPsec.SupportedDiffieHellmanGroupTransforms";
+    }
+    leaf max-filter-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.MaxFilterEntries";
+      reference
+        "Device.IPsec.MaxFilterEntries";
+    }
+    leaf max-profile-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.MaxProfileEntries";
+      reference
+        "Device.IPsec.MaxProfileEntries";
+    }
+    leaf filter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.FilterNumberOfEntries";
+      reference
+        "Device.IPsec.FilterNumberOfEntries";
+    }
+    leaf profile-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.ProfileNumberOfEntries";
+      reference
+        "Device.IPsec.ProfileNumberOfEntries";
+    }
+    leaf tunnel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.TunnelNumberOfEntries";
+      reference
+        "Device.IPsec.TunnelNumberOfEntries";
+    }
+    leaf ikev2-sa-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SANumberOfEntries";
+      reference
+        "Device.IPsec.IKEv2SANumberOfEntries";
+    }
+  }
+
+  grouping i-psec-filter-g {
+    description
+      "Grouping object for Device.IPsec.Filter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.IPsec.Filter.{i}.Enable";
+      reference
+        "Device.IPsec.Filter.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IPsec.Filter.{i}.Status";
+      reference
+        "Device.IPsec.Filter.{i}.Status";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IPsec.Filter.{i}.Order";
+      reference
+        "Device.IPsec.Filter.{i}.Order";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IPsec.Filter.{i}.Alias";
+      reference
+        "Device.IPsec.Filter.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IPsec.Filter.{i}.Interface";
+      reference
+        "Device.IPsec.Filter.{i}.Interface";
+    }
+    leaf all-interfaces {
+      type boolean;
+      description
+        "Device.IPsec.Filter.{i}.AllInterfaces";
+      reference
+        "Device.IPsec.Filter.{i}.AllInterfaces";
+    }
+    leaf dest-ip {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.IPsec.Filter.{i}.DestIP";
+      reference
+        "Device.IPsec.Filter.{i}.DestIP";
+    }
+    leaf dest-mask {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.IPsec.Filter.{i}.DestMask";
+      reference
+        "Device.IPsec.Filter.{i}.DestMask";
+    }
+    leaf dest-ip-exclude {
+      type boolean;
+      description
+        "Device.IPsec.Filter.{i}.DestIPExclude";
+      reference
+        "Device.IPsec.Filter.{i}.DestIPExclude";
+    }
+    leaf source-ip {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.IPsec.Filter.{i}.SourceIP";
+      reference
+        "Device.IPsec.Filter.{i}.SourceIP";
+    }
+    leaf source-mask {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.IPsec.Filter.{i}.SourceMask";
+      reference
+        "Device.IPsec.Filter.{i}.SourceMask";
+    }
+    leaf source-ip-exclude {
+      type boolean;
+      description
+        "Device.IPsec.Filter.{i}.SourceIPExclude";
+      reference
+        "Device.IPsec.Filter.{i}.SourceIPExclude";
+    }
+    leaf protocol {
+      type int32 {
+        range "-1..255";
+      }
+      description
+        "Device.IPsec.Filter.{i}.Protocol";
+      reference
+        "Device.IPsec.Filter.{i}.Protocol";
+    }
+    leaf protocol-exclude {
+      type boolean;
+      description
+        "Device.IPsec.Filter.{i}.ProtocolExclude";
+      reference
+        "Device.IPsec.Filter.{i}.ProtocolExclude";
+    }
+    leaf dest-port {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.IPsec.Filter.{i}.DestPort";
+      reference
+        "Device.IPsec.Filter.{i}.DestPort";
+    }
+    leaf dest-port-range-max {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.IPsec.Filter.{i}.DestPortRangeMax";
+      reference
+        "Device.IPsec.Filter.{i}.DestPortRangeMax";
+    }
+    leaf dest-port-exclude {
+      type boolean;
+      description
+        "Device.IPsec.Filter.{i}.DestPortExclude";
+      reference
+        "Device.IPsec.Filter.{i}.DestPortExclude";
+    }
+    leaf source-port {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.IPsec.Filter.{i}.SourcePort";
+      reference
+        "Device.IPsec.Filter.{i}.SourcePort";
+    }
+    leaf source-port-range-max {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.IPsec.Filter.{i}.SourcePortRangeMax";
+      reference
+        "Device.IPsec.Filter.{i}.SourcePortRangeMax";
+    }
+    leaf source-port-exclude {
+      type boolean;
+      description
+        "Device.IPsec.Filter.{i}.SourcePortExclude";
+      reference
+        "Device.IPsec.Filter.{i}.SourcePortExclude";
+    }
+    leaf processing-choice {
+      type enumeration {
+        enum Discard {
+          description
+            "Enum Value - Discard";
+        }
+        enum Bypass {
+          description
+            "Enum Value - Bypass";
+        }
+        enum Protect {
+          description
+            "Enum Value - Protect";
+        }
+      }
+      description
+        "Device.IPsec.Filter.{i}.ProcessingChoice";
+      reference
+        "Device.IPsec.Filter.{i}.ProcessingChoice";
+    }
+    leaf profile {
+      type string;
+      description
+        "Device.IPsec.Filter.{i}.Profile";
+      reference
+        "Device.IPsec.Filter.{i}.Profile";
+    }
+  }
+
+  grouping i-psec-ikev2-sa-g {
+    description
+      "Grouping object for Device.IPsec.IKEv2SA.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.Status";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IPsec.IKEv2SA.{i}.Alias";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Alias";
+    }
+    leaf tunnel {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.Tunnel";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Tunnel";
+    }
+    leaf local-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.LocalAddress";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.LocalAddress";
+    }
+    leaf remote-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.RemoteAddress";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.RemoteAddress";
+    }
+    leaf encryption-algorithm {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.EncryptionAlgorithm";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.EncryptionAlgorithm";
+    }
+    leaf encryption-key-length {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.EncryptionKeyLength";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.EncryptionKeyLength";
+    }
+    leaf pseudo-random-function {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.PseudoRandomFunction";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.PseudoRandomFunction";
+    }
+    leaf integrity-algorithm {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.IntegrityAlgorithm";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.IntegrityAlgorithm";
+    }
+    leaf diffie-hellman-group-transform {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.DiffieHellmanGroupTransform";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.DiffieHellmanGroupTransform";
+    }
+    leaf creation-time {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.CreationTime";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.CreationTime";
+    }
+    leaf nat-detected {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.NATDetected";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.NATDetected";
+    }
+    leaf received-cp-attr-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ReceivedCPAttrNumberOfEntries";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ReceivedCPAttrNumberOfEntries";
+    }
+    leaf child-sa-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSANumberOfEntries";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSANumberOfEntries";
+    }
+  }
+
+  grouping ikev2-sa-child-sa-g {
+    description
+      "Grouping object for Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Status";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Alias";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Alias";
+    }
+    leaf inbound-spi {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.InboundSPI";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.InboundSPI";
+    }
+    leaf outbound-spi {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.OutboundSPI";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.OutboundSPI";
+    }
+    leaf creation-time {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.CreationTime";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.CreationTime";
+    }
+  }
+
+  grouping child-sa-stats-g {
+    description
+      "Grouping object for Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.BytesSent";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.BytesReceived";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.PacketsSent";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.PacketsReceived";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.ErrorsSent";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.ErrorsSent";
+    }
+    leaf decryption-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.DecryptionErrors";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.DecryptionErrors";
+    }
+    leaf integrity-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.IntegrityErrors";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.IntegrityErrors";
+    }
+    leaf replay-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.ReplayErrors";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.ReplayErrors";
+    }
+    leaf policy-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.PolicyErrors";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.PolicyErrors";
+    }
+    leaf other-receive-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.OtherReceiveErrors";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.OtherReceiveErrors";
+    }
+  }
+
+  grouping ikev2-sa-received-cp-attr-g {
+    description
+      "Grouping object for Device.IPsec.IKEv2SA.{i}.ReceivedCPAttr.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf type {
+      type uint32 {
+        range "0..32767";
+      }
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ReceivedCPAttr.{i}.Type";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ReceivedCPAttr.{i}.Type";
+    }
+    leaf value {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ReceivedCPAttr.{i}.Value";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ReceivedCPAttr.{i}.Value";
+    }
+  }
+
+  grouping ikev2-sa-stats-g {
+    description
+      "Grouping object for Device.IPsec.IKEv2SA.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.Stats.BytesSent";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.Stats.BytesReceived";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.Stats.PacketsSent";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.Stats.PacketsReceived";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.Stats.ErrorsSent";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Stats.ErrorsSent";
+    }
+    leaf decryption-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.Stats.DecryptionErrors";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Stats.DecryptionErrors";
+    }
+    leaf integrity-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.Stats.IntegrityErrors";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Stats.IntegrityErrors";
+    }
+    leaf other-receive-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.Stats.OtherReceiveErrors";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Stats.OtherReceiveErrors";
+    }
+  }
+
+  grouping i-psec-profile-g {
+    description
+      "Grouping object for Device.IPsec.Profile.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IPsec.Profile.{i}.Alias";
+      reference
+        "Device.IPsec.Profile.{i}.Alias";
+    }
+    leaf max-child-s-as {
+      type uint32;
+      description
+        "Device.IPsec.Profile.{i}.MaxChildSAs";
+      reference
+        "Device.IPsec.Profile.{i}.MaxChildSAs";
+    }
+    leaf remote-endpoints {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IPsec.Profile.{i}.RemoteEndpoints";
+      reference
+        "Device.IPsec.Profile.{i}.RemoteEndpoints";
+    }
+    leaf forwarding-policy {
+      type uint32;
+      description
+        "Device.IPsec.Profile.{i}.ForwardingPolicy";
+      reference
+        "Device.IPsec.Profile.{i}.ForwardingPolicy";
+    }
+    leaf protocol {
+      type enumeration {
+        enum AH {
+          description
+            "Enum Value - AH";
+        }
+        enum ESP {
+          description
+            "Enum Value - ESP";
+        }
+      }
+      description
+        "Device.IPsec.Profile.{i}.Protocol";
+      reference
+        "Device.IPsec.Profile.{i}.Protocol";
+    }
+    leaf ikev2-authentication-method {
+      type string;
+      description
+        "Device.IPsec.Profile.{i}.IKEv2AuthenticationMethod";
+      reference
+        "Device.IPsec.Profile.{i}.IKEv2AuthenticationMethod";
+    }
+    leaf ikev2-allowed-encryption-algorithms {
+      type string;
+      description
+        "Device.IPsec.Profile.{i}.IKEv2AllowedEncryptionAlgorithms";
+      reference
+        "Device.IPsec.Profile.{i}.IKEv2AllowedEncryptionAlgorithms";
+    }
+    leaf esp-allowed-encryption-algorithms {
+      type string;
+      description
+        "Device.IPsec.Profile.{i}.ESPAllowedEncryptionAlgorithms";
+      reference
+        "Device.IPsec.Profile.{i}.ESPAllowedEncryptionAlgorithms";
+    }
+    leaf ikev2-allowed-pseudo-random-functions {
+      type string;
+      description
+        "Device.IPsec.Profile.{i}.IKEv2AllowedPseudoRandomFunctions";
+      reference
+        "Device.IPsec.Profile.{i}.IKEv2AllowedPseudoRandomFunctions";
+    }
+    leaf ikev2-allowed-integrity-algorithms {
+      type string;
+      description
+        "Device.IPsec.Profile.{i}.IKEv2AllowedIntegrityAlgorithms";
+      reference
+        "Device.IPsec.Profile.{i}.IKEv2AllowedIntegrityAlgorithms";
+    }
+    leaf ah-allowed-integrity-algorithms {
+      type string;
+      description
+        "Device.IPsec.Profile.{i}.AHAllowedIntegrityAlgorithms";
+      reference
+        "Device.IPsec.Profile.{i}.AHAllowedIntegrityAlgorithms";
+    }
+    leaf esp-allowed-integrity-algorithms {
+      type string;
+      description
+        "Device.IPsec.Profile.{i}.ESPAllowedIntegrityAlgorithms";
+      reference
+        "Device.IPsec.Profile.{i}.ESPAllowedIntegrityAlgorithms";
+    }
+    leaf ikev2-allowed-diffie-hellman-group-transforms {
+      type string;
+      description
+        "Device.IPsec.Profile.{i}.IKEv2AllowedDiffieHellmanGroupTransforms";
+      reference
+        "Device.IPsec.Profile.{i}.IKEv2AllowedDiffieHellmanGroupTransforms";
+    }
+    leaf ikev2-dead-peer-detection-timeout {
+      type uint32;
+      description
+        "Device.IPsec.Profile.{i}.IKEv2DeadPeerDetectionTimeout";
+      reference
+        "Device.IPsec.Profile.{i}.IKEv2DeadPeerDetectionTimeout";
+    }
+    leaf ikev2-natt-keepalive-timeout {
+      type uint32;
+      description
+        "Device.IPsec.Profile.{i}.IKEv2NATTKeepaliveTimeout";
+      reference
+        "Device.IPsec.Profile.{i}.IKEv2NATTKeepaliveTimeout";
+    }
+    leaf anti-replay-window-size {
+      type uint32;
+      description
+        "Device.IPsec.Profile.{i}.AntiReplayWindowSize";
+      reference
+        "Device.IPsec.Profile.{i}.AntiReplayWindowSize";
+    }
+    leaf do-not-fragment {
+      type enumeration {
+        enum Set {
+          description
+            "Enum Value - Set";
+        }
+        enum Clear {
+          description
+            "Enum Value - Clear";
+        }
+        enum Copy {
+          description
+            "Enum Value - Copy";
+        }
+      }
+      description
+        "Device.IPsec.Profile.{i}.DoNotFragment";
+      reference
+        "Device.IPsec.Profile.{i}.DoNotFragment";
+    }
+    leaf dscp-mark-policy {
+      type int32 {
+        range "-2..63";
+      }
+      description
+        "Device.IPsec.Profile.{i}.DSCPMarkPolicy";
+      reference
+        "Device.IPsec.Profile.{i}.DSCPMarkPolicy";
+    }
+    leaf ikev2-sa-traffic-limit {
+      type uint64;
+      description
+        "Device.IPsec.Profile.{i}.IKEv2SATrafficLimit";
+      reference
+        "Device.IPsec.Profile.{i}.IKEv2SATrafficLimit";
+    }
+    leaf ikev2-sa-time-limit {
+      type uint32;
+      description
+        "Device.IPsec.Profile.{i}.IKEv2SATimeLimit";
+      reference
+        "Device.IPsec.Profile.{i}.IKEv2SATimeLimit";
+    }
+    leaf ikev2-sa-expiry-action {
+      type enumeration {
+        enum Renegotiate {
+          description
+            "Enum Value - Renegotiate";
+        }
+        enum Delete {
+          description
+            "Enum Value - Delete";
+        }
+      }
+      description
+        "Device.IPsec.Profile.{i}.IKEv2SAExpiryAction";
+      reference
+        "Device.IPsec.Profile.{i}.IKEv2SAExpiryAction";
+    }
+    leaf child-sa-traffic-limit {
+      type uint64;
+      description
+        "Device.IPsec.Profile.{i}.ChildSATrafficLimit";
+      reference
+        "Device.IPsec.Profile.{i}.ChildSATrafficLimit";
+    }
+    leaf child-sa-time-limit {
+      type uint32;
+      description
+        "Device.IPsec.Profile.{i}.ChildSATimeLimit";
+      reference
+        "Device.IPsec.Profile.{i}.ChildSATimeLimit";
+    }
+    leaf child-sa-expiry-action {
+      type enumeration {
+        enum Renegotiate {
+          description
+            "Enum Value - Renegotiate";
+        }
+        enum Delete {
+          description
+            "Enum Value - Delete";
+        }
+      }
+      description
+        "Device.IPsec.Profile.{i}.ChildSAExpiryAction";
+      reference
+        "Device.IPsec.Profile.{i}.ChildSAExpiryAction";
+    }
+    leaf sent-cp-attr-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Profile.{i}.SentCPAttrNumberOfEntries";
+      reference
+        "Device.IPsec.Profile.{i}.SentCPAttrNumberOfEntries";
+    }
+  }
+
+  grouping profile-sent-cp-attr-g {
+    description
+      "Grouping object for Device.IPsec.Profile.{i}.SentCPAttr.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.IPsec.Profile.{i}.SentCPAttr.{i}.Enable";
+      reference
+        "Device.IPsec.Profile.{i}.SentCPAttr.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IPsec.Profile.{i}.SentCPAttr.{i}.Alias";
+      reference
+        "Device.IPsec.Profile.{i}.SentCPAttr.{i}.Alias";
+    }
+    leaf type {
+      type uint32 {
+        range "0..32767";
+      }
+      description
+        "Device.IPsec.Profile.{i}.SentCPAttr.{i}.Type";
+      reference
+        "Device.IPsec.Profile.{i}.SentCPAttr.{i}.Type";
+    }
+    leaf value {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.IPsec.Profile.{i}.SentCPAttr.{i}.Value";
+      reference
+        "Device.IPsec.Profile.{i}.SentCPAttr.{i}.Value";
+    }
+  }
+
+  grouping i-psec-stats-g {
+    description
+      "Grouping object for Device.IPsec.Stats.";
+    leaf negotiation-failures {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Stats.NegotiationFailures";
+      reference
+        "Device.IPsec.Stats.NegotiationFailures";
+    }
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.Stats.BytesSent";
+      reference
+        "Device.IPsec.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.Stats.BytesReceived";
+      reference
+        "Device.IPsec.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.Stats.PacketsSent";
+      reference
+        "Device.IPsec.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.Stats.PacketsReceived";
+      reference
+        "Device.IPsec.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Stats.ErrorsSent";
+      reference
+        "Device.IPsec.Stats.ErrorsSent";
+    }
+    leaf unknown-spi-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Stats.UnknownSPIErrors";
+      reference
+        "Device.IPsec.Stats.UnknownSPIErrors";
+    }
+    leaf decryption-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Stats.DecryptionErrors";
+      reference
+        "Device.IPsec.Stats.DecryptionErrors";
+    }
+    leaf integrity-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Stats.IntegrityErrors";
+      reference
+        "Device.IPsec.Stats.IntegrityErrors";
+    }
+    leaf replay-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Stats.ReplayErrors";
+      reference
+        "Device.IPsec.Stats.ReplayErrors";
+    }
+    leaf policy-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Stats.PolicyErrors";
+      reference
+        "Device.IPsec.Stats.PolicyErrors";
+    }
+    leaf other-receive-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Stats.OtherReceiveErrors";
+      reference
+        "Device.IPsec.Stats.OtherReceiveErrors";
+    }
+  }
+
+  grouping i-psec-tunnel-g {
+    description
+      "Grouping object for Device.IPsec.Tunnel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IPsec.Tunnel.{i}.Alias";
+      reference
+        "Device.IPsec.Tunnel.{i}.Alias";
+    }
+    leaf tunnel-interface {
+      type string;
+      config false;
+      description
+        "Device.IPsec.Tunnel.{i}.TunnelInterface";
+      reference
+        "Device.IPsec.Tunnel.{i}.TunnelInterface";
+    }
+    leaf tunneled-interface {
+      type string;
+      config false;
+      description
+        "Device.IPsec.Tunnel.{i}.TunneledInterface";
+      reference
+        "Device.IPsec.Tunnel.{i}.TunneledInterface";
+    }
+    leaf filters {
+      type string;
+      config false;
+      description
+        "Device.IPsec.Tunnel.{i}.Filters";
+      reference
+        "Device.IPsec.Tunnel.{i}.Filters";
+    }
+  }
+
+  grouping i-psec-tunnel-stats-g {
+    description
+      "Grouping object for Device.IPsec.Tunnel.{i}.Stats.";
+    leaf decryption-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Tunnel.{i}.Stats.DecryptionErrors";
+      reference
+        "Device.IPsec.Tunnel.{i}.Stats.DecryptionErrors";
+    }
+    leaf integrity-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Tunnel.{i}.Stats.IntegrityErrors";
+      reference
+        "Device.IPsec.Tunnel.{i}.Stats.IntegrityErrors";
+    }
+    leaf replay-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Tunnel.{i}.Stats.ReplayErrors";
+      reference
+        "Device.IPsec.Tunnel.{i}.Stats.ReplayErrors";
+    }
+    leaf policy-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Tunnel.{i}.Stats.PolicyErrors";
+      reference
+        "Device.IPsec.Tunnel.{i}.Stats.PolicyErrors";
+    }
+    leaf other-receive-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Tunnel.{i}.Stats.OtherReceiveErrors";
+      reference
+        "Device.IPsec.Tunnel.{i}.Stats.OtherReceiveErrors";
+    }
+  }
+
+  grouping device-ipv6rd-g {
+    description
+      "Grouping object for Device.IPv6rd.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.IPv6rd.Enable";
+      reference
+        "Device.IPv6rd.Enable";
+    }
+    leaf interface-setting-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IPv6rd.InterfaceSettingNumberOfEntries";
+      reference
+        "Device.IPv6rd.InterfaceSettingNumberOfEntries";
+    }
+  }
+
+  grouping ipv6rd-interface-setting-g {
+    description
+      "Grouping object for Device.IPv6rd.InterfaceSetting.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.IPv6rd.InterfaceSetting.{i}.Enable";
+      reference
+        "Device.IPv6rd.InterfaceSetting.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IPv6rd.InterfaceSetting.{i}.Status";
+      reference
+        "Device.IPv6rd.InterfaceSetting.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IPv6rd.InterfaceSetting.{i}.Alias";
+      reference
+        "Device.IPv6rd.InterfaceSetting.{i}.Alias";
+    }
+    leaf border-relay-ipv4-addresses {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.IPv6rd.InterfaceSetting.{i}.BorderRelayIPv4Addresses";
+      reference
+        "Device.IPv6rd.InterfaceSetting.{i}.BorderRelayIPv4Addresses";
+    }
+    leaf all-traffic-to-border-relay {
+      type boolean;
+      description
+        "Device.IPv6rd.InterfaceSetting.{i}.AllTrafficToBorderRelay";
+      reference
+        "Device.IPv6rd.InterfaceSetting.{i}.AllTrafficToBorderRelay";
+    }
+    leaf spipv6-prefix {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.IPv6rd.InterfaceSetting.{i}.SPIPv6Prefix";
+      reference
+        "Device.IPv6rd.InterfaceSetting.{i}.SPIPv6Prefix";
+    }
+    leaf ipv4-mask-length {
+      type uint32 {
+        range "0..32";
+      }
+      description
+        "Device.IPv6rd.InterfaceSetting.{i}.IPv4MaskLength";
+      reference
+        "Device.IPv6rd.InterfaceSetting.{i}.IPv4MaskLength";
+    }
+    leaf address-source {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IPv6rd.InterfaceSetting.{i}.AddressSource";
+      reference
+        "Device.IPv6rd.InterfaceSetting.{i}.AddressSource";
+    }
+    leaf tunnel-interface {
+      type string;
+      config false;
+      description
+        "Device.IPv6rd.InterfaceSetting.{i}.TunnelInterface";
+      reference
+        "Device.IPv6rd.InterfaceSetting.{i}.TunnelInterface";
+    }
+    leaf tunneled-interface {
+      type string;
+      config false;
+      description
+        "Device.IPv6rd.InterfaceSetting.{i}.TunneledInterface";
+      reference
+        "Device.IPv6rd.InterfaceSetting.{i}.TunneledInterface";
+    }
+  }
+
+  grouping device-interface-stack-g {
+    description
+      "Grouping object for Device.InterfaceStack.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.InterfaceStack.{i}.Alias";
+      reference
+        "Device.InterfaceStack.{i}.Alias";
+    }
+    leaf higher-layer {
+      type string;
+      config false;
+      description
+        "Device.InterfaceStack.{i}.HigherLayer";
+      reference
+        "Device.InterfaceStack.{i}.HigherLayer";
+    }
+    leaf lower-layer {
+      type string;
+      config false;
+      description
+        "Device.InterfaceStack.{i}.LowerLayer";
+      reference
+        "Device.InterfaceStack.{i}.LowerLayer";
+    }
+    leaf higher-alias {
+      type string;
+      config false;
+      description
+        "Device.InterfaceStack.{i}.HigherAlias";
+      reference
+        "Device.InterfaceStack.{i}.HigherAlias";
+    }
+    leaf lower-alias {
+      type string;
+      config false;
+      description
+        "Device.InterfaceStack.{i}.LowerAlias";
+      reference
+        "Device.InterfaceStack.{i}.LowerAlias";
+    }
+  }
+
+  grouping device-l2-tpv3-g {
+    description
+      "Grouping object for Device.L2TPv3.";
+    leaf tunnel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.TunnelNumberOfEntries";
+      reference
+        "Device.L2TPv3.TunnelNumberOfEntries";
+    }
+    leaf filter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.FilterNumberOfEntries";
+      reference
+        "Device.L2TPv3.FilterNumberOfEntries";
+    }
+  }
+
+  grouping l2-tpv3-filter-g {
+    description
+      "Grouping object for Device.L2TPv3.Filter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.L2TPv3.Filter.{i}.Enable";
+      reference
+        "Device.L2TPv3.Filter.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.L2TPv3.Filter.{i}.Status";
+      reference
+        "Device.L2TPv3.Filter.{i}.Status";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.L2TPv3.Filter.{i}.Order";
+      reference
+        "Device.L2TPv3.Filter.{i}.Order";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.L2TPv3.Filter.{i}.Alias";
+      reference
+        "Device.L2TPv3.Filter.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.L2TPv3.Filter.{i}.Interface";
+      reference
+        "Device.L2TPv3.Filter.{i}.Interface";
+    }
+    leaf all-interfaces {
+      type boolean;
+      description
+        "Device.L2TPv3.Filter.{i}.AllInterfaces";
+      reference
+        "Device.L2TPv3.Filter.{i}.AllInterfaces";
+    }
+    leaf vlanid-check {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.L2TPv3.Filter.{i}.VLANIDCheck";
+      reference
+        "Device.L2TPv3.Filter.{i}.VLANIDCheck";
+    }
+    leaf vlanid-exclude {
+      type boolean;
+      description
+        "Device.L2TPv3.Filter.{i}.VLANIDExclude";
+      reference
+        "Device.L2TPv3.Filter.{i}.VLANIDExclude";
+    }
+    leaf dscp-mark-policy {
+      type int32 {
+        range "-2..63";
+      }
+      description
+        "Device.L2TPv3.Filter.{i}.DSCPMarkPolicy";
+      reference
+        "Device.L2TPv3.Filter.{i}.DSCPMarkPolicy";
+    }
+  }
+
+  grouping l2-tpv3-tunnel-g {
+    description
+      "Grouping object for Device.L2TPv3.Tunnel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Enable";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Status";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.Alias";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Alias";
+    }
+    leaf remote-endpoints {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.RemoteEndpoints";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.RemoteEndpoints";
+    }
+    leaf keep-alive-policy {
+      type enumeration {
+        enum ICMP {
+          description
+            "Enum Value - ICMP";
+        }
+        enum None {
+          description
+            "Enum Value - None";
+        }
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.KeepAlivePolicy";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.KeepAlivePolicy";
+    }
+    leaf keep-alive-timeout {
+      type uint32;
+      description
+        "Device.L2TPv3.Tunnel.{i}.KeepAliveTimeout";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.KeepAliveTimeout";
+    }
+    leaf keep-alive-threshold {
+      type uint32;
+      description
+        "Device.L2TPv3.Tunnel.{i}.KeepAliveThreshold";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.KeepAliveThreshold";
+    }
+    leaf delivery-header-protocol {
+      type enumeration {
+        enum IPv4 {
+          description
+            "Enum Value - IPv4";
+        }
+        enum IPv6 {
+          description
+            "Enum Value - IPv6";
+        }
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.DeliveryHeaderProtocol";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.DeliveryHeaderProtocol";
+    }
+    leaf default-dscp-mark {
+      type uint32;
+      description
+        "Device.L2TPv3.Tunnel.{i}.DefaultDSCPMark";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.DefaultDSCPMark";
+    }
+    leaf tunnel-encapsulation {
+      type enumeration {
+        enum IP {
+          description
+            "Enum Value - IP";
+        }
+        enum UDP {
+          description
+            "Enum Value - UDP";
+        }
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.TunnelEncapsulation";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.TunnelEncapsulation";
+    }
+    leaf connected-remote-endpoint {
+      type string;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.ConnectedRemoteEndpoint";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.ConnectedRemoteEndpoint";
+    }
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.InterfaceNumberOfEntries";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.InterfaceNumberOfEntries";
+    }
+  }
+
+  grouping l2-tpv3-tunnel-interface-g {
+    description
+      "Grouping object for Device.L2TPv3.Tunnel.{i}.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Enable";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Status";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Alias";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Name";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.LastChange";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.LowerLayers";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.LowerLayers";
+    }
+    leaf session-id {
+      type int32 {
+        range "-1 | 1..65535";
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.SessionID";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.SessionID";
+    }
+    leaf cookie-policy {
+      type enumeration {
+        enum Disabled {
+          description
+            "Enum Value - Disabled";
+        }
+        enum Configured {
+          description
+            "Enum Value - Configured";
+        }
+        enum Generated {
+          description
+            "Enum Value - Generated";
+        }
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.CookiePolicy";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.CookiePolicy";
+    }
+    leaf cookie {
+      type uint64;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Cookie";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Cookie";
+    }
+  }
+
+  grouping l2-tpv3-tunnel-interface-stats-g {
+    description
+      "Grouping object for Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf discard-checksum-received {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.DiscardChecksumReceived";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.DiscardChecksumReceived";
+    }
+    leaf discard-sequence-number-received {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.DiscardSequenceNumberReceived";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.DiscardSequenceNumberReceived";
+    }
+  }
+
+  grouping l2-tpv3-tunnel-stats-g {
+    description
+      "Grouping object for Device.L2TPv3.Tunnel.{i}.Stats.";
+    leaf keep-alive-sent {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Stats.KeepAliveSent";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Stats.KeepAliveSent";
+    }
+    leaf keep-alive-received {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Stats.KeepAliveReceived";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Stats.KeepAliveReceived";
+    }
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Stats.BytesSent";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Stats.BytesReceived";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Stats.PacketsSent";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Stats.PacketsReceived";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Stats.ErrorsSent";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Stats.ErrorsReceived";
+    }
+  }
+
+  grouping tunnel-udp-g {
+    description
+      "Grouping object for Device.L2TPv3.Tunnel.{i}.UDP.";
+    leaf source-port {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.UDP.SourcePort";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.UDP.SourcePort";
+    }
+    leaf remote-port {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.UDP.RemotePort";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.UDP.RemotePort";
+    }
+    leaf enable-checksum {
+      type boolean;
+      description
+        "Device.L2TPv3.Tunnel.{i}.UDP.EnableChecksum";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.UDP.EnableChecksum";
+    }
+  }
+
+  grouping device-le-ds-g {
+    description
+      "Grouping object for Device.LEDs.";
+    leaf led-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LEDs.LEDNumberOfEntries";
+      reference
+        "Device.LEDs.LEDNumberOfEntries";
+    }
+  }
+
+  grouping le-ds-led-g {
+    description
+      "Grouping object for Device.LEDs.LED.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LEDs.LED.{i}.Alias";
+      reference
+        "Device.LEDs.LED.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      description
+        "Device.LEDs.LED.{i}.Name";
+      reference
+        "Device.LEDs.LED.{i}.Name";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.LEDs.LED.{i}.Status";
+      reference
+        "Device.LEDs.LED.{i}.Status";
+    }
+    leaf reason {
+      type string;
+      config false;
+      description
+        "Device.LEDs.LED.{i}.Reason";
+      reference
+        "Device.LEDs.LED.{i}.Reason";
+    }
+    leaf cycle-period-repetitions {
+      type int32;
+      config false;
+      description
+        "Device.LEDs.LED.{i}.CyclePeriodRepetitions";
+      reference
+        "Device.LEDs.LED.{i}.CyclePeriodRepetitions";
+    }
+    leaf location {
+      type string;
+      config false;
+      description
+        "Device.LEDs.LED.{i}.Location";
+      reference
+        "Device.LEDs.LED.{i}.Location";
+    }
+    leaf relative-x-position {
+      type uint32;
+      config false;
+      description
+        "Device.LEDs.LED.{i}.RelativeXPosition";
+      reference
+        "Device.LEDs.LED.{i}.RelativeXPosition";
+    }
+    leaf relative-y-position {
+      type uint32;
+      config false;
+      description
+        "Device.LEDs.LED.{i}.RelativeYPosition";
+      reference
+        "Device.LEDs.LED.{i}.RelativeYPosition";
+    }
+    leaf cycle-element-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LEDs.LED.{i}.CycleElementNumberOfEntries";
+      reference
+        "Device.LEDs.LED.{i}.CycleElementNumberOfEntries";
+    }
+  }
+
+  grouping led-current-cycle-element-g {
+    description
+      "Grouping object for Device.LEDs.LED.{i}.CurrentCycleElement.";
+    leaf cycle-element-reference {
+      type string;
+      config false;
+      description
+        "Device.LEDs.LED.{i}.CurrentCycleElement.CycleElementReference";
+      reference
+        "Device.LEDs.LED.{i}.CurrentCycleElement.CycleElementReference";
+    }
+    leaf color {
+      type string;
+      config false;
+      description
+        "Device.LEDs.LED.{i}.CurrentCycleElement.Color";
+      reference
+        "Device.LEDs.LED.{i}.CurrentCycleElement.Color";
+    }
+    leaf duration {
+      type uint32;
+      config false;
+      description
+        "Device.LEDs.LED.{i}.CurrentCycleElement.Duration";
+      reference
+        "Device.LEDs.LED.{i}.CurrentCycleElement.Duration";
+    }
+  }
+
+  grouping led-cycle-element-g {
+    description
+      "Grouping object for Device.LEDs.LED.{i}.CycleElement.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LEDs.LED.{i}.CycleElement.{i}.Alias";
+      reference
+        "Device.LEDs.LED.{i}.CycleElement.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LEDs.LED.{i}.CycleElement.{i}.Enable";
+      reference
+        "Device.LEDs.LED.{i}.CycleElement.{i}.Enable";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.LEDs.LED.{i}.CycleElement.{i}.Order";
+      reference
+        "Device.LEDs.LED.{i}.CycleElement.{i}.Order";
+    }
+    leaf color {
+      type string {
+        length "3";
+      }
+      description
+        "Device.LEDs.LED.{i}.CycleElement.{i}.Color";
+      reference
+        "Device.LEDs.LED.{i}.CycleElement.{i}.Color";
+    }
+    leaf duration {
+      type uint32;
+      description
+        "Device.LEDs.LED.{i}.CycleElement.{i}.Duration";
+      reference
+        "Device.LEDs.LED.{i}.CycleElement.{i}.Duration";
+    }
+    leaf fade-interval {
+      type uint32;
+      description
+        "Device.LEDs.LED.{i}.CycleElement.{i}.FadeInterval";
+      reference
+        "Device.LEDs.LED.{i}.CycleElement.{i}.FadeInterval";
+    }
+  }
+
+  grouping lldp-discovery-g {
+    description
+      "Grouping object for Device.LLDP.Discovery.";
+    leaf device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LLDP.Discovery.DeviceNumberOfEntries";
+      reference
+        "Device.LLDP.Discovery.DeviceNumberOfEntries";
+    }
+  }
+
+  grouping discovery-device-g {
+    description
+      "Grouping object for Device.LLDP.Discovery.Device.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf interface {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.Interface";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.Interface";
+    }
+    leaf chassis-id-subtype {
+      type uint32;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.ChassisIDSubtype";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.ChassisIDSubtype";
+    }
+    leaf chassis-id {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.ChassisID";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.ChassisID";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.Host";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.Host";
+    }
+    leaf port-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.PortNumberOfEntries";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.PortNumberOfEntries";
+    }
+  }
+
+  grouping device-device-information-g {
+    description
+      "Grouping object for Device.LLDP.Discovery.Device.{i}.DeviceInformation.";
+    leaf device-category {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.DeviceCategory";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.DeviceCategory";
+    }
+    leaf manufacturer-oui {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.ManufacturerOUI";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.ManufacturerOUI";
+    }
+    leaf model-name {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.ModelName";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.ModelName";
+    }
+    leaf model-number {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.ModelNumber";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.ModelNumber";
+    }
+    leaf vendor-specific-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecificNumberOfEntries";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecificNumberOfEntries";
+    }
+  }
+
+  grouping device-information-vendor-specific-g {
+    description
+      "Grouping object for Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecific.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf organization-code {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecific.{i}.OrganizationCode";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecific.{i}.OrganizationCode";
+    }
+    leaf information-type {
+      type uint32;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecific.{i}.InformationType";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecific.{i}.InformationType";
+    }
+    leaf information {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecific.{i}.Information";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecific.{i}.Information";
+    }
+  }
+
+  grouping device-port-g {
+    description
+      "Grouping object for Device.LLDP.Discovery.Device.{i}.Port.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf port-id-subtype {
+      type uint32;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.PortIDSubtype";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.PortIDSubtype";
+    }
+    leaf port-id {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.PortID";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.PortID";
+    }
+    leaf ttl {
+      type uint32;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.TTL";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.TTL";
+    }
+    leaf port-description {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.PortDescription";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.PortDescription";
+    }
+    leaf mac-address-list {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.MACAddressList";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.MACAddressList";
+    }
+    leaf last-update {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.LastUpdate";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.LastUpdate";
+    }
+  }
+
+  grouping port-link-information-g {
+    description
+      "Grouping object for Device.LLDP.Discovery.Device.{i}.Port.{i}.LinkInformation.";
+    leaf interface-type {
+      type uint32;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.LinkInformation.InterfaceType";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.LinkInformation.InterfaceType";
+    }
+    leaf mac-forwarding-table {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.LinkInformation.MACForwardingTable";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.LinkInformation.MACForwardingTable";
+    }
+  }
+
+  grouping device-lmap-g {
+    description
+      "Grouping object for Device.LMAP.";
+    leaf measurement-agent-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgentNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgentNumberOfEntries";
+    }
+    leaf report-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.ReportNumberOfEntries";
+      reference
+        "Device.LMAP.ReportNumberOfEntries";
+    }
+    leaf event-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.EventNumberOfEntries";
+      reference
+        "Device.LMAP.EventNumberOfEntries";
+    }
+  }
+
+  grouping lmap-event-g {
+    description
+      "Grouping object for Device.LMAP.Event.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.Event.{i}.Enable";
+      reference
+        "Device.LMAP.Event.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.Event.{i}.Alias";
+      reference
+        "Device.LMAP.Event.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.LMAP.Event.{i}.Name";
+      reference
+        "Device.LMAP.Event.{i}.Name";
+    }
+    leaf type {
+      type enumeration {
+        enum PeriodicTiming {
+          description
+            "Enum Value - PeriodicTiming";
+        }
+        enum CalendarTiming {
+          description
+            "Enum Value - CalendarTiming";
+        }
+        enum OneOffTiming {
+          description
+            "Enum Value - OneOffTiming";
+        }
+        enum Immediate {
+          description
+            "Enum Value - Immediate";
+        }
+        enum Startup {
+          description
+            "Enum Value - Startup";
+        }
+        enum ControllerLost {
+          description
+            "Enum Value - ControllerLost";
+        }
+        enum ControllerConnected {
+          description
+            "Enum Value - ControllerConnected";
+        }
+      }
+      description
+        "Device.LMAP.Event.{i}.Type";
+      reference
+        "Device.LMAP.Event.{i}.Type";
+    }
+    leaf randomness-spread {
+      type int32;
+      description
+        "Device.LMAP.Event.{i}.RandomnessSpread";
+      reference
+        "Device.LMAP.Event.{i}.RandomnessSpread";
+    }
+    leaf cycle-interval {
+      type int32;
+      description
+        "Device.LMAP.Event.{i}.CycleInterval";
+      reference
+        "Device.LMAP.Event.{i}.CycleInterval";
+    }
+  }
+
+  grouping event-calendar-timer-g {
+    description
+      "Grouping object for Device.LMAP.Event.{i}.CalendarTimer.";
+    leaf start-time {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.CalendarTimer.StartTime";
+      reference
+        "Device.LMAP.Event.{i}.CalendarTimer.StartTime";
+    }
+    leaf end-time {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.CalendarTimer.EndTime";
+      reference
+        "Device.LMAP.Event.{i}.CalendarTimer.EndTime";
+    }
+    leaf schedule-months {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleMonths";
+      reference
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleMonths";
+    }
+    leaf schedule-days-of-month {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleDaysOfMonth";
+      reference
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleDaysOfMonth";
+    }
+    leaf schedule-days-of-week {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleDaysOfWeek";
+      reference
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleDaysOfWeek";
+    }
+    leaf schedule-hours-of-day {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleHoursOfDay";
+      reference
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleHoursOfDay";
+    }
+    leaf schedule-minutes-of-hour {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleMinutesOfHour";
+      reference
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleMinutesOfHour";
+    }
+    leaf schedule-seconds-of-minute {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleSecondsOfMinute";
+      reference
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleSecondsOfMinute";
+    }
+    leaf enable-schedule-timezone-offset {
+      type boolean;
+      description
+        "Device.LMAP.Event.{i}.CalendarTimer.EnableScheduleTimezoneOffset";
+      reference
+        "Device.LMAP.Event.{i}.CalendarTimer.EnableScheduleTimezoneOffset";
+    }
+    leaf schedule-timezone-offset {
+      type int32 {
+        range "-23..23";
+      }
+      description
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleTimezoneOffset";
+      reference
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleTimezoneOffset";
+    }
+  }
+
+  grouping event-one-off-g {
+    description
+      "Grouping object for Device.LMAP.Event.{i}.OneOff.";
+    leaf start-time {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.OneOff.StartTime";
+      reference
+        "Device.LMAP.Event.{i}.OneOff.StartTime";
+    }
+  }
+
+  grouping event-periodic-timer-g {
+    description
+      "Grouping object for Device.LMAP.Event.{i}.PeriodicTimer.";
+    leaf start-time {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.PeriodicTimer.StartTime";
+      reference
+        "Device.LMAP.Event.{i}.PeriodicTimer.StartTime";
+    }
+    leaf end-time {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.PeriodicTimer.EndTime";
+      reference
+        "Device.LMAP.Event.{i}.PeriodicTimer.EndTime";
+    }
+    leaf interval {
+      type uint32;
+      description
+        "Device.LMAP.Event.{i}.PeriodicTimer.Interval";
+      reference
+        "Device.LMAP.Event.{i}.PeriodicTimer.Interval";
+    }
+  }
+
+  grouping lmap-measurement-agent-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Alias";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Enable";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Enable";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Version";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Version";
+    }
+    leaf last-started {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.LastStarted";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.LastStarted";
+    }
+    leaf capability-tags {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.CapabilityTags";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.CapabilityTags";
+    }
+    leaf identifier {
+      type string {
+        length "min..36";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Identifier";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Identifier";
+    }
+    leaf group-identifier {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.GroupIdentifier";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.GroupIdentifier";
+    }
+    leaf measurement-point {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.MeasurementPoint";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.MeasurementPoint";
+    }
+    leaf use-agent-identifier-in-reports {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.UseAgentIdentifierInReports";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.UseAgentIdentifierInReports";
+    }
+    leaf use-group-identifier-in-reports {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.UseGroupIdentifierInReports";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.UseGroupIdentifierInReports";
+    }
+    leaf use-measurement-point-in-reports {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.UseMeasurementPointInReports";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.UseMeasurementPointInReports";
+    }
+    leaf public-credential {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.PublicCredential";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.PublicCredential";
+    }
+    leaf private-credential {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.PrivateCredential";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.PrivateCredential";
+    }
+    leaf event-log {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.EventLog";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.EventLog";
+    }
+    leaf task-capability-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapabilityNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapabilityNumberOfEntries";
+    }
+    leaf schedule-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.ScheduleNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.ScheduleNumberOfEntries";
+    }
+    leaf task-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.TaskNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.TaskNumberOfEntries";
+    }
+    leaf communication-channel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannelNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannelNumberOfEntries";
+    }
+    leaf instruction-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.InstructionNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.InstructionNumberOfEntries";
+    }
+  }
+
+  grouping measurement-agent-communication-channel-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.Enable";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.Alias";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.Name";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.Name";
+    }
+    leaf use-bulk-data-profile {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.UseBulkDataProfile";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.UseBulkDataProfile";
+    }
+    leaf bulk-data-profile {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.BulkDataProfile";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.BulkDataProfile";
+    }
+    leaf target {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.Target";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.Target";
+    }
+    leaf target-public-credential {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.TargetPublicCredential";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.TargetPublicCredential";
+    }
+    leaf interface {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.Interface";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.Interface";
+    }
+  }
+
+  grouping measurement-agent-controller-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Controller.";
+    leaf controller-timeout {
+      type int32 {
+        range "0..max";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Controller.ControllerTimeout";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Controller.ControllerTimeout";
+    }
+    leaf control-schedules {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Controller.ControlSchedules";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Controller.ControlSchedules";
+    }
+    leaf control-tasks {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Controller.ControlTasks";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Controller.ControlTasks";
+    }
+    leaf control-channels {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Controller.ControlChannels";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Controller.ControlChannels";
+    }
+  }
+
+  grouping measurement-agent-instruction-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.Enable";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.Alias";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.Alias";
+    }
+    leaf last-change {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.LastChange";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.LastChange";
+    }
+    leaf instruction-schedules {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.InstructionSchedules";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.InstructionSchedules";
+    }
+    leaf instruction-tasks {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.InstructionTasks";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.InstructionTasks";
+    }
+    leaf report-channels {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.ReportChannels";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.ReportChannels";
+    }
+    leaf measurement-suppression-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppressionNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppressionNumberOfEntries";
+    }
+  }
+
+  grouping instruction-measurement-suppression-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.Enable";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.Alias";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.Name";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.Name";
+    }
+    leaf state {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.State";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.State";
+    }
+    leaf stop-running {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.StopRunning";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.StopRunning";
+    }
+    leaf start {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.Start";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.Start";
+    }
+    leaf end {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.End";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.End";
+    }
+    leaf suppression-match {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.SuppressionMatch";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.SuppressionMatch";
+    }
+  }
+
+  grouping measurement-agent-schedule-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Enable";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Alias";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Name";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Name";
+    }
+    leaf state {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.State";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.State";
+    }
+    leaf start {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Start";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Start";
+    }
+    leaf end {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.End";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.End";
+    }
+    leaf duration {
+      type uint32;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Duration";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Duration";
+    }
+    leaf tags {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Tags";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Tags";
+    }
+    leaf suppression-tags {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.SuppressionTags";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.SuppressionTags";
+    }
+    leaf execution-mode {
+      type enumeration {
+        enum Sequential {
+          description
+            "Enum Value - Sequential";
+        }
+        enum Parallel {
+          description
+            "Enum Value - Parallel";
+        }
+        enum Pipelined {
+          description
+            "Enum Value - Pipelined";
+        }
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.ExecutionMode";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.ExecutionMode";
+    }
+    leaf last-invocation {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.LastInvocation";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.LastInvocation";
+    }
+    leaf storage {
+      type uint64;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Storage";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Storage";
+    }
+    leaf action-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.ActionNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.ActionNumberOfEntries";
+    }
+  }
+
+  grouping schedule-action-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Enable";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Alias";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Alias";
+    }
+    leaf state {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.State";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.State";
+    }
+    leaf order {
+      type uint32;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Order";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Order";
+    }
+    leaf task {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Task";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Task";
+    }
+    leaf output-destination {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.OutputDestination";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.OutputDestination";
+    }
+    leaf suppression-tags {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.SuppressionTags";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.SuppressionTags";
+    }
+    leaf tags {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Tags";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Tags";
+    }
+    leaf storage {
+      type uint64;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Storage";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Storage";
+    }
+    leaf last-invocation {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastInvocation";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastInvocation";
+    }
+    leaf last-successful-completion {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastSuccessfulCompletion";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastSuccessfulCompletion";
+    }
+    leaf last-successful-status-code {
+      type int32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastSuccessfulStatusCode";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastSuccessfulStatusCode";
+    }
+    leaf last-successful-message {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastSuccessfulMessage";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastSuccessfulMessage";
+    }
+    leaf last-failed-completion {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastFailedCompletion";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastFailedCompletion";
+    }
+    leaf last-failed-status-code {
+      type int32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastFailedStatusCode";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastFailedStatusCode";
+    }
+    leaf last-failed-message {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastFailedMessage";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastFailedMessage";
+    }
+    leaf option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.OptionNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.OptionNumberOfEntries";
+    }
+  }
+
+  grouping action-option-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.Enable";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.Alias";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.Alias";
+    }
+    leaf order {
+      type uint32;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.Order";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.Order";
+    }
+    leaf name {
+      type int32;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.Name";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.Name";
+    }
+    leaf value {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.Value";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.Value";
+    }
+  }
+
+  grouping action-stats-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.";
+    leaf invocations {
+      type uint64;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.Invocations";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.Invocations";
+    }
+    leaf suppressions {
+      type uint64;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.Suppressions";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.Suppressions";
+    }
+    leaf overlaps {
+      type uint64;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.Overlaps";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.Overlaps";
+    }
+    leaf failures {
+      type uint64;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.Failures";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.Failures";
+    }
+  }
+
+  grouping schedule-stats-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.";
+    leaf invocations {
+      type uint64;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.Invocations";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.Invocations";
+    }
+    leaf suppressions {
+      type uint64;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.Suppressions";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.Suppressions";
+    }
+    leaf overlaps {
+      type uint64;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.Overlaps";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.Overlaps";
+    }
+    leaf failures {
+      type uint64;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.Failures";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.Failures";
+    }
+  }
+
+  grouping measurement-agent-task-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Task.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Enable";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Alias";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Name";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Name";
+    }
+    leaf tags {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Tags";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Tags";
+    }
+    leaf option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.OptionNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.OptionNumberOfEntries";
+    }
+    leaf registry-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.RegistryNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.RegistryNumberOfEntries";
+    }
+  }
+
+  grouping task-option-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.Enable";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.Alias";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.Alias";
+    }
+    leaf order {
+      type uint32;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.Order";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.Order";
+    }
+    leaf name {
+      type int32;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.Name";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.Name";
+    }
+    leaf value {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.Value";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.Value";
+    }
+  }
+
+  grouping task-registry-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.Enable";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.Alias";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.Alias";
+    }
+    leaf registry-entry {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.RegistryEntry";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.RegistryEntry";
+    }
+    leaf roles {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.Roles";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.Roles";
+    }
+  }
+
+  grouping measurement-agent-task-capability-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Name";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Name";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Version";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Version";
+    }
+    leaf task-capability-registry-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.TaskCapabilityRegistryNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.TaskCapabilityRegistryNumberOfEntries";
+    }
+  }
+
+  grouping task-capability-registry-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Registry.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf registry-entry {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Registry.{i}.RegistryEntry";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Registry.{i}.RegistryEntry";
+    }
+    leaf roles {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Registry.{i}.Roles";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Registry.{i}.Roles";
+    }
+  }
+
+  grouping lmap-report-g {
+    description
+      "Grouping object for Device.LMAP.Report.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf report-date {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.ReportDate";
+      reference
+        "Device.LMAP.Report.{i}.ReportDate";
+    }
+    leaf agent-identifier {
+      type string {
+        length "min..36";
+      }
+      config false;
+      description
+        "Device.LMAP.Report.{i}.AgentIdentifier";
+      reference
+        "Device.LMAP.Report.{i}.AgentIdentifier";
+    }
+    leaf group-identifier {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.GroupIdentifier";
+      reference
+        "Device.LMAP.Report.{i}.GroupIdentifier";
+    }
+    leaf measurement-point {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.MeasurementPoint";
+      reference
+        "Device.LMAP.Report.{i}.MeasurementPoint";
+    }
+    leaf result-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.ResultNumberOfEntries";
+      reference
+        "Device.LMAP.Report.{i}.ResultNumberOfEntries";
+    }
+  }
+
+  grouping report-result-g {
+    description
+      "Grouping object for Device.LMAP.Report.{i}.Result.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf task-name {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.TaskName";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.TaskName";
+    }
+    leaf schedule-name {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.ScheduleName";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.ScheduleName";
+    }
+    leaf action-name {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.ActionName";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.ActionName";
+    }
+    leaf event-time {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.EventTime";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.EventTime";
+    }
+    leaf start-time {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.StartTime";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.StartTime";
+    }
+    leaf end-time {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.EndTime";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.EndTime";
+    }
+    leaf cycle-number {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.CycleNumber";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.CycleNumber";
+    }
+    leaf status {
+      type int32;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.Status";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.Status";
+    }
+    leaf tags {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.Tags";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.Tags";
+    }
+    leaf option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.OptionNumberOfEntries";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.OptionNumberOfEntries";
+    }
+    leaf result-conflict-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.ResultConflictNumberOfEntries";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.ResultConflictNumberOfEntries";
+    }
+    leaf result-report-table-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.ResultReportTableNumberOfEntries";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.ResultReportTableNumberOfEntries";
+    }
+  }
+
+  grouping result-conflict-g {
+    description
+      "Grouping object for Device.LMAP.Report.{i}.Result.{i}.Conflict.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf task-name {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.Conflict.{i}.TaskName";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.Conflict.{i}.TaskName";
+    }
+    leaf schedule-name {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.Conflict.{i}.ScheduleName";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.Conflict.{i}.ScheduleName";
+    }
+    leaf action-name {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.Conflict.{i}.ActionName";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.Conflict.{i}.ActionName";
+    }
+  }
+
+  grouping result-option-g {
+    description
+      "Grouping object for Device.LMAP.Report.{i}.Result.{i}.Option.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf order {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.Option.{i}.Order";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.Option.{i}.Order";
+    }
+    leaf name {
+      type int32;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.Option.{i}.Name";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.Option.{i}.Name";
+    }
+    leaf value {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.Option.{i}.Value";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.Option.{i}.Value";
+    }
+  }
+
+  grouping result-report-table-g {
+    description
+      "Grouping object for Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf column-labels {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.ColumnLabels";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.ColumnLabels";
+    }
+    leaf result-report-row-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.ResultReportRowNumberOfEntries";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.ResultReportRowNumberOfEntries";
+    }
+    leaf registry-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.RegistryNumberOfEntries";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.RegistryNumberOfEntries";
+    }
+  }
+
+  grouping report-table-registry-g {
+    description
+      "Grouping object for Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.Registry.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf registry-entry {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.Registry.{i}.RegistryEntry";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.Registry.{i}.RegistryEntry";
+    }
+    leaf roles {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.Registry.{i}.Roles";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.Registry.{i}.Roles";
+    }
+  }
+
+  grouping report-table-result-row-g {
+    description
+      "Grouping object for Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.ResultRow.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf values {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.ResultRow.{i}.Values";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.ResultRow.{i}.Values";
+    }
+  }
+
+  grouping device-map-g {
+    description
+      "Grouping object for Device.MAP.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.MAP.Enable";
+      reference
+        "Device.MAP.Enable";
+    }
+    leaf domain-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MAP.DomainNumberOfEntries";
+      reference
+        "Device.MAP.DomainNumberOfEntries";
+    }
+  }
+
+  grouping map-domain-g {
+    description
+      "Grouping object for Device.MAP.Domain.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.MAP.Domain.{i}.Enable";
+      reference
+        "Device.MAP.Domain.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Status";
+      reference
+        "Device.MAP.Domain.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MAP.Domain.{i}.Alias";
+      reference
+        "Device.MAP.Domain.{i}.Alias";
+    }
+    leaf transport-mode {
+      type enumeration {
+        enum Encapsulation {
+          description
+            "Enum Value - Encapsulation";
+        }
+        enum Translation {
+          description
+            "Enum Value - Translation";
+        }
+      }
+      description
+        "Device.MAP.Domain.{i}.TransportMode";
+      reference
+        "Device.MAP.Domain.{i}.TransportMode";
+    }
+    leaf wan-interface {
+      type string;
+      description
+        "Device.MAP.Domain.{i}.WANInterface";
+      reference
+        "Device.MAP.Domain.{i}.WANInterface";
+    }
+    leaf ipv6-prefix {
+      type string;
+      description
+        "Device.MAP.Domain.{i}.IPv6Prefix";
+      reference
+        "Device.MAP.Domain.{i}.IPv6Prefix";
+    }
+    leaf bripv6-prefix {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.MAP.Domain.{i}.BRIPv6Prefix";
+      reference
+        "Device.MAP.Domain.{i}.BRIPv6Prefix";
+    }
+    leaf dscp-mark-policy {
+      type int32 {
+        range "-2..63";
+      }
+      description
+        "Device.MAP.Domain.{i}.DSCPMarkPolicy";
+      reference
+        "Device.MAP.Domain.{i}.DSCPMarkPolicy";
+    }
+    leaf psid-offset {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "Device.MAP.Domain.{i}.PSIDOffset";
+      reference
+        "Device.MAP.Domain.{i}.PSIDOffset";
+    }
+    leaf psid-length {
+      type uint32 {
+        range "0..16";
+      }
+      description
+        "Device.MAP.Domain.{i}.PSIDLength";
+      reference
+        "Device.MAP.Domain.{i}.PSIDLength";
+    }
+    leaf psid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.MAP.Domain.{i}.PSID";
+      reference
+        "Device.MAP.Domain.{i}.PSID";
+    }
+    leaf include-system-ports {
+      type boolean;
+      description
+        "Device.MAP.Domain.{i}.IncludeSystemPorts";
+      reference
+        "Device.MAP.Domain.{i}.IncludeSystemPorts";
+    }
+    leaf rule-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.RuleNumberOfEntries";
+      reference
+        "Device.MAP.Domain.{i}.RuleNumberOfEntries";
+    }
+  }
+
+  grouping domain-interface-g {
+    description
+      "Grouping object for Device.MAP.Domain.{i}.Interface.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.MAP.Domain.{i}.Interface.Enable";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Status";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MAP.Domain.{i}.Interface.Alias";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Name";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.LastChange";
+      reference
+        "Device.MAP.Domain.{i}.Interface.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.MAP.Domain.{i}.Interface.LowerLayers";
+      reference
+        "Device.MAP.Domain.{i}.Interface.LowerLayers";
+    }
+  }
+
+  grouping domain-interface-stats-g {
+    description
+      "Grouping object for Device.MAP.Domain.{i}.Interface.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.BytesSent";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.BytesReceived";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.PacketsSent";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.PacketsReceived";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.ErrorsSent";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.ErrorsReceived";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.UnicastPacketsSent";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.UnicastPacketsReceived";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.DiscardPacketsSent";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.DiscardPacketsReceived";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.MulticastPacketsSent";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.MulticastPacketsReceived";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.BroadcastPacketsSent";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping domain-rule-g {
+    description
+      "Grouping object for Device.MAP.Domain.{i}.Rule.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.Enable";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.Status";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.Alias";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.Alias";
+    }
+    leaf origin {
+      type string;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.Origin";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.Origin";
+    }
+    leaf ipv6-prefix {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.IPv6Prefix";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.IPv6Prefix";
+    }
+    leaf ipv4-prefix {
+      type string {
+        length "min..18";
+      }
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.IPv4Prefix";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.IPv4Prefix";
+    }
+    leaf ea-bits-length {
+      type uint32 {
+        range "0..48";
+      }
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.EABitsLength";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.EABitsLength";
+    }
+    leaf is-fmr {
+      type boolean;
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.IsFMR";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.IsFMR";
+    }
+    leaf psid-offset {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.PSIDOffset";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.PSIDOffset";
+    }
+    leaf psid-length {
+      type uint32 {
+        range "0..16";
+      }
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.PSIDLength";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.PSIDLength";
+    }
+    leaf psid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.PSID";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.PSID";
+    }
+  }
+
+  grouping device-mqtt-g {
+    description
+      "Grouping object for Device.MQTT.";
+    leaf client-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.ClientNumberOfEntries";
+      reference
+        "Device.MQTT.ClientNumberOfEntries";
+    }
+    leaf broker-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.BrokerNumberOfEntries";
+      reference
+        "Device.MQTT.BrokerNumberOfEntries";
+    }
+  }
+
+  grouping mqtt-broker-g {
+    description
+      "Grouping object for Device.MQTT.Broker.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Alias";
+      reference
+        "Device.MQTT.Broker.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Name";
+      reference
+        "Device.MQTT.Broker.{i}.Name";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.MQTT.Broker.{i}.Enable";
+      reference
+        "Device.MQTT.Broker.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Status";
+      reference
+        "Device.MQTT.Broker.{i}.Status";
+    }
+    leaf port {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Port";
+      reference
+        "Device.MQTT.Broker.{i}.Port";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Interface";
+      reference
+        "Device.MQTT.Broker.{i}.Interface";
+    }
+    leaf username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Username";
+      reference
+        "Device.MQTT.Broker.{i}.Username";
+    }
+    leaf bridge-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.BridgeNumberOfEntries";
+      reference
+        "Device.MQTT.Broker.{i}.BridgeNumberOfEntries";
+    }
+  }
+
+  grouping broker-bridge-g {
+    description
+      "Grouping object for Device.MQTT.Broker.{i}.Bridge.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Alias";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Name";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Name";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Enable";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Status";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Status";
+    }
+    leaf client-id {
+      type string {
+        length "1..23";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ClientID";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ClientID";
+    }
+    leaf username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Username";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Username";
+    }
+    leaf transport-protocol {
+      type string;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.TransportProtocol";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.TransportProtocol";
+    }
+    leaf protocol-version {
+      type string;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ProtocolVersion";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ProtocolVersion";
+    }
+    leaf clean-session {
+      type boolean;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.CleanSession";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.CleanSession";
+    }
+    leaf message-retry-time {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.MessageRetryTime";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.MessageRetryTime";
+    }
+    leaf connect-retry-time {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ConnectRetryTime";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ConnectRetryTime";
+    }
+    leaf keep-alive-time {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.KeepAliveTime";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.KeepAliveTime";
+    }
+    leaf server-selection-algorithm {
+      type enumeration {
+        enum Priority {
+          description
+            "Enum Value - Priority";
+        }
+        enum RoundRobin {
+          description
+            "Enum Value - RoundRobin";
+        }
+        enum Random {
+          description
+            "Enum Value - Random";
+        }
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ServerSelectionAlgorithm";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ServerSelectionAlgorithm";
+    }
+    leaf server-connection {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ServerConnection";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ServerConnection";
+    }
+    leaf server-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ServerNumberOfEntries";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ServerNumberOfEntries";
+    }
+    leaf subscription-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.SubscriptionNumberOfEntries";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.SubscriptionNumberOfEntries";
+    }
+  }
+
+  grouping bridge-server-g {
+    description
+      "Grouping object for Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Enable";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Alias";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Alias";
+    }
+    leaf priority {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Priority";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Priority";
+    }
+    leaf weight {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Weight";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Weight";
+    }
+    leaf address {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Address";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Address";
+    }
+    leaf port {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Port";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Port";
+    }
+  }
+
+  grouping bridge-subscription-g {
+    description
+      "Grouping object for Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.Alias";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.Enable";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.Status";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.Status";
+    }
+    leaf topic {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.Topic";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.Topic";
+    }
+    leaf direction {
+      type enumeration {
+        enum out {
+          description
+            "Enum Value - out";
+        }
+        enum in {
+          description
+            "Enum Value - in";
+        }
+        enum both {
+          description
+            "Enum Value - both";
+        }
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.Direction";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.Direction";
+    }
+    leaf qo-s {
+      type uint32 {
+        range "0..2";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.QoS";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.QoS";
+    }
+    leaf local-prefix {
+      type string;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.LocalPrefix";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.LocalPrefix";
+    }
+    leaf remote-prefix {
+      type string;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.RemotePrefix";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.RemotePrefix";
+    }
+  }
+
+  grouping broker-stats-g {
+    description
+      "Grouping object for Device.MQTT.Broker.{i}.Stats.";
+    leaf total-number-of-clients {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Stats.TotalNumberOfClients";
+      reference
+        "Device.MQTT.Broker.{i}.Stats.TotalNumberOfClients";
+    }
+    leaf number-of-active-clients {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Stats.NumberOfActiveClients";
+      reference
+        "Device.MQTT.Broker.{i}.Stats.NumberOfActiveClients";
+    }
+    leaf number-of-inactive-clients {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Stats.NumberOfInactiveClients";
+      reference
+        "Device.MQTT.Broker.{i}.Stats.NumberOfInactiveClients";
+    }
+    leaf subscriptions {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Stats.Subscriptions";
+      reference
+        "Device.MQTT.Broker.{i}.Stats.Subscriptions";
+    }
+    leaf publish-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Stats.PublishSent";
+      reference
+        "Device.MQTT.Broker.{i}.Stats.PublishSent";
+    }
+    leaf publish-received {
+      type uint64;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Stats.PublishReceived";
+      reference
+        "Device.MQTT.Broker.{i}.Stats.PublishReceived";
+    }
+    leaf mqtt-messages-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Stats.MQTTMessagesSent";
+      reference
+        "Device.MQTT.Broker.{i}.Stats.MQTTMessagesSent";
+    }
+    leaf mqtt-messages-received {
+      type uint64;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Stats.MQTTMessagesReceived";
+      reference
+        "Device.MQTT.Broker.{i}.Stats.MQTTMessagesReceived";
+    }
+    leaf connection-errors {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Stats.ConnectionErrors";
+      reference
+        "Device.MQTT.Broker.{i}.Stats.ConnectionErrors";
+    }
+    leaf publish-errors {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Stats.PublishErrors";
+      reference
+        "Device.MQTT.Broker.{i}.Stats.PublishErrors";
+    }
+  }
+
+  grouping mqtt-capabilities-g {
+    description
+      "Grouping object for Device.MQTT.Capabilities.";
+    leaf protocol-versions-supported {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Capabilities.ProtocolVersionsSupported";
+      reference
+        "Device.MQTT.Capabilities.ProtocolVersionsSupported";
+    }
+    leaf transport-protocol-supported {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Capabilities.TransportProtocolSupported";
+      reference
+        "Device.MQTT.Capabilities.TransportProtocolSupported";
+    }
+    leaf max-number-of-client-subscriptions {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Capabilities.MaxNumberOfClientSubscriptions";
+      reference
+        "Device.MQTT.Capabilities.MaxNumberOfClientSubscriptions";
+    }
+    leaf max-number-of-broker-bridges {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Capabilities.MaxNumberOfBrokerBridges";
+      reference
+        "Device.MQTT.Capabilities.MaxNumberOfBrokerBridges";
+    }
+    leaf max-number-of-broker-bridge-subscriptions {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Capabilities.MaxNumberOfBrokerBridgeSubscriptions";
+      reference
+        "Device.MQTT.Capabilities.MaxNumberOfBrokerBridgeSubscriptions";
+    }
+  }
+
+  grouping mqtt-client-g {
+    description
+      "Grouping object for Device.MQTT.Client.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MQTT.Client.{i}.Alias";
+      reference
+        "Device.MQTT.Client.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MQTT.Client.{i}.Name";
+      reference
+        "Device.MQTT.Client.{i}.Name";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.MQTT.Client.{i}.Enable";
+      reference
+        "Device.MQTT.Client.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Status";
+      reference
+        "Device.MQTT.Client.{i}.Status";
+    }
+    leaf client-id {
+      type string {
+        length "1..23";
+      }
+      description
+        "Device.MQTT.Client.{i}.ClientID";
+      reference
+        "Device.MQTT.Client.{i}.ClientID";
+    }
+    leaf username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.MQTT.Client.{i}.Username";
+      reference
+        "Device.MQTT.Client.{i}.Username";
+    }
+    leaf transport-protocol {
+      type string;
+      description
+        "Device.MQTT.Client.{i}.TransportProtocol";
+      reference
+        "Device.MQTT.Client.{i}.TransportProtocol";
+    }
+    leaf protocol-version {
+      type string;
+      description
+        "Device.MQTT.Client.{i}.ProtocolVersion";
+      reference
+        "Device.MQTT.Client.{i}.ProtocolVersion";
+    }
+    leaf clean-session {
+      type boolean;
+      description
+        "Device.MQTT.Client.{i}.CleanSession";
+      reference
+        "Device.MQTT.Client.{i}.CleanSession";
+    }
+    leaf message-retry-time {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.MQTT.Client.{i}.MessageRetryTime";
+      reference
+        "Device.MQTT.Client.{i}.MessageRetryTime";
+    }
+    leaf connect-retry-time {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.MQTT.Client.{i}.ConnectRetryTime";
+      reference
+        "Device.MQTT.Client.{i}.ConnectRetryTime";
+    }
+    leaf keep-alive-time {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.MQTT.Client.{i}.KeepAliveTime";
+      reference
+        "Device.MQTT.Client.{i}.KeepAliveTime";
+    }
+    leaf broker-address {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.MQTT.Client.{i}.BrokerAddress";
+      reference
+        "Device.MQTT.Client.{i}.BrokerAddress";
+    }
+    leaf broker-port {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.MQTT.Client.{i}.BrokerPort";
+      reference
+        "Device.MQTT.Client.{i}.BrokerPort";
+    }
+    leaf will-enable {
+      type boolean;
+      description
+        "Device.MQTT.Client.{i}.WillEnable";
+      reference
+        "Device.MQTT.Client.{i}.WillEnable";
+    }
+    leaf will-topic {
+      type string;
+      description
+        "Device.MQTT.Client.{i}.WillTopic";
+      reference
+        "Device.MQTT.Client.{i}.WillTopic";
+    }
+    leaf will-value {
+      type string;
+      description
+        "Device.MQTT.Client.{i}.WillValue";
+      reference
+        "Device.MQTT.Client.{i}.WillValue";
+    }
+    leaf will-qo-s {
+      type uint32 {
+        range "0..2";
+      }
+      description
+        "Device.MQTT.Client.{i}.WillQoS";
+      reference
+        "Device.MQTT.Client.{i}.WillQoS";
+    }
+    leaf will-retain {
+      type boolean;
+      description
+        "Device.MQTT.Client.{i}.WillRetain";
+      reference
+        "Device.MQTT.Client.{i}.WillRetain";
+    }
+    leaf subscription-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.SubscriptionNumberOfEntries";
+      reference
+        "Device.MQTT.Client.{i}.SubscriptionNumberOfEntries";
+    }
+  }
+
+  grouping client-stats-g {
+    description
+      "Grouping object for Device.MQTT.Client.{i}.Stats.";
+    leaf broker-connection-established {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.BrokerConnectionEstablished";
+      reference
+        "Device.MQTT.Client.{i}.Stats.BrokerConnectionEstablished";
+    }
+    leaf last-publish-message-sent {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.LastPublishMessageSent";
+      reference
+        "Device.MQTT.Client.{i}.Stats.LastPublishMessageSent";
+    }
+    leaf last-publish-message-received {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.LastPublishMessageReceived";
+      reference
+        "Device.MQTT.Client.{i}.Stats.LastPublishMessageReceived";
+    }
+    leaf publish-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.PublishSent";
+      reference
+        "Device.MQTT.Client.{i}.Stats.PublishSent";
+    }
+    leaf publish-received {
+      type uint64;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.PublishReceived";
+      reference
+        "Device.MQTT.Client.{i}.Stats.PublishReceived";
+    }
+    leaf subscribe-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.SubscribeSent";
+      reference
+        "Device.MQTT.Client.{i}.Stats.SubscribeSent";
+    }
+    leaf un-subscribe-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.UnSubscribeSent";
+      reference
+        "Device.MQTT.Client.{i}.Stats.UnSubscribeSent";
+    }
+    leaf mqtt-messages-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.MQTTMessagesSent";
+      reference
+        "Device.MQTT.Client.{i}.Stats.MQTTMessagesSent";
+    }
+    leaf mqtt-messages-received {
+      type uint64;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.MQTTMessagesReceived";
+      reference
+        "Device.MQTT.Client.{i}.Stats.MQTTMessagesReceived";
+    }
+    leaf connection-errors {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.ConnectionErrors";
+      reference
+        "Device.MQTT.Client.{i}.Stats.ConnectionErrors";
+    }
+    leaf publish-errors {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.PublishErrors";
+      reference
+        "Device.MQTT.Client.{i}.Stats.PublishErrors";
+    }
+  }
+
+  grouping client-subscription-g {
+    description
+      "Grouping object for Device.MQTT.Client.{i}.Subscription.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MQTT.Client.{i}.Subscription.{i}.Alias";
+      reference
+        "Device.MQTT.Client.{i}.Subscription.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.MQTT.Client.{i}.Subscription.{i}.Enable";
+      reference
+        "Device.MQTT.Client.{i}.Subscription.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Subscription.{i}.Status";
+      reference
+        "Device.MQTT.Client.{i}.Subscription.{i}.Status";
+    }
+    leaf topic {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.MQTT.Client.{i}.Subscription.{i}.Topic";
+      reference
+        "Device.MQTT.Client.{i}.Subscription.{i}.Topic";
+    }
+    leaf qo-s {
+      type uint32 {
+        range "0..2";
+      }
+      description
+        "Device.MQTT.Client.{i}.Subscription.{i}.QoS";
+      reference
+        "Device.MQTT.Client.{i}.Subscription.{i}.QoS";
+    }
+  }
+
+  grouping device-management-server-g {
+    description
+      "Grouping object for Device.ManagementServer.";
+    leaf enable-cwmp {
+      type boolean;
+      description
+        "Device.ManagementServer.EnableCWMP";
+      reference
+        "Device.ManagementServer.EnableCWMP";
+    }
+    leaf url {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ManagementServer.URL";
+      reference
+        "Device.ManagementServer.URL";
+    }
+    leaf username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ManagementServer.Username";
+      reference
+        "Device.ManagementServer.Username";
+    }
+    leaf schedule-reboot {
+      type string;
+      description
+        "Device.ManagementServer.ScheduleReboot";
+      reference
+        "Device.ManagementServer.ScheduleReboot";
+    }
+    leaf delay-reboot {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.ManagementServer.DelayReboot";
+      reference
+        "Device.ManagementServer.DelayReboot";
+    }
+    leaf periodic-inform-enable {
+      type boolean;
+      description
+        "Device.ManagementServer.PeriodicInformEnable";
+      reference
+        "Device.ManagementServer.PeriodicInformEnable";
+    }
+    leaf periodic-inform-interval {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.ManagementServer.PeriodicInformInterval";
+      reference
+        "Device.ManagementServer.PeriodicInformInterval";
+    }
+    leaf periodic-inform-time {
+      type string;
+      description
+        "Device.ManagementServer.PeriodicInformTime";
+      reference
+        "Device.ManagementServer.PeriodicInformTime";
+    }
+    leaf parameter-key {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.ParameterKey";
+      reference
+        "Device.ManagementServer.ParameterKey";
+    }
+    leaf connection-request-url {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.ConnectionRequestURL";
+      reference
+        "Device.ManagementServer.ConnectionRequestURL";
+    }
+    leaf connection-request-username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ManagementServer.ConnectionRequestUsername";
+      reference
+        "Device.ManagementServer.ConnectionRequestUsername";
+    }
+    leaf upgrades-managed {
+      type boolean;
+      description
+        "Device.ManagementServer.UpgradesManaged";
+      reference
+        "Device.ManagementServer.UpgradesManaged";
+    }
+    leaf kick-url {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.KickURL";
+      reference
+        "Device.ManagementServer.KickURL";
+    }
+    leaf download-progress-url {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.DownloadProgressURL";
+      reference
+        "Device.ManagementServer.DownloadProgressURL";
+    }
+    leaf default-active-notification-throttle {
+      type uint32;
+      description
+        "Device.ManagementServer.DefaultActiveNotificationThrottle";
+      reference
+        "Device.ManagementServer.DefaultActiveNotificationThrottle";
+    }
+    leaf cwmp-retry-minimum-wait-interval {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.ManagementServer.CWMPRetryMinimumWaitInterval";
+      reference
+        "Device.ManagementServer.CWMPRetryMinimumWaitInterval";
+    }
+    leaf cwmp-retry-interval-multiplier {
+      type uint32 {
+        range "1000..65535";
+      }
+      description
+        "Device.ManagementServer.CWMPRetryIntervalMultiplier";
+      reference
+        "Device.ManagementServer.CWMPRetryIntervalMultiplier";
+    }
+    leaf http-connection-request-enable {
+      type boolean;
+      description
+        "Device.ManagementServer.HTTPConnectionRequestEnable";
+      reference
+        "Device.ManagementServer.HTTPConnectionRequestEnable";
+    }
+    leaf udp-connection-request-address {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.UDPConnectionRequestAddress";
+      reference
+        "Device.ManagementServer.UDPConnectionRequestAddress";
+    }
+    leaf stun-enable {
+      type boolean;
+      description
+        "Device.ManagementServer.STUNEnable";
+      reference
+        "Device.ManagementServer.STUNEnable";
+    }
+    leaf stun-server-address {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ManagementServer.STUNServerAddress";
+      reference
+        "Device.ManagementServer.STUNServerAddress";
+    }
+    leaf stun-server-port {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.ManagementServer.STUNServerPort";
+      reference
+        "Device.ManagementServer.STUNServerPort";
+    }
+    leaf stun-username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ManagementServer.STUNUsername";
+      reference
+        "Device.ManagementServer.STUNUsername";
+    }
+    leaf stun-maximum-keep-alive-period {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.ManagementServer.STUNMaximumKeepAlivePeriod";
+      reference
+        "Device.ManagementServer.STUNMaximumKeepAlivePeriod";
+    }
+    leaf stun-minimum-keep-alive-period {
+      type uint32;
+      description
+        "Device.ManagementServer.STUNMinimumKeepAlivePeriod";
+      reference
+        "Device.ManagementServer.STUNMinimumKeepAlivePeriod";
+    }
+    leaf nat-detected {
+      type boolean;
+      config false;
+      description
+        "Device.ManagementServer.NATDetected";
+      reference
+        "Device.ManagementServer.NATDetected";
+    }
+    leaf alias-based-addressing {
+      type boolean;
+      config false;
+      description
+        "Device.ManagementServer.AliasBasedAddressing";
+      reference
+        "Device.ManagementServer.AliasBasedAddressing";
+    }
+    leaf instance-mode {
+      type enumeration {
+        enum InstanceNumber {
+          description
+            "Enum Value - InstanceNumber";
+        }
+        enum InstanceAlias {
+          description
+            "Enum Value - InstanceAlias";
+        }
+      }
+      description
+        "Device.ManagementServer.InstanceMode";
+      reference
+        "Device.ManagementServer.InstanceMode";
+    }
+    leaf auto-create-instances {
+      type boolean;
+      description
+        "Device.ManagementServer.AutoCreateInstances";
+      reference
+        "Device.ManagementServer.AutoCreateInstances";
+    }
+    leaf manageable-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ManagementServer.ManageableDeviceNumberOfEntries";
+      reference
+        "Device.ManagementServer.ManageableDeviceNumberOfEntries";
+    }
+    leaf manageable-device-notification-limit {
+      type uint32;
+      description
+        "Device.ManagementServer.ManageableDeviceNotificationLimit";
+      reference
+        "Device.ManagementServer.ManageableDeviceNotificationLimit";
+    }
+    leaf embedded-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDeviceNumberOfEntries";
+      reference
+        "Device.ManagementServer.EmbeddedDeviceNumberOfEntries";
+    }
+    leaf virtual-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ManagementServer.VirtualDeviceNumberOfEntries";
+      reference
+        "Device.ManagementServer.VirtualDeviceNumberOfEntries";
+    }
+    leaf supported-conn-req-methods {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.SupportedConnReqMethods";
+      reference
+        "Device.ManagementServer.SupportedConnReqMethods";
+    }
+    leaf conn-req-xmpp-connection {
+      type string;
+      description
+        "Device.ManagementServer.ConnReqXMPPConnection";
+      reference
+        "Device.ManagementServer.ConnReqXMPPConnection";
+    }
+    leaf conn-req-allowed-jabber-i-ds {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ManagementServer.ConnReqAllowedJabberIDs";
+      reference
+        "Device.ManagementServer.ConnReqAllowedJabberIDs";
+    }
+    leaf conn-req-jabber-id {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.ConnReqJabberID";
+      reference
+        "Device.ManagementServer.ConnReqJabberID";
+    }
+    leaf http-compression-supported {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.HTTPCompressionSupported";
+      reference
+        "Device.ManagementServer.HTTPCompressionSupported";
+    }
+    leaf http-compression {
+      type string;
+      description
+        "Device.ManagementServer.HTTPCompression";
+      reference
+        "Device.ManagementServer.HTTPCompression";
+    }
+    leaf lightweight-notification-protocols-supported {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.LightweightNotificationProtocolsSupported";
+      reference
+        "Device.ManagementServer.LightweightNotificationProtocolsSupported";
+    }
+    leaf lightweight-notification-protocols-used {
+      type string;
+      description
+        "Device.ManagementServer.LightweightNotificationProtocolsUsed";
+      reference
+        "Device.ManagementServer.LightweightNotificationProtocolsUsed";
+    }
+    leaf lightweight-notification-trigger-interval {
+      type uint32 {
+        range "0..max";
+      }
+      description
+        "Device.ManagementServer.LightweightNotificationTriggerInterval";
+      reference
+        "Device.ManagementServer.LightweightNotificationTriggerInterval";
+    }
+    leaf lightweight-notification-trigger-time {
+      type string;
+      description
+        "Device.ManagementServer.LightweightNotificationTriggerTime";
+      reference
+        "Device.ManagementServer.LightweightNotificationTriggerTime";
+    }
+    leaf udp-lightweight-notification-host {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ManagementServer.UDPLightweightNotificationHost";
+      reference
+        "Device.ManagementServer.UDPLightweightNotificationHost";
+    }
+    leaf udp-lightweight-notification-port {
+      type uint32;
+      description
+        "Device.ManagementServer.UDPLightweightNotificationPort";
+      reference
+        "Device.ManagementServer.UDPLightweightNotificationPort";
+    }
+    leaf instance-wildcards-supported {
+      type boolean;
+      config false;
+      description
+        "Device.ManagementServer.InstanceWildcardsSupported";
+      reference
+        "Device.ManagementServer.InstanceWildcardsSupported";
+    }
+    leaf inform-parameter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ManagementServer.InformParameterNumberOfEntries";
+      reference
+        "Device.ManagementServer.InformParameterNumberOfEntries";
+    }
+  }
+
+  grouping management-server-autonomous-transfer-complete-policy-g {
+    description
+      "Grouping object for Device.ManagementServer.AutonomousTransferCompletePolicy.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.ManagementServer.AutonomousTransferCompletePolicy.Enable";
+      reference
+        "Device.ManagementServer.AutonomousTransferCompletePolicy.Enable";
+    }
+    leaf transfer-type-filter {
+      type enumeration {
+        enum Upload {
+          description
+            "Enum Value - Upload";
+        }
+        enum Download {
+          description
+            "Enum Value - Download";
+        }
+        enum Both {
+          description
+            "Enum Value - Both";
+        }
+      }
+      description
+        "Device.ManagementServer.AutonomousTransferCompletePolicy.TransferTypeFilter";
+      reference
+        "Device.ManagementServer.AutonomousTransferCompletePolicy.TransferTypeFilter";
+    }
+    leaf result-type-filter {
+      type enumeration {
+        enum Success {
+          description
+            "Enum Value - Success";
+        }
+        enum Failure {
+          description
+            "Enum Value - Failure";
+        }
+        enum Both {
+          description
+            "Enum Value - Both";
+        }
+      }
+      description
+        "Device.ManagementServer.AutonomousTransferCompletePolicy.ResultTypeFilter";
+      reference
+        "Device.ManagementServer.AutonomousTransferCompletePolicy.ResultTypeFilter";
+    }
+    leaf file-type-filter {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.ManagementServer.AutonomousTransferCompletePolicy.FileTypeFilter";
+      reference
+        "Device.ManagementServer.AutonomousTransferCompletePolicy.FileTypeFilter";
+    }
+  }
+
+  grouping management-server-du-state-change-compl-policy-g {
+    description
+      "Grouping object for Device.ManagementServer.DUStateChangeComplPolicy.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.ManagementServer.DUStateChangeComplPolicy.Enable";
+      reference
+        "Device.ManagementServer.DUStateChangeComplPolicy.Enable";
+    }
+    leaf operation-type-filter {
+      type enumeration {
+        enum Install {
+          description
+            "Enum Value - Install";
+        }
+        enum Update {
+          description
+            "Enum Value - Update";
+        }
+        enum Uninstall {
+          description
+            "Enum Value - Uninstall";
+        }
+      }
+      description
+        "Device.ManagementServer.DUStateChangeComplPolicy.OperationTypeFilter";
+      reference
+        "Device.ManagementServer.DUStateChangeComplPolicy.OperationTypeFilter";
+    }
+    leaf result-type-filter {
+      type enumeration {
+        enum Success {
+          description
+            "Enum Value - Success";
+        }
+        enum Failure {
+          description
+            "Enum Value - Failure";
+        }
+        enum Both {
+          description
+            "Enum Value - Both";
+        }
+      }
+      description
+        "Device.ManagementServer.DUStateChangeComplPolicy.ResultTypeFilter";
+      reference
+        "Device.ManagementServer.DUStateChangeComplPolicy.ResultTypeFilter";
+    }
+    leaf fault-code-filter {
+      type enumeration {
+        enum 9001 {
+          description
+            "Enum Value - 9001";
+        }
+        enum 9003 {
+          description
+            "Enum Value - 9003";
+        }
+        enum 9012 {
+          description
+            "Enum Value - 9012";
+        }
+        enum 9013 {
+          description
+            "Enum Value - 9013";
+        }
+        enum 9015 {
+          description
+            "Enum Value - 9015";
+        }
+        enum 9016 {
+          description
+            "Enum Value - 9016";
+        }
+        enum 9017 {
+          description
+            "Enum Value - 9017";
+        }
+        enum 9018 {
+          description
+            "Enum Value - 9018";
+        }
+        enum 9022 {
+          description
+            "Enum Value - 9022";
+        }
+        enum 9023 {
+          description
+            "Enum Value - 9023";
+        }
+        enum 9024 {
+          description
+            "Enum Value - 9024";
+        }
+        enum 9025 {
+          description
+            "Enum Value - 9025";
+        }
+        enum 9026 {
+          description
+            "Enum Value - 9026";
+        }
+        enum 9027 {
+          description
+            "Enum Value - 9027";
+        }
+        enum 9028 {
+          description
+            "Enum Value - 9028";
+        }
+        enum 9029 {
+          description
+            "Enum Value - 9029";
+        }
+        enum 9030 {
+          description
+            "Enum Value - 9030";
+        }
+        enum 9031 {
+          description
+            "Enum Value - 9031";
+        }
+        enum 9032 {
+          description
+            "Enum Value - 9032";
+        }
+      }
+      description
+        "Device.ManagementServer.DUStateChangeComplPolicy.FaultCodeFilter";
+      reference
+        "Device.ManagementServer.DUStateChangeComplPolicy.FaultCodeFilter";
+    }
+  }
+
+  grouping download-availability-announcement-g {
+    description
+      "Grouping object for Device.ManagementServer.DownloadAvailability.Announcement.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.ManagementServer.DownloadAvailability.Announcement.Enable";
+      reference
+        "Device.ManagementServer.DownloadAvailability.Announcement.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.DownloadAvailability.Announcement.Status";
+      reference
+        "Device.ManagementServer.DownloadAvailability.Announcement.Status";
+    }
+    leaf group-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ManagementServer.DownloadAvailability.Announcement.GroupNumberOfEntries";
+      reference
+        "Device.ManagementServer.DownloadAvailability.Announcement.GroupNumberOfEntries";
+    }
+  }
+
+  grouping announcement-group-g {
+    description
+      "Grouping object for Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.Alias";
+      reference
+        "Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.Enable";
+      reference
+        "Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.Status";
+      reference
+        "Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.Status";
+    }
+    leaf url {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.URL";
+      reference
+        "Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.URL";
+    }
+  }
+
+  grouping download-availability-query-g {
+    description
+      "Grouping object for Device.ManagementServer.DownloadAvailability.Query.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.ManagementServer.DownloadAvailability.Query.Enable";
+      reference
+        "Device.ManagementServer.DownloadAvailability.Query.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.DownloadAvailability.Query.Status";
+      reference
+        "Device.ManagementServer.DownloadAvailability.Query.Status";
+    }
+    leaf url {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ManagementServer.DownloadAvailability.Query.URL";
+      reference
+        "Device.ManagementServer.DownloadAvailability.Query.URL";
+    }
+  }
+
+  grouping management-server-embedded-device-g {
+    description
+      "Grouping object for Device.ManagementServer.EmbeddedDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf controller-id {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.ControllerID";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.ControllerID";
+    }
+    leaf proxied-device-id {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.ProxiedDeviceID";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.ProxiedDeviceID";
+    }
+    leaf reference {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.Reference";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.Reference";
+    }
+    leaf supported-data-model {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.SupportedDataModel";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.SupportedDataModel";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.Host";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.Host";
+    }
+    leaf proxy-protocol {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.ProxyProtocol";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.ProxyProtocol";
+    }
+    leaf proxy-protocol-reference {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.ProxyProtocolReference";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.ProxyProtocolReference";
+    }
+    leaf discovery-protocol {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.DiscoveryProtocol";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.DiscoveryProtocol";
+    }
+    leaf discovery-protocol-reference {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.DiscoveryProtocolReference";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.DiscoveryProtocolReference";
+    }
+    leaf command-processed {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.CommandProcessed";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.CommandProcessed";
+    }
+    leaf command-processing-err-msg {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.CommandProcessingErrMsg";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.CommandProcessingErrMsg";
+    }
+    leaf last-sync-time {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.LastSyncTime";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.LastSyncTime";
+    }
+  }
+
+  grouping management-server-heartbeat-policy-g {
+    description
+      "Grouping object for Device.ManagementServer.HeartbeatPolicy.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.ManagementServer.HeartbeatPolicy.Enable";
+      reference
+        "Device.ManagementServer.HeartbeatPolicy.Enable";
+    }
+    leaf reporting-interval {
+      type uint32 {
+        range "30..max";
+      }
+      description
+        "Device.ManagementServer.HeartbeatPolicy.ReportingInterval";
+      reference
+        "Device.ManagementServer.HeartbeatPolicy.ReportingInterval";
+    }
+    leaf initiation-time {
+      type string;
+      description
+        "Device.ManagementServer.HeartbeatPolicy.InitiationTime";
+      reference
+        "Device.ManagementServer.HeartbeatPolicy.InitiationTime";
+    }
+  }
+
+  grouping management-server-inform-parameter-g {
+    description
+      "Grouping object for Device.ManagementServer.InformParameter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ManagementServer.InformParameter.{i}.Enable";
+      reference
+        "Device.ManagementServer.InformParameter.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ManagementServer.InformParameter.{i}.Alias";
+      reference
+        "Device.ManagementServer.InformParameter.{i}.Alias";
+    }
+    leaf parameter-name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ManagementServer.InformParameter.{i}.ParameterName";
+      reference
+        "Device.ManagementServer.InformParameter.{i}.ParameterName";
+    }
+    leaf event-list {
+      type string;
+      description
+        "Device.ManagementServer.InformParameter.{i}.EventList";
+      reference
+        "Device.ManagementServer.InformParameter.{i}.EventList";
+    }
+  }
+
+  grouping management-server-manageable-device-g {
+    description
+      "Grouping object for Device.ManagementServer.ManageableDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ManagementServer.ManageableDevice.{i}.Alias";
+      reference
+        "Device.ManagementServer.ManageableDevice.{i}.Alias";
+    }
+    leaf manufacturer-oui {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.ManageableDevice.{i}.ManufacturerOUI";
+      reference
+        "Device.ManagementServer.ManageableDevice.{i}.ManufacturerOUI";
+    }
+    leaf serial-number {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.ManageableDevice.{i}.SerialNumber";
+      reference
+        "Device.ManagementServer.ManageableDevice.{i}.SerialNumber";
+    }
+    leaf product-class {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.ManageableDevice.{i}.ProductClass";
+      reference
+        "Device.ManagementServer.ManageableDevice.{i}.ProductClass";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.ManageableDevice.{i}.Host";
+      reference
+        "Device.ManagementServer.ManageableDevice.{i}.Host";
+    }
+  }
+
+  grouping management-server-standby-policy-g {
+    description
+      "Grouping object for Device.ManagementServer.StandbyPolicy.";
+    leaf cr-unawareness-max-duration {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.ManagementServer.StandbyPolicy.CRUnawarenessMaxDuration";
+      reference
+        "Device.ManagementServer.StandbyPolicy.CRUnawarenessMaxDuration";
+    }
+    leaf max-missed-periodic {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.ManagementServer.StandbyPolicy.MaxMissedPeriodic";
+      reference
+        "Device.ManagementServer.StandbyPolicy.MaxMissedPeriodic";
+    }
+    leaf notify-missed-scheduled {
+      type boolean;
+      description
+        "Device.ManagementServer.StandbyPolicy.NotifyMissedScheduled";
+      reference
+        "Device.ManagementServer.StandbyPolicy.NotifyMissedScheduled";
+    }
+    leaf network-awareness-capable {
+      type boolean;
+      config false;
+      description
+        "Device.ManagementServer.StandbyPolicy.NetworkAwarenessCapable";
+      reference
+        "Device.ManagementServer.StandbyPolicy.NetworkAwarenessCapable";
+    }
+    leaf self-timer-capable {
+      type boolean;
+      config false;
+      description
+        "Device.ManagementServer.StandbyPolicy.SelfTimerCapable";
+      reference
+        "Device.ManagementServer.StandbyPolicy.SelfTimerCapable";
+    }
+    leaf cr-awareness-requested {
+      type boolean;
+      description
+        "Device.ManagementServer.StandbyPolicy.CRAwarenessRequested";
+      reference
+        "Device.ManagementServer.StandbyPolicy.CRAwarenessRequested";
+    }
+    leaf periodic-awareness-requested {
+      type boolean;
+      description
+        "Device.ManagementServer.StandbyPolicy.PeriodicAwarenessRequested";
+      reference
+        "Device.ManagementServer.StandbyPolicy.PeriodicAwarenessRequested";
+    }
+    leaf scheduled-awareness-requested {
+      type boolean;
+      description
+        "Device.ManagementServer.StandbyPolicy.ScheduledAwarenessRequested";
+      reference
+        "Device.ManagementServer.StandbyPolicy.ScheduledAwarenessRequested";
+    }
+  }
+
+  grouping management-server-virtual-device-g {
+    description
+      "Grouping object for Device.ManagementServer.VirtualDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf manufacturer-oui {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.VirtualDevice.{i}.ManufacturerOUI";
+      reference
+        "Device.ManagementServer.VirtualDevice.{i}.ManufacturerOUI";
+    }
+    leaf product-class {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.VirtualDevice.{i}.ProductClass";
+      reference
+        "Device.ManagementServer.VirtualDevice.{i}.ProductClass";
+    }
+    leaf serial-number {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.VirtualDevice.{i}.SerialNumber";
+      reference
+        "Device.ManagementServer.VirtualDevice.{i}.SerialNumber";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.VirtualDevice.{i}.Host";
+      reference
+        "Device.ManagementServer.VirtualDevice.{i}.Host";
+    }
+    leaf proxy-protocol {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.VirtualDevice.{i}.ProxyProtocol";
+      reference
+        "Device.ManagementServer.VirtualDevice.{i}.ProxyProtocol";
+    }
+    leaf proxy-protocol-reference {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.VirtualDevice.{i}.ProxyProtocolReference";
+      reference
+        "Device.ManagementServer.VirtualDevice.{i}.ProxyProtocolReference";
+    }
+    leaf discovery-protocol {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.VirtualDevice.{i}.DiscoveryProtocol";
+      reference
+        "Device.ManagementServer.VirtualDevice.{i}.DiscoveryProtocol";
+    }
+    leaf discovery-protocol-reference {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.VirtualDevice.{i}.DiscoveryProtocolReference";
+      reference
+        "Device.ManagementServer.VirtualDevice.{i}.DiscoveryProtocolReference";
+    }
+  }
+
+  grouping device-mo-ca-g {
+    description
+      "Grouping object for Device.MoCA.";
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.InterfaceNumberOfEntries";
+      reference
+        "Device.MoCA.InterfaceNumberOfEntries";
+    }
+  }
+
+  grouping mo-ca-interface-g {
+    description
+      "Grouping object for Device.MoCA.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.MoCA.Interface.{i}.Enable";
+      reference
+        "Device.MoCA.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Status";
+      reference
+        "Device.MoCA.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MoCA.Interface.{i}.Alias";
+      reference
+        "Device.MoCA.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Name";
+      reference
+        "Device.MoCA.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.LastChange";
+      reference
+        "Device.MoCA.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.MoCA.Interface.{i}.LowerLayers";
+      reference
+        "Device.MoCA.Interface.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Upstream";
+      reference
+        "Device.MoCA.Interface.{i}.Upstream";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.MACAddress";
+      reference
+        "Device.MoCA.Interface.{i}.MACAddress";
+    }
+    leaf firmware-version {
+      type string;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.FirmwareVersion";
+      reference
+        "Device.MoCA.Interface.{i}.FirmwareVersion";
+    }
+    leaf max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.MaxBitRate";
+      reference
+        "Device.MoCA.Interface.{i}.MaxBitRate";
+    }
+    leaf max-ingress-bw {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.MaxIngressBW";
+      reference
+        "Device.MoCA.Interface.{i}.MaxIngressBW";
+    }
+    leaf max-egress-bw {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.MaxEgressBW";
+      reference
+        "Device.MoCA.Interface.{i}.MaxEgressBW";
+    }
+    leaf highest-version {
+      type string;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.HighestVersion";
+      reference
+        "Device.MoCA.Interface.{i}.HighestVersion";
+    }
+    leaf current-version {
+      type string;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.CurrentVersion";
+      reference
+        "Device.MoCA.Interface.{i}.CurrentVersion";
+    }
+    leaf network-coordinator {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.NetworkCoordinator";
+      reference
+        "Device.MoCA.Interface.{i}.NetworkCoordinator";
+    }
+    leaf node-id {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.NodeID";
+      reference
+        "Device.MoCA.Interface.{i}.NodeID";
+    }
+    leaf max-nodes {
+      type boolean;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.MaxNodes";
+      reference
+        "Device.MoCA.Interface.{i}.MaxNodes";
+    }
+    leaf preferred-nc {
+      type boolean;
+      description
+        "Device.MoCA.Interface.{i}.PreferredNC";
+      reference
+        "Device.MoCA.Interface.{i}.PreferredNC";
+    }
+    leaf backup-nc {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.BackupNC";
+      reference
+        "Device.MoCA.Interface.{i}.BackupNC";
+    }
+    leaf privacy-enabled-setting {
+      type boolean;
+      description
+        "Device.MoCA.Interface.{i}.PrivacyEnabledSetting";
+      reference
+        "Device.MoCA.Interface.{i}.PrivacyEnabledSetting";
+    }
+    leaf privacy-enabled {
+      type boolean;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.PrivacyEnabled";
+      reference
+        "Device.MoCA.Interface.{i}.PrivacyEnabled";
+    }
+    leaf freq-capability-mask {
+      type string;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.FreqCapabilityMask";
+      reference
+        "Device.MoCA.Interface.{i}.FreqCapabilityMask";
+    }
+    leaf freq-current-mask-setting {
+      type string {
+        length "8";
+      }
+      description
+        "Device.MoCA.Interface.{i}.FreqCurrentMaskSetting";
+      reference
+        "Device.MoCA.Interface.{i}.FreqCurrentMaskSetting";
+    }
+    leaf freq-current-mask {
+      type string;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.FreqCurrentMask";
+      reference
+        "Device.MoCA.Interface.{i}.FreqCurrentMask";
+    }
+    leaf current-oper-freq {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.CurrentOperFreq";
+      reference
+        "Device.MoCA.Interface.{i}.CurrentOperFreq";
+    }
+    leaf last-oper-freq {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.LastOperFreq";
+      reference
+        "Device.MoCA.Interface.{i}.LastOperFreq";
+    }
+    leaf tx-power-limit {
+      type uint32;
+      description
+        "Device.MoCA.Interface.{i}.TxPowerLimit";
+      reference
+        "Device.MoCA.Interface.{i}.TxPowerLimit";
+    }
+    leaf power-cntl-phy-target {
+      type uint32;
+      description
+        "Device.MoCA.Interface.{i}.PowerCntlPhyTarget";
+      reference
+        "Device.MoCA.Interface.{i}.PowerCntlPhyTarget";
+    }
+    leaf beacon-power-limit {
+      type uint32;
+      description
+        "Device.MoCA.Interface.{i}.BeaconPowerLimit";
+      reference
+        "Device.MoCA.Interface.{i}.BeaconPowerLimit";
+    }
+    leaf network-taboo-mask {
+      type string;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.NetworkTabooMask";
+      reference
+        "Device.MoCA.Interface.{i}.NetworkTabooMask";
+    }
+    leaf node-taboo-mask {
+      type string;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.NodeTabooMask";
+      reference
+        "Device.MoCA.Interface.{i}.NodeTabooMask";
+    }
+    leaf tx-bcast-rate {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.TxBcastRate";
+      reference
+        "Device.MoCA.Interface.{i}.TxBcastRate";
+    }
+    leaf tx-bcast-power-reduction {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.TxBcastPowerReduction";
+      reference
+        "Device.MoCA.Interface.{i}.TxBcastPowerReduction";
+    }
+    leaf qam256-capable {
+      type boolean;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QAM256Capable";
+      reference
+        "Device.MoCA.Interface.{i}.QAM256Capable";
+    }
+    leaf packet-aggregation-capability {
+      type uint32 {
+        range "0..10";
+      }
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.PacketAggregationCapability";
+      reference
+        "Device.MoCA.Interface.{i}.PacketAggregationCapability";
+    }
+    leaf associated-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDeviceNumberOfEntries";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDeviceNumberOfEntries";
+    }
+  }
+
+  grouping mo-ca-interface-associated-device-g {
+    description
+      "Grouping object for Device.MoCA.Interface.{i}.AssociatedDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.MACAddress";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.MACAddress";
+    }
+    leaf node-id {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.NodeID";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.NodeID";
+    }
+    leaf preferred-nc {
+      type boolean;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.PreferredNC";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.PreferredNC";
+    }
+    leaf highest-version {
+      type string;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.HighestVersion";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.HighestVersion";
+    }
+    leaf phy-tx-rate {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.PHYTxRate";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.PHYTxRate";
+    }
+    leaf phy-rx-rate {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.PHYRxRate";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.PHYRxRate";
+    }
+    leaf tx-power-control-reduction {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.TxPowerControlReduction";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.TxPowerControlReduction";
+    }
+    leaf rx-power-level {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxPowerLevel";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxPowerLevel";
+    }
+    leaf tx-bcast-rate {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.TxBcastRate";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.TxBcastRate";
+    }
+    leaf rx-bcast-power-level {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxBcastPowerLevel";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxBcastPowerLevel";
+    }
+    leaf tx-packets {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.TxPackets";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.TxPackets";
+    }
+    leaf rx-packets {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxPackets";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxPackets";
+    }
+    leaf rx-errored-and-missed-packets {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxErroredAndMissedPackets";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxErroredAndMissedPackets";
+    }
+    leaf qam256-capable {
+      type boolean;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.QAM256Capable";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.QAM256Capable";
+    }
+    leaf packet-aggregation-capability {
+      type uint32 {
+        range "0..10";
+      }
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.PacketAggregationCapability";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.PacketAggregationCapability";
+    }
+    leaf rx-snr {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxSNR";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxSNR";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.Active";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.Active";
+    }
+  }
+
+  grouping mo-ca-interface-qo-s-g {
+    description
+      "Grouping object for Device.MoCA.Interface.{i}.QoS.";
+    leaf egress-num-flows {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QoS.EgressNumFlows";
+      reference
+        "Device.MoCA.Interface.{i}.QoS.EgressNumFlows";
+    }
+    leaf ingress-num-flows {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QoS.IngressNumFlows";
+      reference
+        "Device.MoCA.Interface.{i}.QoS.IngressNumFlows";
+    }
+    leaf flow-stats-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QoS.FlowStatsNumberOfEntries";
+      reference
+        "Device.MoCA.Interface.{i}.QoS.FlowStatsNumberOfEntries";
+    }
+  }
+
+  grouping qo-s-flow-stats-g {
+    description
+      "Grouping object for Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf flow-id {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.FlowID";
+      reference
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.FlowID";
+    }
+    leaf packet-da {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.PacketDA";
+      reference
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.PacketDA";
+    }
+    leaf max-rate {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.MaxRate";
+      reference
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.MaxRate";
+    }
+    leaf max-burst-size {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.MaxBurstSize";
+      reference
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.MaxBurstSize";
+    }
+    leaf lease-time {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.LeaseTime";
+      reference
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.LeaseTime";
+    }
+    leaf lease-time-left {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.LeaseTimeLeft";
+      reference
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.LeaseTimeLeft";
+    }
+    leaf flow-packets {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.FlowPackets";
+      reference
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.FlowPackets";
+    }
+  }
+
+  grouping mo-ca-interface-stats-g {
+    description
+      "Grouping object for Device.MoCA.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping device-nat-g {
+    description
+      "Grouping object for Device.NAT.";
+    leaf interface-setting-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.NAT.InterfaceSettingNumberOfEntries";
+      reference
+        "Device.NAT.InterfaceSettingNumberOfEntries";
+    }
+    leaf port-mapping-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.NAT.PortMappingNumberOfEntries";
+      reference
+        "Device.NAT.PortMappingNumberOfEntries";
+    }
+  }
+
+  grouping nat-interface-setting-g {
+    description
+      "Grouping object for Device.NAT.InterfaceSetting.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.NAT.InterfaceSetting.{i}.Enable";
+      reference
+        "Device.NAT.InterfaceSetting.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.NAT.InterfaceSetting.{i}.Status";
+      reference
+        "Device.NAT.InterfaceSetting.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.NAT.InterfaceSetting.{i}.Alias";
+      reference
+        "Device.NAT.InterfaceSetting.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.NAT.InterfaceSetting.{i}.Interface";
+      reference
+        "Device.NAT.InterfaceSetting.{i}.Interface";
+    }
+  }
+
+  grouping nat-port-mapping-g {
+    description
+      "Grouping object for Device.NAT.PortMapping.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.NAT.PortMapping.{i}.Enable";
+      reference
+        "Device.NAT.PortMapping.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.NAT.PortMapping.{i}.Status";
+      reference
+        "Device.NAT.PortMapping.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.NAT.PortMapping.{i}.Alias";
+      reference
+        "Device.NAT.PortMapping.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.NAT.PortMapping.{i}.Interface";
+      reference
+        "Device.NAT.PortMapping.{i}.Interface";
+    }
+    leaf all-interfaces {
+      type boolean;
+      description
+        "Device.NAT.PortMapping.{i}.AllInterfaces";
+      reference
+        "Device.NAT.PortMapping.{i}.AllInterfaces";
+    }
+    leaf lease-duration {
+      type uint32;
+      description
+        "Device.NAT.PortMapping.{i}.LeaseDuration";
+      reference
+        "Device.NAT.PortMapping.{i}.LeaseDuration";
+    }
+    leaf remote-host {
+      type string;
+      description
+        "Device.NAT.PortMapping.{i}.RemoteHost";
+      reference
+        "Device.NAT.PortMapping.{i}.RemoteHost";
+    }
+    leaf external-port {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.NAT.PortMapping.{i}.ExternalPort";
+      reference
+        "Device.NAT.PortMapping.{i}.ExternalPort";
+    }
+    leaf external-port-end-range {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.NAT.PortMapping.{i}.ExternalPortEndRange";
+      reference
+        "Device.NAT.PortMapping.{i}.ExternalPortEndRange";
+    }
+    leaf internal-port {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.NAT.PortMapping.{i}.InternalPort";
+      reference
+        "Device.NAT.PortMapping.{i}.InternalPort";
+    }
+    leaf protocol {
+      type enumeration {
+        enum TCP {
+          description
+            "Enum Value - TCP";
+        }
+        enum UDP {
+          description
+            "Enum Value - UDP";
+        }
+      }
+      description
+        "Device.NAT.PortMapping.{i}.Protocol";
+      reference
+        "Device.NAT.PortMapping.{i}.Protocol";
+    }
+    leaf internal-client {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.NAT.PortMapping.{i}.InternalClient";
+      reference
+        "Device.NAT.PortMapping.{i}.InternalClient";
+    }
+    leaf description {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.NAT.PortMapping.{i}.Description";
+      reference
+        "Device.NAT.PortMapping.{i}.Description";
+    }
+  }
+
+  grouping device-neighbor-discovery-g {
+    description
+      "Grouping object for Device.NeighborDiscovery.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.NeighborDiscovery.Enable";
+      reference
+        "Device.NeighborDiscovery.Enable";
+    }
+    leaf interface-setting-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.NeighborDiscovery.InterfaceSettingNumberOfEntries";
+      reference
+        "Device.NeighborDiscovery.InterfaceSettingNumberOfEntries";
+    }
+  }
+
+  grouping neighbor-discovery-interface-setting-g {
+    description
+      "Grouping object for Device.NeighborDiscovery.InterfaceSetting.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.Enable";
+      reference
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.Status";
+      reference
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.Alias";
+      reference
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.Alias";
+    }
+    leaf interface {
+      type string;
+      description
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.Interface";
+      reference
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.Interface";
+    }
+    leaf retrans-timer {
+      type uint32;
+      description
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.RetransTimer";
+      reference
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.RetransTimer";
+    }
+    leaf rtr-solicitation-interval {
+      type uint32;
+      description
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.RtrSolicitationInterval";
+      reference
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.RtrSolicitationInterval";
+    }
+    leaf max-rtr-solicitations {
+      type uint32;
+      description
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.MaxRtrSolicitations";
+      reference
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.MaxRtrSolicitations";
+    }
+    leaf nud-enable {
+      type boolean;
+      description
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.NUDEnable";
+      reference
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.NUDEnable";
+    }
+    leaf rs-enable {
+      type boolean;
+      description
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.RSEnable";
+      reference
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.RSEnable";
+    }
+  }
+
+  grouping device-optical-g {
+    description
+      "Grouping object for Device.Optical.";
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Optical.InterfaceNumberOfEntries";
+      reference
+        "Device.Optical.InterfaceNumberOfEntries";
+    }
+  }
+
+  grouping optical-interface-g {
+    description
+      "Grouping object for Device.Optical.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Optical.Interface.{i}.Enable";
+      reference
+        "Device.Optical.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Status";
+      reference
+        "Device.Optical.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Optical.Interface.{i}.Alias";
+      reference
+        "Device.Optical.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Name";
+      reference
+        "Device.Optical.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.LastChange";
+      reference
+        "Device.Optical.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.Optical.Interface.{i}.LowerLayers";
+      reference
+        "Device.Optical.Interface.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Upstream";
+      reference
+        "Device.Optical.Interface.{i}.Upstream";
+    }
+    leaf optical-signal-level {
+      type int32 {
+        range "-65536..65534";
+      }
+      config false;
+      description
+        "Device.Optical.Interface.{i}.OpticalSignalLevel";
+      reference
+        "Device.Optical.Interface.{i}.OpticalSignalLevel";
+    }
+    leaf lower-optical-threshold {
+      type int32 {
+        range "-127000..0";
+      }
+      config false;
+      description
+        "Device.Optical.Interface.{i}.LowerOpticalThreshold";
+      reference
+        "Device.Optical.Interface.{i}.LowerOpticalThreshold";
+    }
+    leaf upper-optical-threshold {
+      type int32 {
+        range "-127000..0";
+      }
+      config false;
+      description
+        "Device.Optical.Interface.{i}.UpperOpticalThreshold";
+      reference
+        "Device.Optical.Interface.{i}.UpperOpticalThreshold";
+    }
+    leaf transmit-optical-level {
+      type int32 {
+        range "-127000..0";
+      }
+      config false;
+      description
+        "Device.Optical.Interface.{i}.TransmitOpticalLevel";
+      reference
+        "Device.Optical.Interface.{i}.TransmitOpticalLevel";
+    }
+    leaf lower-transmit-power-threshold {
+      type int32 {
+        range "-63500..63500";
+      }
+      config false;
+      description
+        "Device.Optical.Interface.{i}.LowerTransmitPowerThreshold";
+      reference
+        "Device.Optical.Interface.{i}.LowerTransmitPowerThreshold";
+    }
+    leaf upper-transmit-power-threshold {
+      type int32 {
+        range "-63500..63500";
+      }
+      config false;
+      description
+        "Device.Optical.Interface.{i}.UpperTransmitPowerThreshold";
+      reference
+        "Device.Optical.Interface.{i}.UpperTransmitPowerThreshold";
+    }
+  }
+
+  grouping optical-interface-stats-g {
+    description
+      "Grouping object for Device.Optical.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.Optical.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.Optical.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.Optical.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.Optical.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.Optical.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.Optical.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.Optical.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.Optical.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+  }
+
+  grouping device-pcp-g {
+    description
+      "Grouping object for Device.PCP.";
+    leaf supported-versions {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.PCP.SupportedVersions";
+      reference
+        "Device.PCP.SupportedVersions";
+    }
+    leaf preferred-version {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.PCP.PreferredVersion";
+      reference
+        "Device.PCP.PreferredVersion";
+    }
+    leaf option-list {
+      type uint32 {
+        range "0..254";
+      }
+      config false;
+      description
+        "Device.PCP.OptionList";
+      reference
+        "Device.PCP.OptionList";
+    }
+    leaf client-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.PCP.ClientNumberOfEntries";
+      reference
+        "Device.PCP.ClientNumberOfEntries";
+    }
+  }
+
+  grouping pcp-client-g {
+    description
+      "Grouping object for Device.PCP.Client.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.Enable";
+      reference
+        "Device.PCP.Client.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.PCP.Client.{i}.Alias";
+      reference
+        "Device.PCP.Client.{i}.Alias";
+    }
+    leaf wan-interface {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.WANInterface";
+      reference
+        "Device.PCP.Client.{i}.WANInterface";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Status";
+      reference
+        "Device.PCP.Client.{i}.Status";
+    }
+    leaf map-enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.MAPEnable";
+      reference
+        "Device.PCP.Client.{i}.MAPEnable";
+    }
+    leaf peer-enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.PEEREnable";
+      reference
+        "Device.PCP.Client.{i}.PEEREnable";
+    }
+    leaf announce-enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.ANNOUNCEEnable";
+      reference
+        "Device.PCP.Client.{i}.ANNOUNCEEnable";
+    }
+    leaf thirdparty-enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.THIRDPARTYEnable";
+      reference
+        "Device.PCP.Client.{i}.THIRDPARTYEnable";
+    }
+    leaf thirdparty-status {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.THIRDPARTYStatus";
+      reference
+        "Device.PCP.Client.{i}.THIRDPARTYStatus";
+    }
+    leaf filter-enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.FILTEREnable";
+      reference
+        "Device.PCP.Client.{i}.FILTEREnable";
+    }
+    leaf server-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.PCP.Client.{i}.ServerNumberOfEntries";
+      reference
+        "Device.PCP.Client.{i}.ServerNumberOfEntries";
+    }
+  }
+
+  grouping client-pcp-proxy-g {
+    description
+      "Grouping object for Device.PCP.Client.{i}.PCPProxy.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.PCPProxy.Enable";
+      reference
+        "Device.PCP.Client.{i}.PCPProxy.Enable";
+    }
+    leaf highest-version {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.PCPProxy.HighestVersion";
+      reference
+        "Device.PCP.Client.{i}.PCPProxy.HighestVersion";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.PCPProxy.Status";
+      reference
+        "Device.PCP.Client.{i}.PCPProxy.Status";
+    }
+  }
+
+  grouping pcp-client-server-g {
+    description
+      "Grouping object for Device.PCP.Client.{i}.Server.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.Enable";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.Status";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.Alias";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.Alias";
+    }
+    leaf origin {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.Origin";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.Origin";
+    }
+    leaf server-name-or-address {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.ServerNameOrAddress";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.ServerNameOrAddress";
+    }
+    leaf server-address-in-use {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.ServerAddressInUse";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.ServerAddressInUse";
+    }
+    leaf additional-server-addresses {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.AdditionalServerAddresses";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.AdditionalServerAddresses";
+    }
+    leaf external-ip-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.ExternalIPAddress";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.ExternalIPAddress";
+    }
+    leaf current-version {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.CurrentVersion";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.CurrentVersion";
+    }
+    leaf maximum-filters {
+      type uint32;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.MaximumFilters";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.MaximumFilters";
+    }
+    leaf port-quota {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.PortQuota";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.PortQuota";
+    }
+    leaf preferred-lifetime {
+      type uint32;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.PreferredLifetime";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.PreferredLifetime";
+    }
+    leaf capabilities {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.Capabilities";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.Capabilities";
+    }
+    leaf inbound-mapping-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMappingNumberOfEntries";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMappingNumberOfEntries";
+    }
+    leaf outbound-mapping-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMappingNumberOfEntries";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMappingNumberOfEntries";
+    }
+  }
+
+  grouping server-inbound-mapping-g {
+    description
+      "Grouping object for Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Enable";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Status";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Status";
+    }
+    leaf error-code {
+      type uint32 {
+        range "1..255";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.ErrorCode";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.ErrorCode";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Alias";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Alias";
+    }
+    leaf origin {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Origin";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Origin";
+    }
+    leaf lifetime {
+      type uint32;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Lifetime";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Lifetime";
+    }
+    leaf suggested-external-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.SuggestedExternalIPAddress";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.SuggestedExternalIPAddress";
+    }
+    leaf suggested-external-port {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.SuggestedExternalPort";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.SuggestedExternalPort";
+    }
+    leaf suggested-external-port-end-range {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.SuggestedExternalPortEndRange";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.SuggestedExternalPortEndRange";
+    }
+    leaf internal-port {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.InternalPort";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.InternalPort";
+    }
+    leaf protocol-number {
+      type int32 {
+        range "-1..255";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.ProtocolNumber";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.ProtocolNumber";
+    }
+    leaf third-party-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.ThirdPartyAddress";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.ThirdPartyAddress";
+    }
+    leaf description {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Description";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Description";
+    }
+    leaf assigned-external-ip-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.AssignedExternalIPAddress";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.AssignedExternalIPAddress";
+    }
+    leaf assigned-external-port {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.AssignedExternalPort";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.AssignedExternalPort";
+    }
+    leaf assigned-external-port-end-range {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.AssignedExternalPortEndRange";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.AssignedExternalPortEndRange";
+    }
+    leaf filter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.FilterNumberOfEntries";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.FilterNumberOfEntries";
+    }
+  }
+
+  grouping inbound-mapping-filter-g {
+    description
+      "Grouping object for Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.Alias";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.Alias";
+    }
+    leaf remote-host-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.RemoteHostIPAddress";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.RemoteHostIPAddress";
+    }
+    leaf prefix-length {
+      type uint32 {
+        range "1..128";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.PrefixLength";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.PrefixLength";
+    }
+    leaf remote-port {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.RemotePort";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.RemotePort";
+    }
+    leaf remote-port-end-range {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.RemotePortEndRange";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.RemotePortEndRange";
+    }
+  }
+
+  grouping server-outbound-mapping-g {
+    description
+      "Grouping object for Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Enable";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Status";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Status";
+    }
+    leaf error-code {
+      type uint32 {
+        range "1..255";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.ErrorCode";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.ErrorCode";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Alias";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Alias";
+    }
+    leaf origin {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Origin";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Origin";
+    }
+    leaf lifetime {
+      type uint32;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Lifetime";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Lifetime";
+    }
+    leaf suggested-external-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.SuggestedExternalIPAddress";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.SuggestedExternalIPAddress";
+    }
+    leaf suggested-external-port {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.SuggestedExternalPort";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.SuggestedExternalPort";
+    }
+    leaf remote-host-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.RemoteHostIPAddress";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.RemoteHostIPAddress";
+    }
+    leaf internal-port {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.InternalPort";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.InternalPort";
+    }
+    leaf remote-port {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.RemotePort";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.RemotePort";
+    }
+    leaf protocol-number {
+      type int32 {
+        range "-1..255";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.ProtocolNumber";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.ProtocolNumber";
+    }
+    leaf third-party-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.ThirdPartyAddress";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.ThirdPartyAddress";
+    }
+    leaf description {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Description";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Description";
+    }
+    leaf assigned-external-ip-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.AssignedExternalIPAddress";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.AssignedExternalIPAddress";
+    }
+    leaf assigned-external-port {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.AssignedExternalPort";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.AssignedExternalPort";
+    }
+  }
+
+  grouping client-u-pn-piwf-g {
+    description
+      "Grouping object for Device.PCP.Client.{i}.UPnPIWF.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.UPnPIWF.Enable";
+      reference
+        "Device.PCP.Client.{i}.UPnPIWF.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.UPnPIWF.Status";
+      reference
+        "Device.PCP.Client.{i}.UPnPIWF.Status";
+    }
+  }
+
+  grouping device-ppp-g {
+    description
+      "Grouping object for Device.PPP.";
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.PPP.InterfaceNumberOfEntries";
+      reference
+        "Device.PPP.InterfaceNumberOfEntries";
+    }
+    leaf supported-nc-ps {
+      type string;
+      config false;
+      description
+        "Device.PPP.SupportedNCPs";
+      reference
+        "Device.PPP.SupportedNCPs";
+    }
+  }
+
+  grouping ppp-interface-g {
+    description
+      "Grouping object for Device.PPP.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.PPP.Interface.{i}.Enable";
+      reference
+        "Device.PPP.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Status";
+      reference
+        "Device.PPP.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.PPP.Interface.{i}.Alias";
+      reference
+        "Device.PPP.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Name";
+      reference
+        "Device.PPP.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.LastChange";
+      reference
+        "Device.PPP.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.PPP.Interface.{i}.LowerLayers";
+      reference
+        "Device.PPP.Interface.{i}.LowerLayers";
+    }
+    leaf connection-status {
+      type string;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.ConnectionStatus";
+      reference
+        "Device.PPP.Interface.{i}.ConnectionStatus";
+    }
+    leaf last-connection-error {
+      type string;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.LastConnectionError";
+      reference
+        "Device.PPP.Interface.{i}.LastConnectionError";
+    }
+    leaf auto-disconnect-time {
+      type uint32;
+      description
+        "Device.PPP.Interface.{i}.AutoDisconnectTime";
+      reference
+        "Device.PPP.Interface.{i}.AutoDisconnectTime";
+    }
+    leaf idle-disconnect-time {
+      type uint32;
+      description
+        "Device.PPP.Interface.{i}.IdleDisconnectTime";
+      reference
+        "Device.PPP.Interface.{i}.IdleDisconnectTime";
+    }
+    leaf warn-disconnect-delay {
+      type uint32;
+      description
+        "Device.PPP.Interface.{i}.WarnDisconnectDelay";
+      reference
+        "Device.PPP.Interface.{i}.WarnDisconnectDelay";
+    }
+    leaf username {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.PPP.Interface.{i}.Username";
+      reference
+        "Device.PPP.Interface.{i}.Username";
+    }
+    leaf encryption-protocol {
+      type string;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.EncryptionProtocol";
+      reference
+        "Device.PPP.Interface.{i}.EncryptionProtocol";
+    }
+    leaf compression-protocol {
+      type string;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.CompressionProtocol";
+      reference
+        "Device.PPP.Interface.{i}.CompressionProtocol";
+    }
+    leaf authentication-protocol {
+      type string;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.AuthenticationProtocol";
+      reference
+        "Device.PPP.Interface.{i}.AuthenticationProtocol";
+    }
+    leaf max-mru-size {
+      type uint32 {
+        range "64..65535";
+      }
+      description
+        "Device.PPP.Interface.{i}.MaxMRUSize";
+      reference
+        "Device.PPP.Interface.{i}.MaxMRUSize";
+    }
+    leaf current-mru-size {
+      type uint32 {
+        range "64..65535";
+      }
+      config false;
+      description
+        "Device.PPP.Interface.{i}.CurrentMRUSize";
+      reference
+        "Device.PPP.Interface.{i}.CurrentMRUSize";
+    }
+    leaf connection-trigger {
+      type enumeration {
+        enum OnDemand {
+          description
+            "Enum Value - OnDemand";
+        }
+        enum AlwaysOn {
+          description
+            "Enum Value - AlwaysOn";
+        }
+        enum Manual {
+          description
+            "Enum Value - Manual";
+        }
+      }
+      description
+        "Device.PPP.Interface.{i}.ConnectionTrigger";
+      reference
+        "Device.PPP.Interface.{i}.ConnectionTrigger";
+    }
+    leaf lcp-echo {
+      type uint32;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.LCPEcho";
+      reference
+        "Device.PPP.Interface.{i}.LCPEcho";
+    }
+    leaf lcp-echo-retry {
+      type uint32;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.LCPEchoRetry";
+      reference
+        "Device.PPP.Interface.{i}.LCPEchoRetry";
+    }
+    leaf ipcp-enable {
+      type boolean;
+      description
+        "Device.PPP.Interface.{i}.IPCPEnable";
+      reference
+        "Device.PPP.Interface.{i}.IPCPEnable";
+    }
+    leaf ipv6-cp-enable {
+      type boolean;
+      description
+        "Device.PPP.Interface.{i}.IPv6CPEnable";
+      reference
+        "Device.PPP.Interface.{i}.IPv6CPEnable";
+    }
+  }
+
+  grouping interface-ipcp-g {
+    description
+      "Grouping object for Device.PPP.Interface.{i}.IPCP.";
+    leaf local-ip-address {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.PPP.Interface.{i}.IPCP.LocalIPAddress";
+      reference
+        "Device.PPP.Interface.{i}.IPCP.LocalIPAddress";
+    }
+    leaf remote-ip-address {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.PPP.Interface.{i}.IPCP.RemoteIPAddress";
+      reference
+        "Device.PPP.Interface.{i}.IPCP.RemoteIPAddress";
+    }
+    leaf dns-servers {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.PPP.Interface.{i}.IPCP.DNSServers";
+      reference
+        "Device.PPP.Interface.{i}.IPCP.DNSServers";
+    }
+    leaf passthrough-enable {
+      type boolean;
+      description
+        "Device.PPP.Interface.{i}.IPCP.PassthroughEnable";
+      reference
+        "Device.PPP.Interface.{i}.IPCP.PassthroughEnable";
+    }
+    leaf passthrough-dhcp-pool {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.PPP.Interface.{i}.IPCP.PassthroughDHCPPool";
+      reference
+        "Device.PPP.Interface.{i}.IPCP.PassthroughDHCPPool";
+    }
+  }
+
+  grouping interface-ipv6-cp-g {
+    description
+      "Grouping object for Device.PPP.Interface.{i}.IPv6CP.";
+    leaf local-interface-identifier {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.PPP.Interface.{i}.IPv6CP.LocalInterfaceIdentifier";
+      reference
+        "Device.PPP.Interface.{i}.IPv6CP.LocalInterfaceIdentifier";
+    }
+    leaf remote-interface-identifier {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.PPP.Interface.{i}.IPv6CP.RemoteInterfaceIdentifier";
+      reference
+        "Device.PPP.Interface.{i}.IPv6CP.RemoteInterfaceIdentifier";
+    }
+  }
+
+  grouping interface-pp-po-e-g {
+    description
+      "Grouping object for Device.PPP.Interface.{i}.PPPoE.";
+    leaf session-id {
+      type uint32;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.PPPoE.SessionID";
+      reference
+        "Device.PPP.Interface.{i}.PPPoE.SessionID";
+    }
+    leaf ac-name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.PPP.Interface.{i}.PPPoE.ACName";
+      reference
+        "Device.PPP.Interface.{i}.PPPoE.ACName";
+    }
+    leaf service-name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.PPP.Interface.{i}.PPPoE.ServiceName";
+      reference
+        "Device.PPP.Interface.{i}.PPPoE.ServiceName";
+    }
+  }
+
+  grouping ppp-interface-stats-g {
+    description
+      "Grouping object for Device.PPP.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.PPP.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.PPP.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.PPP.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.PPP.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.PPP.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.PPP.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.PPP.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.PPP.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.PPP.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.PPP.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.PPP.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.PPP.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.PPP.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.PPP.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.PPP.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping device-ptm-g {
+    description
+      "Grouping object for Device.PTM.";
+    leaf link-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.PTM.LinkNumberOfEntries";
+      reference
+        "Device.PTM.LinkNumberOfEntries";
+    }
+  }
+
+  grouping ptm-link-g {
+    description
+      "Grouping object for Device.PTM.Link.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.PTM.Link.{i}.Enable";
+      reference
+        "Device.PTM.Link.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Status";
+      reference
+        "Device.PTM.Link.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.PTM.Link.{i}.Alias";
+      reference
+        "Device.PTM.Link.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Name";
+      reference
+        "Device.PTM.Link.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.PTM.Link.{i}.LastChange";
+      reference
+        "Device.PTM.Link.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.PTM.Link.{i}.LowerLayers";
+      reference
+        "Device.PTM.Link.{i}.LowerLayers";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.PTM.Link.{i}.MACAddress";
+      reference
+        "Device.PTM.Link.{i}.MACAddress";
+    }
+  }
+
+  grouping ptm-link-stats-g {
+    description
+      "Grouping object for Device.PTM.Link.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.BytesSent";
+      reference
+        "Device.PTM.Link.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.BytesReceived";
+      reference
+        "Device.PTM.Link.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.PacketsSent";
+      reference
+        "Device.PTM.Link.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.PacketsReceived";
+      reference
+        "Device.PTM.Link.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.ErrorsSent";
+      reference
+        "Device.PTM.Link.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.PTM.Link.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.PTM.Link.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.PTM.Link.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.PTM.Link.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.PTM.Link.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.PTM.Link.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.PTM.Link.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.PTM.Link.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.PTM.Link.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.PTM.Link.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping device-periodic-statistics-g {
+    description
+      "Grouping object for Device.PeriodicStatistics.";
+    leaf min-sample-interval {
+      type uint32;
+      config false;
+      description
+        "Device.PeriodicStatistics.MinSampleInterval";
+      reference
+        "Device.PeriodicStatistics.MinSampleInterval";
+    }
+    leaf max-report-samples {
+      type uint32;
+      config false;
+      description
+        "Device.PeriodicStatistics.MaxReportSamples";
+      reference
+        "Device.PeriodicStatistics.MaxReportSamples";
+    }
+    leaf sample-set-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.PeriodicStatistics.SampleSetNumberOfEntries";
+      reference
+        "Device.PeriodicStatistics.SampleSetNumberOfEntries";
+    }
+  }
+
+  grouping periodic-statistics-sample-set-g {
+    description
+      "Grouping object for Device.PeriodicStatistics.SampleSet.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Alias";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Enable";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Status";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Status";
+    }
+    leaf name {
+      type string {
+        length "min..128";
+      }
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Name";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Name";
+    }
+    leaf sample-interval {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.SampleInterval";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.SampleInterval";
+    }
+    leaf report-samples {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.ReportSamples";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.ReportSamples";
+    }
+    leaf time-reference {
+      type string;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.TimeReference";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.TimeReference";
+    }
+    leaf fetch-samples {
+      type uint32;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.FetchSamples";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.FetchSamples";
+    }
+    leaf report-start-time {
+      type string;
+      config false;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.ReportStartTime";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.ReportStartTime";
+    }
+    leaf report-end-time {
+      type string;
+      config false;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.ReportEndTime";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.ReportEndTime";
+    }
+    leaf sample-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.SampleSeconds";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.SampleSeconds";
+    }
+    leaf parameter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.ParameterNumberOfEntries";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.ParameterNumberOfEntries";
+    }
+  }
+
+  grouping sample-set-parameter-g {
+    description
+      "Grouping object for Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Alias";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Enable";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Enable";
+    }
+    leaf reference {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Reference";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Reference";
+    }
+    leaf sample-mode {
+      type enumeration {
+        enum Current {
+          description
+            "Enum Value - Current";
+        }
+        enum Change {
+          description
+            "Enum Value - Change";
+        }
+      }
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SampleMode";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SampleMode";
+    }
+    leaf calculation-mode {
+      type enumeration {
+        enum Latest {
+          description
+            "Enum Value - Latest";
+        }
+        enum Minimum {
+          description
+            "Enum Value - Minimum";
+        }
+        enum Maximum {
+          description
+            "Enum Value - Maximum";
+        }
+        enum Average {
+          description
+            "Enum Value - Average";
+        }
+      }
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.CalculationMode";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.CalculationMode";
+    }
+    leaf low-threshold {
+      type int32;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.LowThreshold";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.LowThreshold";
+    }
+    leaf high-threshold {
+      type int32;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.HighThreshold";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.HighThreshold";
+    }
+    leaf sample-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SampleSeconds";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SampleSeconds";
+    }
+    leaf suspect-data {
+      type uint32;
+      config false;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SuspectData";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SuspectData";
+    }
+    leaf values {
+      type string;
+      config false;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Values";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Values";
+    }
+    leaf failures {
+      type uint32;
+      config false;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Failures";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Failures";
+    }
+  }
+
+  grouping device-qo-s-g {
+    description
+      "Grouping object for Device.QoS.";
+    leaf max-classification-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.MaxClassificationEntries";
+      reference
+        "Device.QoS.MaxClassificationEntries";
+    }
+    leaf classification-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.ClassificationNumberOfEntries";
+      reference
+        "Device.QoS.ClassificationNumberOfEntries";
+    }
+    leaf max-app-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.MaxAppEntries";
+      reference
+        "Device.QoS.MaxAppEntries";
+    }
+    leaf app-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.AppNumberOfEntries";
+      reference
+        "Device.QoS.AppNumberOfEntries";
+    }
+    leaf max-flow-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.MaxFlowEntries";
+      reference
+        "Device.QoS.MaxFlowEntries";
+    }
+    leaf flow-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.FlowNumberOfEntries";
+      reference
+        "Device.QoS.FlowNumberOfEntries";
+    }
+    leaf max-policer-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.MaxPolicerEntries";
+      reference
+        "Device.QoS.MaxPolicerEntries";
+    }
+    leaf policer-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.PolicerNumberOfEntries";
+      reference
+        "Device.QoS.PolicerNumberOfEntries";
+    }
+    leaf max-queue-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.MaxQueueEntries";
+      reference
+        "Device.QoS.MaxQueueEntries";
+    }
+    leaf queue-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.QueueNumberOfEntries";
+      reference
+        "Device.QoS.QueueNumberOfEntries";
+    }
+    leaf queue-stats-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.QueueStatsNumberOfEntries";
+      reference
+        "Device.QoS.QueueStatsNumberOfEntries";
+    }
+    leaf max-shaper-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.MaxShaperEntries";
+      reference
+        "Device.QoS.MaxShaperEntries";
+    }
+    leaf shaper-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.ShaperNumberOfEntries";
+      reference
+        "Device.QoS.ShaperNumberOfEntries";
+    }
+    leaf default-forwarding-policy {
+      type uint32;
+      description
+        "Device.QoS.DefaultForwardingPolicy";
+      reference
+        "Device.QoS.DefaultForwardingPolicy";
+    }
+    leaf default-traffic-class {
+      type uint32;
+      description
+        "Device.QoS.DefaultTrafficClass";
+      reference
+        "Device.QoS.DefaultTrafficClass";
+    }
+    leaf default-policer {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.DefaultPolicer";
+      reference
+        "Device.QoS.DefaultPolicer";
+    }
+    leaf default-queue {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.DefaultQueue";
+      reference
+        "Device.QoS.DefaultQueue";
+    }
+    leaf default-dscp-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.DefaultDSCPMark";
+      reference
+        "Device.QoS.DefaultDSCPMark";
+    }
+    leaf default-ethernet-priority-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.DefaultEthernetPriorityMark";
+      reference
+        "Device.QoS.DefaultEthernetPriorityMark";
+    }
+    leaf default-inner-ethernet-priority-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.DefaultInnerEthernetPriorityMark";
+      reference
+        "Device.QoS.DefaultInnerEthernetPriorityMark";
+    }
+    leaf available-app-list {
+      type string;
+      config false;
+      description
+        "Device.QoS.AvailableAppList";
+      reference
+        "Device.QoS.AvailableAppList";
+    }
+  }
+
+  grouping qo-s-app-g {
+    description
+      "Grouping object for Device.QoS.App.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.QoS.App.{i}.Enable";
+      reference
+        "Device.QoS.App.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.QoS.App.{i}.Status";
+      reference
+        "Device.QoS.App.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.QoS.App.{i}.Alias";
+      reference
+        "Device.QoS.App.{i}.Alias";
+    }
+    leaf protocol-identifier {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.App.{i}.ProtocolIdentifier";
+      reference
+        "Device.QoS.App.{i}.ProtocolIdentifier";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.QoS.App.{i}.Name";
+      reference
+        "Device.QoS.App.{i}.Name";
+    }
+    leaf default-forwarding-policy {
+      type uint32;
+      description
+        "Device.QoS.App.{i}.DefaultForwardingPolicy";
+      reference
+        "Device.QoS.App.{i}.DefaultForwardingPolicy";
+    }
+    leaf default-traffic-class {
+      type uint32;
+      description
+        "Device.QoS.App.{i}.DefaultTrafficClass";
+      reference
+        "Device.QoS.App.{i}.DefaultTrafficClass";
+    }
+    leaf default-policer {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.App.{i}.DefaultPolicer";
+      reference
+        "Device.QoS.App.{i}.DefaultPolicer";
+    }
+    leaf default-dscp-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.App.{i}.DefaultDSCPMark";
+      reference
+        "Device.QoS.App.{i}.DefaultDSCPMark";
+    }
+    leaf default-ethernet-priority-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.App.{i}.DefaultEthernetPriorityMark";
+      reference
+        "Device.QoS.App.{i}.DefaultEthernetPriorityMark";
+    }
+    leaf default-inner-ethernet-priority-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.App.{i}.DefaultInnerEthernetPriorityMark";
+      reference
+        "Device.QoS.App.{i}.DefaultInnerEthernetPriorityMark";
+    }
+  }
+
+  grouping qo-s-classification-g {
+    description
+      "Grouping object for Device.QoS.Classification.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.Enable";
+      reference
+        "Device.QoS.Classification.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.QoS.Classification.{i}.Status";
+      reference
+        "Device.QoS.Classification.{i}.Status";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.Order";
+      reference
+        "Device.QoS.Classification.{i}.Order";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.QoS.Classification.{i}.Alias";
+      reference
+        "Device.QoS.Classification.{i}.Alias";
+    }
+    leaf dhcp-type {
+      type enumeration {
+        enum DHCPv4 {
+          description
+            "Enum Value - DHCPv4";
+        }
+        enum DHCPv6 {
+          description
+            "Enum Value - DHCPv6";
+        }
+      }
+      description
+        "Device.QoS.Classification.{i}.DHCPType";
+      reference
+        "Device.QoS.Classification.{i}.DHCPType";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.Classification.{i}.Interface";
+      reference
+        "Device.QoS.Classification.{i}.Interface";
+    }
+    leaf all-interfaces {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.AllInterfaces";
+      reference
+        "Device.QoS.Classification.{i}.AllInterfaces";
+    }
+    leaf dest-ip {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestIP";
+      reference
+        "Device.QoS.Classification.{i}.DestIP";
+    }
+    leaf dest-mask {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestMask";
+      reference
+        "Device.QoS.Classification.{i}.DestMask";
+    }
+    leaf dest-ip-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.DestIPExclude";
+      reference
+        "Device.QoS.Classification.{i}.DestIPExclude";
+    }
+    leaf source-ip {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceIP";
+      reference
+        "Device.QoS.Classification.{i}.SourceIP";
+    }
+    leaf source-mask {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceMask";
+      reference
+        "Device.QoS.Classification.{i}.SourceMask";
+    }
+    leaf source-ip-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.SourceIPExclude";
+      reference
+        "Device.QoS.Classification.{i}.SourceIPExclude";
+    }
+    leaf protocol {
+      type int32 {
+        range "-1..255";
+      }
+      description
+        "Device.QoS.Classification.{i}.Protocol";
+      reference
+        "Device.QoS.Classification.{i}.Protocol";
+    }
+    leaf protocol-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.ProtocolExclude";
+      reference
+        "Device.QoS.Classification.{i}.ProtocolExclude";
+    }
+    leaf dest-port {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestPort";
+      reference
+        "Device.QoS.Classification.{i}.DestPort";
+    }
+    leaf dest-port-range-max {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestPortRangeMax";
+      reference
+        "Device.QoS.Classification.{i}.DestPortRangeMax";
+    }
+    leaf dest-port-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.DestPortExclude";
+      reference
+        "Device.QoS.Classification.{i}.DestPortExclude";
+    }
+    leaf source-port {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourcePort";
+      reference
+        "Device.QoS.Classification.{i}.SourcePort";
+    }
+    leaf source-port-range-max {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourcePortRangeMax";
+      reference
+        "Device.QoS.Classification.{i}.SourcePortRangeMax";
+    }
+    leaf source-port-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.SourcePortExclude";
+      reference
+        "Device.QoS.Classification.{i}.SourcePortExclude";
+    }
+    leaf source-mac-address {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceMACAddress";
+      reference
+        "Device.QoS.Classification.{i}.SourceMACAddress";
+    }
+    leaf source-mac-mask {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceMACMask";
+      reference
+        "Device.QoS.Classification.{i}.SourceMACMask";
+    }
+    leaf source-mac-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.SourceMACExclude";
+      reference
+        "Device.QoS.Classification.{i}.SourceMACExclude";
+    }
+    leaf dest-mac-address {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestMACAddress";
+      reference
+        "Device.QoS.Classification.{i}.DestMACAddress";
+    }
+    leaf dest-mac-mask {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestMACMask";
+      reference
+        "Device.QoS.Classification.{i}.DestMACMask";
+    }
+    leaf dest-mac-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.DestMACExclude";
+      reference
+        "Device.QoS.Classification.{i}.DestMACExclude";
+    }
+    leaf ethertype {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.Ethertype";
+      reference
+        "Device.QoS.Classification.{i}.Ethertype";
+    }
+    leaf ethertype-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.EthertypeExclude";
+      reference
+        "Device.QoS.Classification.{i}.EthertypeExclude";
+    }
+    leaf ssap {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.SSAP";
+      reference
+        "Device.QoS.Classification.{i}.SSAP";
+    }
+    leaf ssap-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.SSAPExclude";
+      reference
+        "Device.QoS.Classification.{i}.SSAPExclude";
+    }
+    leaf dsap {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.DSAP";
+      reference
+        "Device.QoS.Classification.{i}.DSAP";
+    }
+    leaf dsap-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.DSAPExclude";
+      reference
+        "Device.QoS.Classification.{i}.DSAPExclude";
+    }
+    leaf llc-control {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.LLCControl";
+      reference
+        "Device.QoS.Classification.{i}.LLCControl";
+    }
+    leaf llc-control-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.LLCControlExclude";
+      reference
+        "Device.QoS.Classification.{i}.LLCControlExclude";
+    }
+    leaf snapoui {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.SNAPOUI";
+      reference
+        "Device.QoS.Classification.{i}.SNAPOUI";
+    }
+    leaf snapoui-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.SNAPOUIExclude";
+      reference
+        "Device.QoS.Classification.{i}.SNAPOUIExclude";
+    }
+    leaf source-vendor-class-id {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceVendorClassID";
+      reference
+        "Device.QoS.Classification.{i}.SourceVendorClassID";
+    }
+    leaf source-vendor-class-idv6 {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceVendorClassIDv6";
+      reference
+        "Device.QoS.Classification.{i}.SourceVendorClassIDv6";
+    }
+    leaf source-vendor-class-id-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.SourceVendorClassIDExclude";
+      reference
+        "Device.QoS.Classification.{i}.SourceVendorClassIDExclude";
+    }
+    leaf source-vendor-class-id-mode {
+      type enumeration {
+        enum Exact {
+          description
+            "Enum Value - Exact";
+        }
+        enum Prefix {
+          description
+            "Enum Value - Prefix";
+        }
+        enum Suffix {
+          description
+            "Enum Value - Suffix";
+        }
+        enum Substring {
+          description
+            "Enum Value - Substring";
+        }
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceVendorClassIDMode";
+      reference
+        "Device.QoS.Classification.{i}.SourceVendorClassIDMode";
+    }
+    leaf dest-vendor-class-id {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestVendorClassID";
+      reference
+        "Device.QoS.Classification.{i}.DestVendorClassID";
+    }
+    leaf dest-vendor-class-idv6 {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestVendorClassIDv6";
+      reference
+        "Device.QoS.Classification.{i}.DestVendorClassIDv6";
+    }
+    leaf dest-vendor-class-id-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.DestVendorClassIDExclude";
+      reference
+        "Device.QoS.Classification.{i}.DestVendorClassIDExclude";
+    }
+    leaf dest-vendor-class-id-mode {
+      type enumeration {
+        enum Exact {
+          description
+            "Enum Value - Exact";
+        }
+        enum Prefix {
+          description
+            "Enum Value - Prefix";
+        }
+        enum Suffix {
+          description
+            "Enum Value - Suffix";
+        }
+        enum Substring {
+          description
+            "Enum Value - Substring";
+        }
+      }
+      description
+        "Device.QoS.Classification.{i}.DestVendorClassIDMode";
+      reference
+        "Device.QoS.Classification.{i}.DestVendorClassIDMode";
+    }
+    leaf source-client-id {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceClientID";
+      reference
+        "Device.QoS.Classification.{i}.SourceClientID";
+    }
+    leaf source-client-id-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.SourceClientIDExclude";
+      reference
+        "Device.QoS.Classification.{i}.SourceClientIDExclude";
+    }
+    leaf dest-client-id {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestClientID";
+      reference
+        "Device.QoS.Classification.{i}.DestClientID";
+    }
+    leaf dest-client-id-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.DestClientIDExclude";
+      reference
+        "Device.QoS.Classification.{i}.DestClientIDExclude";
+    }
+    leaf source-user-class-id {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceUserClassID";
+      reference
+        "Device.QoS.Classification.{i}.SourceUserClassID";
+    }
+    leaf source-user-class-id-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.SourceUserClassIDExclude";
+      reference
+        "Device.QoS.Classification.{i}.SourceUserClassIDExclude";
+    }
+    leaf dest-user-class-id {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestUserClassID";
+      reference
+        "Device.QoS.Classification.{i}.DestUserClassID";
+    }
+    leaf dest-user-class-id-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.DestUserClassIDExclude";
+      reference
+        "Device.QoS.Classification.{i}.DestUserClassIDExclude";
+    }
+    leaf source-vendor-specific-info {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceVendorSpecificInfo";
+      reference
+        "Device.QoS.Classification.{i}.SourceVendorSpecificInfo";
+    }
+    leaf source-vendor-specific-info-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.SourceVendorSpecificInfoExclude";
+      reference
+        "Device.QoS.Classification.{i}.SourceVendorSpecificInfoExclude";
+    }
+    leaf source-vendor-specific-info-enterprise {
+      type uint32;
+      description
+        "Device.QoS.Classification.{i}.SourceVendorSpecificInfoEnterprise";
+      reference
+        "Device.QoS.Classification.{i}.SourceVendorSpecificInfoEnterprise";
+    }
+    leaf source-vendor-specific-info-sub-option {
+      type int32 {
+        range "0..255";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceVendorSpecificInfoSubOption";
+      reference
+        "Device.QoS.Classification.{i}.SourceVendorSpecificInfoSubOption";
+    }
+    leaf dest-vendor-specific-info {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestVendorSpecificInfo";
+      reference
+        "Device.QoS.Classification.{i}.DestVendorSpecificInfo";
+    }
+    leaf dest-vendor-specific-info-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.DestVendorSpecificInfoExclude";
+      reference
+        "Device.QoS.Classification.{i}.DestVendorSpecificInfoExclude";
+    }
+    leaf dest-vendor-specific-info-enterprise {
+      type uint32;
+      description
+        "Device.QoS.Classification.{i}.DestVendorSpecificInfoEnterprise";
+      reference
+        "Device.QoS.Classification.{i}.DestVendorSpecificInfoEnterprise";
+    }
+    leaf dest-vendor-specific-info-sub-option {
+      type int32 {
+        range "0..255";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestVendorSpecificInfoSubOption";
+      reference
+        "Device.QoS.Classification.{i}.DestVendorSpecificInfoSubOption";
+    }
+    leaf tcpack {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.TCPACK";
+      reference
+        "Device.QoS.Classification.{i}.TCPACK";
+    }
+    leaf tcpack-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.TCPACKExclude";
+      reference
+        "Device.QoS.Classification.{i}.TCPACKExclude";
+    }
+    leaf ip-length-min {
+      type uint32;
+      description
+        "Device.QoS.Classification.{i}.IPLengthMin";
+      reference
+        "Device.QoS.Classification.{i}.IPLengthMin";
+    }
+    leaf ip-length-max {
+      type uint32;
+      description
+        "Device.QoS.Classification.{i}.IPLengthMax";
+      reference
+        "Device.QoS.Classification.{i}.IPLengthMax";
+    }
+    leaf ip-length-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.IPLengthExclude";
+      reference
+        "Device.QoS.Classification.{i}.IPLengthExclude";
+    }
+    leaf dscp-check {
+      type int32 {
+        range "-1..63";
+      }
+      description
+        "Device.QoS.Classification.{i}.DSCPCheck";
+      reference
+        "Device.QoS.Classification.{i}.DSCPCheck";
+    }
+    leaf dscp-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.DSCPExclude";
+      reference
+        "Device.QoS.Classification.{i}.DSCPExclude";
+    }
+    leaf dscp-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.DSCPMark";
+      reference
+        "Device.QoS.Classification.{i}.DSCPMark";
+    }
+    leaf ethernet-priority-check {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.EthernetPriorityCheck";
+      reference
+        "Device.QoS.Classification.{i}.EthernetPriorityCheck";
+    }
+    leaf ethernet-priority-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.EthernetPriorityExclude";
+      reference
+        "Device.QoS.Classification.{i}.EthernetPriorityExclude";
+    }
+    leaf ethernet-priority-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.EthernetPriorityMark";
+      reference
+        "Device.QoS.Classification.{i}.EthernetPriorityMark";
+    }
+    leaf inner-ethernet-priority-check {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.InnerEthernetPriorityCheck";
+      reference
+        "Device.QoS.Classification.{i}.InnerEthernetPriorityCheck";
+    }
+    leaf inner-ethernet-priority-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.InnerEthernetPriorityExclude";
+      reference
+        "Device.QoS.Classification.{i}.InnerEthernetPriorityExclude";
+    }
+    leaf inner-ethernet-priority-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.InnerEthernetPriorityMark";
+      reference
+        "Device.QoS.Classification.{i}.InnerEthernetPriorityMark";
+    }
+    leaf ethernet-dei-check {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.EthernetDEICheck";
+      reference
+        "Device.QoS.Classification.{i}.EthernetDEICheck";
+    }
+    leaf ethernet-dei-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.EthernetDEIExclude";
+      reference
+        "Device.QoS.Classification.{i}.EthernetDEIExclude";
+    }
+    leaf vlanid-check {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.VLANIDCheck";
+      reference
+        "Device.QoS.Classification.{i}.VLANIDCheck";
+    }
+    leaf vlanid-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.VLANIDExclude";
+      reference
+        "Device.QoS.Classification.{i}.VLANIDExclude";
+    }
+    leaf out-of-band-info {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.OutOfBandInfo";
+      reference
+        "Device.QoS.Classification.{i}.OutOfBandInfo";
+    }
+    leaf forwarding-policy {
+      type uint32;
+      description
+        "Device.QoS.Classification.{i}.ForwardingPolicy";
+      reference
+        "Device.QoS.Classification.{i}.ForwardingPolicy";
+    }
+    leaf traffic-class {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.TrafficClass";
+      reference
+        "Device.QoS.Classification.{i}.TrafficClass";
+    }
+    leaf policer {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.Classification.{i}.Policer";
+      reference
+        "Device.QoS.Classification.{i}.Policer";
+    }
+    leaf app {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.Classification.{i}.App";
+      reference
+        "Device.QoS.Classification.{i}.App";
+    }
+  }
+
+  grouping qo-s-flow-g {
+    description
+      "Grouping object for Device.QoS.Flow.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.QoS.Flow.{i}.Enable";
+      reference
+        "Device.QoS.Flow.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.QoS.Flow.{i}.Status";
+      reference
+        "Device.QoS.Flow.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.QoS.Flow.{i}.Alias";
+      reference
+        "Device.QoS.Flow.{i}.Alias";
+    }
+    leaf type {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.Flow.{i}.Type";
+      reference
+        "Device.QoS.Flow.{i}.Type";
+    }
+    leaf type-parameters {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.Flow.{i}.TypeParameters";
+      reference
+        "Device.QoS.Flow.{i}.TypeParameters";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.QoS.Flow.{i}.Name";
+      reference
+        "Device.QoS.Flow.{i}.Name";
+    }
+    leaf app {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.Flow.{i}.App";
+      reference
+        "Device.QoS.Flow.{i}.App";
+    }
+    leaf forwarding-policy {
+      type uint32;
+      description
+        "Device.QoS.Flow.{i}.ForwardingPolicy";
+      reference
+        "Device.QoS.Flow.{i}.ForwardingPolicy";
+    }
+    leaf traffic-class {
+      type uint32;
+      description
+        "Device.QoS.Flow.{i}.TrafficClass";
+      reference
+        "Device.QoS.Flow.{i}.TrafficClass";
+    }
+    leaf policer {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.Flow.{i}.Policer";
+      reference
+        "Device.QoS.Flow.{i}.Policer";
+    }
+    leaf dscp-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.Flow.{i}.DSCPMark";
+      reference
+        "Device.QoS.Flow.{i}.DSCPMark";
+    }
+    leaf ethernet-priority-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.Flow.{i}.EthernetPriorityMark";
+      reference
+        "Device.QoS.Flow.{i}.EthernetPriorityMark";
+    }
+    leaf inner-ethernet-priority-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.Flow.{i}.InnerEthernetPriorityMark";
+      reference
+        "Device.QoS.Flow.{i}.InnerEthernetPriorityMark";
+    }
+  }
+
+  grouping qo-s-policer-g {
+    description
+      "Grouping object for Device.QoS.Policer.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.QoS.Policer.{i}.Enable";
+      reference
+        "Device.QoS.Policer.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.QoS.Policer.{i}.Status";
+      reference
+        "Device.QoS.Policer.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.QoS.Policer.{i}.Alias";
+      reference
+        "Device.QoS.Policer.{i}.Alias";
+    }
+    leaf committed-rate {
+      type uint32;
+      description
+        "Device.QoS.Policer.{i}.CommittedRate";
+      reference
+        "Device.QoS.Policer.{i}.CommittedRate";
+    }
+    leaf committed-burst-size {
+      type uint32;
+      description
+        "Device.QoS.Policer.{i}.CommittedBurstSize";
+      reference
+        "Device.QoS.Policer.{i}.CommittedBurstSize";
+    }
+    leaf excess-burst-size {
+      type uint32;
+      description
+        "Device.QoS.Policer.{i}.ExcessBurstSize";
+      reference
+        "Device.QoS.Policer.{i}.ExcessBurstSize";
+    }
+    leaf peak-rate {
+      type uint32;
+      description
+        "Device.QoS.Policer.{i}.PeakRate";
+      reference
+        "Device.QoS.Policer.{i}.PeakRate";
+    }
+    leaf peak-burst-size {
+      type uint32;
+      description
+        "Device.QoS.Policer.{i}.PeakBurstSize";
+      reference
+        "Device.QoS.Policer.{i}.PeakBurstSize";
+    }
+    leaf meter-type {
+      type string;
+      description
+        "Device.QoS.Policer.{i}.MeterType";
+      reference
+        "Device.QoS.Policer.{i}.MeterType";
+    }
+    leaf possible-meter-types {
+      type string;
+      config false;
+      description
+        "Device.QoS.Policer.{i}.PossibleMeterTypes";
+      reference
+        "Device.QoS.Policer.{i}.PossibleMeterTypes";
+    }
+    leaf conforming-action {
+      type string;
+      description
+        "Device.QoS.Policer.{i}.ConformingAction";
+      reference
+        "Device.QoS.Policer.{i}.ConformingAction";
+    }
+    leaf partial-conforming-action {
+      type string;
+      description
+        "Device.QoS.Policer.{i}.PartialConformingAction";
+      reference
+        "Device.QoS.Policer.{i}.PartialConformingAction";
+    }
+    leaf non-conforming-action {
+      type string;
+      description
+        "Device.QoS.Policer.{i}.NonConformingAction";
+      reference
+        "Device.QoS.Policer.{i}.NonConformingAction";
+    }
+    leaf total-counted-packets {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.Policer.{i}.TotalCountedPackets";
+      reference
+        "Device.QoS.Policer.{i}.TotalCountedPackets";
+    }
+    leaf total-counted-bytes {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.Policer.{i}.TotalCountedBytes";
+      reference
+        "Device.QoS.Policer.{i}.TotalCountedBytes";
+    }
+    leaf conforming-counted-packets {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.Policer.{i}.ConformingCountedPackets";
+      reference
+        "Device.QoS.Policer.{i}.ConformingCountedPackets";
+    }
+    leaf conforming-counted-bytes {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.Policer.{i}.ConformingCountedBytes";
+      reference
+        "Device.QoS.Policer.{i}.ConformingCountedBytes";
+    }
+    leaf partially-conforming-counted-packets {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.Policer.{i}.PartiallyConformingCountedPackets";
+      reference
+        "Device.QoS.Policer.{i}.PartiallyConformingCountedPackets";
+    }
+    leaf partially-conforming-counted-bytes {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.Policer.{i}.PartiallyConformingCountedBytes";
+      reference
+        "Device.QoS.Policer.{i}.PartiallyConformingCountedBytes";
+    }
+    leaf non-conforming-counted-packets {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.Policer.{i}.NonConformingCountedPackets";
+      reference
+        "Device.QoS.Policer.{i}.NonConformingCountedPackets";
+    }
+    leaf non-conforming-counted-bytes {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.Policer.{i}.NonConformingCountedBytes";
+      reference
+        "Device.QoS.Policer.{i}.NonConformingCountedBytes";
+    }
+  }
+
+  grouping qo-s-queue-g {
+    description
+      "Grouping object for Device.QoS.Queue.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.QoS.Queue.{i}.Enable";
+      reference
+        "Device.QoS.Queue.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.QoS.Queue.{i}.Status";
+      reference
+        "Device.QoS.Queue.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.QoS.Queue.{i}.Alias";
+      reference
+        "Device.QoS.Queue.{i}.Alias";
+    }
+    leaf traffic-classes {
+      type uint32;
+      description
+        "Device.QoS.Queue.{i}.TrafficClasses";
+      reference
+        "Device.QoS.Queue.{i}.TrafficClasses";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.Queue.{i}.Interface";
+      reference
+        "Device.QoS.Queue.{i}.Interface";
+    }
+    leaf all-interfaces {
+      type boolean;
+      description
+        "Device.QoS.Queue.{i}.AllInterfaces";
+      reference
+        "Device.QoS.Queue.{i}.AllInterfaces";
+    }
+    leaf hardware-assisted {
+      type boolean;
+      config false;
+      description
+        "Device.QoS.Queue.{i}.HardwareAssisted";
+      reference
+        "Device.QoS.Queue.{i}.HardwareAssisted";
+    }
+    leaf buffer-length {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.Queue.{i}.BufferLength";
+      reference
+        "Device.QoS.Queue.{i}.BufferLength";
+    }
+    leaf weight {
+      type uint32;
+      description
+        "Device.QoS.Queue.{i}.Weight";
+      reference
+        "Device.QoS.Queue.{i}.Weight";
+    }
+    leaf precedence {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.QoS.Queue.{i}.Precedence";
+      reference
+        "Device.QoS.Queue.{i}.Precedence";
+    }
+    leaf red-threshold {
+      type uint32 {
+        range "min..100";
+      }
+      description
+        "Device.QoS.Queue.{i}.REDThreshold";
+      reference
+        "Device.QoS.Queue.{i}.REDThreshold";
+    }
+    leaf red-percentage {
+      type uint32 {
+        range "min..100";
+      }
+      description
+        "Device.QoS.Queue.{i}.REDPercentage";
+      reference
+        "Device.QoS.Queue.{i}.REDPercentage";
+    }
+    leaf drop-algorithm {
+      type enumeration {
+        enum RED {
+          description
+            "Enum Value - RED";
+        }
+        enum DT {
+          description
+            "Enum Value - DT";
+        }
+        enum WRED {
+          description
+            "Enum Value - WRED";
+        }
+        enum BLUE {
+          description
+            "Enum Value - BLUE";
+        }
+      }
+      description
+        "Device.QoS.Queue.{i}.DropAlgorithm";
+      reference
+        "Device.QoS.Queue.{i}.DropAlgorithm";
+    }
+    leaf scheduler-algorithm {
+      type enumeration {
+        enum WFQ {
+          description
+            "Enum Value - WFQ";
+        }
+        enum WRR {
+          description
+            "Enum Value - WRR";
+        }
+        enum SP {
+          description
+            "Enum Value - SP";
+        }
+      }
+      description
+        "Device.QoS.Queue.{i}.SchedulerAlgorithm";
+      reference
+        "Device.QoS.Queue.{i}.SchedulerAlgorithm";
+    }
+    leaf shaping-rate {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Queue.{i}.ShapingRate";
+      reference
+        "Device.QoS.Queue.{i}.ShapingRate";
+    }
+    leaf shaping-burst-size {
+      type uint32;
+      description
+        "Device.QoS.Queue.{i}.ShapingBurstSize";
+      reference
+        "Device.QoS.Queue.{i}.ShapingBurstSize";
+    }
+  }
+
+  grouping qo-s-queue-stats-g {
+    description
+      "Grouping object for Device.QoS.QueueStats.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.QoS.QueueStats.{i}.Enable";
+      reference
+        "Device.QoS.QueueStats.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.QoS.QueueStats.{i}.Status";
+      reference
+        "Device.QoS.QueueStats.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.QoS.QueueStats.{i}.Alias";
+      reference
+        "Device.QoS.QueueStats.{i}.Alias";
+    }
+    leaf queue {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.QueueStats.{i}.Queue";
+      reference
+        "Device.QoS.QueueStats.{i}.Queue";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.QueueStats.{i}.Interface";
+      reference
+        "Device.QoS.QueueStats.{i}.Interface";
+    }
+    leaf output-packets {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.QueueStats.{i}.OutputPackets";
+      reference
+        "Device.QoS.QueueStats.{i}.OutputPackets";
+    }
+    leaf output-bytes {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.QueueStats.{i}.OutputBytes";
+      reference
+        "Device.QoS.QueueStats.{i}.OutputBytes";
+    }
+    leaf dropped-packets {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.QueueStats.{i}.DroppedPackets";
+      reference
+        "Device.QoS.QueueStats.{i}.DroppedPackets";
+    }
+    leaf dropped-bytes {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.QueueStats.{i}.DroppedBytes";
+      reference
+        "Device.QoS.QueueStats.{i}.DroppedBytes";
+    }
+    leaf queue-occupancy-packets {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.QueueStats.{i}.QueueOccupancyPackets";
+      reference
+        "Device.QoS.QueueStats.{i}.QueueOccupancyPackets";
+    }
+    leaf queue-occupancy-percentage {
+      type uint32 {
+        range "0..100";
+      }
+      config false;
+      description
+        "Device.QoS.QueueStats.{i}.QueueOccupancyPercentage";
+      reference
+        "Device.QoS.QueueStats.{i}.QueueOccupancyPercentage";
+    }
+  }
+
+  grouping qo-s-shaper-g {
+    description
+      "Grouping object for Device.QoS.Shaper.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.QoS.Shaper.{i}.Enable";
+      reference
+        "Device.QoS.Shaper.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.QoS.Shaper.{i}.Status";
+      reference
+        "Device.QoS.Shaper.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.QoS.Shaper.{i}.Alias";
+      reference
+        "Device.QoS.Shaper.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.Shaper.{i}.Interface";
+      reference
+        "Device.QoS.Shaper.{i}.Interface";
+    }
+    leaf shaping-rate {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Shaper.{i}.ShapingRate";
+      reference
+        "Device.QoS.Shaper.{i}.ShapingRate";
+    }
+    leaf shaping-burst-size {
+      type uint32;
+      description
+        "Device.QoS.Shaper.{i}.ShapingBurstSize";
+      reference
+        "Device.QoS.Shaper.{i}.ShapingBurstSize";
+    }
+  }
+
+  grouping device-router-advertisement-g {
+    description
+      "Grouping object for Device.RouterAdvertisement.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.RouterAdvertisement.Enable";
+      reference
+        "Device.RouterAdvertisement.Enable";
+    }
+    leaf interface-setting-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.RouterAdvertisement.InterfaceSettingNumberOfEntries";
+      reference
+        "Device.RouterAdvertisement.InterfaceSettingNumberOfEntries";
+    }
+  }
+
+  grouping router-advertisement-interface-setting-g {
+    description
+      "Grouping object for Device.RouterAdvertisement.InterfaceSetting.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Enable";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Status";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Alias";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Alias";
+    }
+    leaf interface {
+      type string;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Interface";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Interface";
+    }
+    leaf manual-prefixes {
+      type string;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.ManualPrefixes";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.ManualPrefixes";
+    }
+    leaf prefixes {
+      type string;
+      config false;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Prefixes";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Prefixes";
+    }
+    leaf max-rtr-adv-interval {
+      type uint32 {
+        range "4..1800";
+      }
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.MaxRtrAdvInterval";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.MaxRtrAdvInterval";
+    }
+    leaf min-rtr-adv-interval {
+      type uint32 {
+        range "3..1350";
+      }
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.MinRtrAdvInterval";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.MinRtrAdvInterval";
+    }
+    leaf adv-default-lifetime {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvDefaultLifetime";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvDefaultLifetime";
+    }
+    leaf adv-managed-flag {
+      type boolean;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvManagedFlag";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvManagedFlag";
+    }
+    leaf adv-other-config-flag {
+      type boolean;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvOtherConfigFlag";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvOtherConfigFlag";
+    }
+    leaf adv-mobile-agent-flag {
+      type boolean;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvMobileAgentFlag";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvMobileAgentFlag";
+    }
+    leaf adv-preferred-router-flag {
+      type enumeration {
+        enum High {
+          description
+            "Enum Value - High";
+        }
+        enum Medium {
+          description
+            "Enum Value - Medium";
+        }
+        enum Low {
+          description
+            "Enum Value - Low";
+        }
+      }
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvPreferredRouterFlag";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvPreferredRouterFlag";
+    }
+    leaf adv-nd-proxy-flag {
+      type boolean;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvNDProxyFlag";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvNDProxyFlag";
+    }
+    leaf adv-link-mtu {
+      type uint32;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvLinkMTU";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvLinkMTU";
+    }
+    leaf adv-reachable-time {
+      type uint32 {
+        range "min..3600000";
+      }
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvReachableTime";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvReachableTime";
+    }
+    leaf adv-retrans-timer {
+      type uint32;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvRetransTimer";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvRetransTimer";
+    }
+    leaf adv-cur-hop-limit {
+      type uint32 {
+        range "min..255";
+      }
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvCurHopLimit";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvCurHopLimit";
+    }
+    leaf option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.OptionNumberOfEntries";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.OptionNumberOfEntries";
+    }
+  }
+
+  grouping interface-setting-option-g {
+    description
+      "Grouping object for Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.Enable";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.Alias";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.Alias";
+    }
+    leaf tag {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.Tag";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.Tag";
+    }
+    leaf value {
+      type string {
+        length "0..65535";
+      }
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.Value";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.Value";
+    }
+  }
+
+  grouping device-routing-g {
+    description
+      "Grouping object for Device.Routing.";
+    leaf router-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Routing.RouterNumberOfEntries";
+      reference
+        "Device.Routing.RouterNumberOfEntries";
+    }
+  }
+
+  grouping routing-rip-g {
+    description
+      "Grouping object for Device.Routing.RIP.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.Routing.RIP.Enable";
+      reference
+        "Device.Routing.RIP.Enable";
+    }
+    leaf supported-modes {
+      type string;
+      config false;
+      description
+        "Device.Routing.RIP.SupportedModes";
+      reference
+        "Device.Routing.RIP.SupportedModes";
+    }
+    leaf interface-setting-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Routing.RIP.InterfaceSettingNumberOfEntries";
+      reference
+        "Device.Routing.RIP.InterfaceSettingNumberOfEntries";
+    }
+  }
+
+  grouping rip-interface-setting-g {
+    description
+      "Grouping object for Device.Routing.RIP.InterfaceSetting.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Routing.RIP.InterfaceSetting.{i}.Enable";
+      reference
+        "Device.Routing.RIP.InterfaceSetting.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Routing.RIP.InterfaceSetting.{i}.Status";
+      reference
+        "Device.Routing.RIP.InterfaceSetting.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Routing.RIP.InterfaceSetting.{i}.Alias";
+      reference
+        "Device.Routing.RIP.InterfaceSetting.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Routing.RIP.InterfaceSetting.{i}.Interface";
+      reference
+        "Device.Routing.RIP.InterfaceSetting.{i}.Interface";
+    }
+    leaf accept-ra {
+      type boolean;
+      description
+        "Device.Routing.RIP.InterfaceSetting.{i}.AcceptRA";
+      reference
+        "Device.Routing.RIP.InterfaceSetting.{i}.AcceptRA";
+    }
+    leaf send-ra {
+      type boolean;
+      description
+        "Device.Routing.RIP.InterfaceSetting.{i}.SendRA";
+      reference
+        "Device.Routing.RIP.InterfaceSetting.{i}.SendRA";
+    }
+  }
+
+  grouping routing-route-information-g {
+    description
+      "Grouping object for Device.Routing.RouteInformation.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.Routing.RouteInformation.Enable";
+      reference
+        "Device.Routing.RouteInformation.Enable";
+    }
+    leaf interface-setting-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Routing.RouteInformation.InterfaceSettingNumberOfEntries";
+      reference
+        "Device.Routing.RouteInformation.InterfaceSettingNumberOfEntries";
+    }
+  }
+
+  grouping route-information-interface-setting-g {
+    description
+      "Grouping object for Device.Routing.RouteInformation.InterfaceSetting.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.Status";
+      reference
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.Status";
+    }
+    leaf interface {
+      type string;
+      config false;
+      description
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.Interface";
+      reference
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.Interface";
+    }
+    leaf source-router {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.SourceRouter";
+      reference
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.SourceRouter";
+    }
+    leaf preferred-route-flag {
+      type string;
+      config false;
+      description
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.PreferredRouteFlag";
+      reference
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.PreferredRouteFlag";
+    }
+    leaf prefix {
+      type string {
+        length "min..49";
+      }
+      config false;
+      description
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.Prefix";
+      reference
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.Prefix";
+    }
+    leaf route-lifetime {
+      type string;
+      config false;
+      description
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.RouteLifetime";
+      reference
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.RouteLifetime";
+    }
+  }
+
+  grouping routing-router-g {
+    description
+      "Grouping object for Device.Routing.Router.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Routing.Router.{i}.Enable";
+      reference
+        "Device.Routing.Router.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Routing.Router.{i}.Status";
+      reference
+        "Device.Routing.Router.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Routing.Router.{i}.Alias";
+      reference
+        "Device.Routing.Router.{i}.Alias";
+    }
+    leaf ipv4-forwarding-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Routing.Router.{i}.IPv4ForwardingNumberOfEntries";
+      reference
+        "Device.Routing.Router.{i}.IPv4ForwardingNumberOfEntries";
+    }
+    leaf ipv6-forwarding-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Routing.Router.{i}.IPv6ForwardingNumberOfEntries";
+      reference
+        "Device.Routing.Router.{i}.IPv6ForwardingNumberOfEntries";
+    }
+  }
+
+  grouping router-ipv4-forwarding-g {
+    description
+      "Grouping object for Device.Routing.Router.{i}.IPv4Forwarding.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.Enable";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.Status";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.Alias";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.Alias";
+    }
+    leaf static-route {
+      type boolean;
+      config false;
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.StaticRoute";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.StaticRoute";
+    }
+    leaf dest-ip-address {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.DestIPAddress";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.DestIPAddress";
+    }
+    leaf dest-subnet-mask {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.DestSubnetMask";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.DestSubnetMask";
+    }
+    leaf forwarding-policy {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.ForwardingPolicy";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.ForwardingPolicy";
+    }
+    leaf gateway-ip-address {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.GatewayIPAddress";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.GatewayIPAddress";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.Interface";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.Interface";
+    }
+    leaf origin {
+      type string;
+      config false;
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.Origin";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.Origin";
+    }
+    leaf forwarding-metric {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.ForwardingMetric";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.ForwardingMetric";
+    }
+  }
+
+  grouping router-ipv6-forwarding-g {
+    description
+      "Grouping object for Device.Routing.Router.{i}.IPv6Forwarding.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.Enable";
+      reference
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.Status";
+      reference
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.Alias";
+      reference
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.Alias";
+    }
+    leaf dest-ip-prefix {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.DestIPPrefix";
+      reference
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.DestIPPrefix";
+    }
+    leaf forwarding-policy {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.ForwardingPolicy";
+      reference
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.ForwardingPolicy";
+    }
+    leaf next-hop {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.NextHop";
+      reference
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.NextHop";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.Interface";
+      reference
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.Interface";
+    }
+    leaf origin {
+      type string;
+      config false;
+      description
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.Origin";
+      reference
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.Origin";
+    }
+    leaf forwarding-metric {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.ForwardingMetric";
+      reference
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.ForwardingMetric";
+    }
+    leaf expiration-time {
+      type string;
+      config false;
+      description
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.ExpirationTime";
+      reference
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.ExpirationTime";
+    }
+  }
+
+  grouping device-security-g {
+    description
+      "Grouping object for Device.Security.";
+    leaf certificate-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Security.CertificateNumberOfEntries";
+      reference
+        "Device.Security.CertificateNumberOfEntries";
+    }
+  }
+
+  grouping security-certificate-g {
+    description
+      "Grouping object for Device.Security.Certificate.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Security.Certificate.{i}.Enable";
+      reference
+        "Device.Security.Certificate.{i}.Enable";
+    }
+    leaf last-modif {
+      type string;
+      config false;
+      description
+        "Device.Security.Certificate.{i}.LastModif";
+      reference
+        "Device.Security.Certificate.{i}.LastModif";
+    }
+    leaf serial-number {
+      type string;
+      config false;
+      description
+        "Device.Security.Certificate.{i}.SerialNumber";
+      reference
+        "Device.Security.Certificate.{i}.SerialNumber";
+    }
+    leaf issuer {
+      type string;
+      config false;
+      description
+        "Device.Security.Certificate.{i}.Issuer";
+      reference
+        "Device.Security.Certificate.{i}.Issuer";
+    }
+    leaf not-before {
+      type string;
+      config false;
+      description
+        "Device.Security.Certificate.{i}.NotBefore";
+      reference
+        "Device.Security.Certificate.{i}.NotBefore";
+    }
+    leaf not-after {
+      type string;
+      config false;
+      description
+        "Device.Security.Certificate.{i}.NotAfter";
+      reference
+        "Device.Security.Certificate.{i}.NotAfter";
+    }
+    leaf subject {
+      type string;
+      config false;
+      description
+        "Device.Security.Certificate.{i}.Subject";
+      reference
+        "Device.Security.Certificate.{i}.Subject";
+    }
+    leaf subject-alt {
+      type string;
+      config false;
+      description
+        "Device.Security.Certificate.{i}.SubjectAlt";
+      reference
+        "Device.Security.Certificate.{i}.SubjectAlt";
+    }
+    leaf signature-algorithm {
+      type string;
+      config false;
+      description
+        "Device.Security.Certificate.{i}.SignatureAlgorithm";
+      reference
+        "Device.Security.Certificate.{i}.SignatureAlgorithm";
+    }
+  }
+
+  grouping device-self-test-diagnostics-g {
+    description
+      "Grouping object for Device.SelfTestDiagnostics.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error_Internal {
+          description
+            "Enum Value - Error_Internal";
+        }
+        enum Error_Other {
+          description
+            "Enum Value - Error_Other";
+        }
+      }
+      description
+        "Device.SelfTestDiagnostics.DiagnosticsState";
+      reference
+        "Device.SelfTestDiagnostics.DiagnosticsState";
+    }
+    leaf results {
+      type string;
+      config false;
+      description
+        "Device.SelfTestDiagnostics.Results";
+      reference
+        "Device.SelfTestDiagnostics.Results";
+    }
+  }
+
+  grouping device-smart-card-readers-g {
+    description
+      "Grouping object for Device.SmartCardReaders.";
+    leaf smart-card-reader-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReaderNumberOfEntries";
+      reference
+        "Device.SmartCardReaders.SmartCardReaderNumberOfEntries";
+    }
+  }
+
+  grouping smart-card-readers-smart-card-reader-g {
+    description
+      "Grouping object for Device.SmartCardReaders.SmartCardReader.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.Alias";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.Enable";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.Status";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.Status";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.Name";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.Name";
+    }
+    leaf reset-time {
+      type string;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.ResetTime";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.ResetTime";
+    }
+    leaf decryption-failed-counter {
+      type uint32;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.DecryptionFailedCounter";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.DecryptionFailedCounter";
+    }
+    leaf decryption-failed-no-key-counter {
+      type uint32;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.DecryptionFailedNoKeyCounter";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.DecryptionFailedNoKeyCounter";
+    }
+  }
+
+  grouping smart-card-reader-smart-card-g {
+    description
+      "Grouping object for Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.";
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.Status";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.Status";
+    }
+    leaf type {
+      type string;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.Type";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.Type";
+    }
+    leaf application {
+      type string;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.Application";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.Application";
+    }
+    leaf serial-number {
+      type string;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.SerialNumber";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.SerialNumber";
+    }
+    leaf atr {
+      type string;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.ATR";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.ATR";
+    }
+  }
+
+  grouping device-software-modules-g {
+    description
+      "Grouping object for Device.SoftwareModules.";
+    leaf exec-env-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnvNumberOfEntries";
+      reference
+        "Device.SoftwareModules.ExecEnvNumberOfEntries";
+    }
+    leaf deployment-unit-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnitNumberOfEntries";
+      reference
+        "Device.SoftwareModules.DeploymentUnitNumberOfEntries";
+    }
+    leaf execution-unit-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnitNumberOfEntries";
+      reference
+        "Device.SoftwareModules.ExecutionUnitNumberOfEntries";
+    }
+  }
+
+  grouping software-modules-deployment-unit-g {
+    description
+      "Grouping object for Device.SoftwareModules.DeploymentUnit.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf uuid {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.UUID";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.UUID";
+    }
+    leaf duid {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.DUID";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.DUID";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.Alias";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.Name";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.Name";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.Status";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.Status";
+    }
+    leaf resolved {
+      type boolean;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.Resolved";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.Resolved";
+    }
+    leaf url {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.URL";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.URL";
+    }
+    leaf description {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.Description";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.Description";
+    }
+    leaf vendor {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.Vendor";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.Vendor";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.Version";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.Version";
+    }
+    leaf vendor-log-list {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.VendorLogList";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.VendorLogList";
+    }
+    leaf vendor-config-list {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.VendorConfigList";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.VendorConfigList";
+    }
+    leaf execution-unit-list {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.ExecutionUnitList";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.ExecutionUnitList";
+    }
+    leaf execution-env-ref {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.ExecutionEnvRef";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.ExecutionEnvRef";
+    }
+  }
+
+  grouping software-modules-exec-env-g {
+    description
+      "Grouping object for Device.SoftwareModules.ExecEnv.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.Enable";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.Status";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.Alias";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.Name";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.Name";
+    }
+    leaf type {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.Type";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.Type";
+    }
+    leaf initial-run-level {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.InitialRunLevel";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.InitialRunLevel";
+    }
+    leaf current-run-level {
+      type int32 {
+        range "-1..65535";
+      }
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.CurrentRunLevel";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.CurrentRunLevel";
+    }
+    leaf initial-execution-unit-run-level {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.InitialExecutionUnitRunLevel";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.InitialExecutionUnitRunLevel";
+    }
+    leaf vendor {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.Vendor";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.Vendor";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.Version";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.Version";
+    }
+    leaf parent-exec-env {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.ParentExecEnv";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.ParentExecEnv";
+    }
+    leaf allocated-disk-space {
+      type int32;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.AllocatedDiskSpace";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.AllocatedDiskSpace";
+    }
+    leaf available-disk-space {
+      type int32;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.AvailableDiskSpace";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.AvailableDiskSpace";
+    }
+    leaf allocated-memory {
+      type int32;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.AllocatedMemory";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.AllocatedMemory";
+    }
+    leaf available-memory {
+      type int32;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.AvailableMemory";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.AvailableMemory";
+    }
+    leaf active-execution-units {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.ActiveExecutionUnits";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.ActiveExecutionUnits";
+    }
+    leaf processor-ref-list {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.ProcessorRefList";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.ProcessorRefList";
+    }
+  }
+
+  grouping software-modules-execution-unit-g {
+    description
+      "Grouping object for Device.SoftwareModules.ExecutionUnit.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf euid {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.EUID";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.EUID";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.Alias";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.Name";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.Name";
+    }
+    leaf exec-env-label {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.ExecEnvLabel";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.ExecEnvLabel";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.Status";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.Status";
+    }
+    leaf execution-fault-code {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.ExecutionFaultCode";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.ExecutionFaultCode";
+    }
+    leaf execution-fault-message {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.ExecutionFaultMessage";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.ExecutionFaultMessage";
+    }
+    leaf auto-start {
+      type boolean;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.AutoStart";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.AutoStart";
+    }
+    leaf run-level {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.RunLevel";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.RunLevel";
+    }
+    leaf vendor {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.Vendor";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.Vendor";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.Version";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.Version";
+    }
+    leaf description {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.Description";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.Description";
+    }
+    leaf disk-space-in-use {
+      type int32;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.DiskSpaceInUse";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.DiskSpaceInUse";
+    }
+    leaf memory-in-use {
+      type int32;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.MemoryInUse";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.MemoryInUse";
+    }
+    leaf references {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.References";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.References";
+    }
+    leaf associated-process-list {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.AssociatedProcessList";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.AssociatedProcessList";
+    }
+    leaf vendor-log-list {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.VendorLogList";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.VendorLogList";
+    }
+    leaf vendor-config-list {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.VendorConfigList";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.VendorConfigList";
+    }
+    leaf supported-data-model-list {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.SupportedDataModelList";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.SupportedDataModelList";
+    }
+    leaf execution-env-ref {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.ExecutionEnvRef";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.ExecutionEnvRef";
+    }
+  }
+
+  grouping device-time-g {
+    description
+      "Grouping object for Device.Time.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.Time.Enable";
+      reference
+        "Device.Time.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Time.Status";
+      reference
+        "Device.Time.Status";
+    }
+    leaf ntp-server1 {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Time.NTPServer1";
+      reference
+        "Device.Time.NTPServer1";
+    }
+    leaf ntp-server2 {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Time.NTPServer2";
+      reference
+        "Device.Time.NTPServer2";
+    }
+    leaf ntp-server3 {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Time.NTPServer3";
+      reference
+        "Device.Time.NTPServer3";
+    }
+    leaf ntp-server4 {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Time.NTPServer4";
+      reference
+        "Device.Time.NTPServer4";
+    }
+    leaf ntp-server5 {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Time.NTPServer5";
+      reference
+        "Device.Time.NTPServer5";
+    }
+    leaf current-local-time {
+      type string;
+      config false;
+      description
+        "Device.Time.CurrentLocalTime";
+      reference
+        "Device.Time.CurrentLocalTime";
+    }
+    leaf local-time-zone {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Time.LocalTimeZone";
+      reference
+        "Device.Time.LocalTimeZone";
+    }
+  }
+
+  grouping device-upa-g {
+    description
+      "Grouping object for Device.UPA.";
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.InterfaceNumberOfEntries";
+      reference
+        "Device.UPA.InterfaceNumberOfEntries";
+    }
+  }
+
+  grouping diagnostics-interface-measurement-g {
+    description
+      "Grouping object for Device.UPA.Diagnostics.InterfaceMeasurement.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Canceled {
+          description
+            "Enum Value - Canceled";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error {
+          description
+            "Enum Value - Error";
+        }
+        enum Error_InvalidPort {
+          description
+            "Enum Value - Error_InvalidPort";
+        }
+      }
+      description
+        "Device.UPA.Diagnostics.InterfaceMeasurement.DiagnosticsState";
+      reference
+        "Device.UPA.Diagnostics.InterfaceMeasurement.DiagnosticsState";
+    }
+    leaf type {
+      type enumeration {
+        enum SNR {
+          description
+            "Enum Value - SNR";
+        }
+        enum CFR {
+          description
+            "Enum Value - CFR";
+        }
+      }
+      description
+        "Device.UPA.Diagnostics.InterfaceMeasurement.Type";
+      reference
+        "Device.UPA.Diagnostics.InterfaceMeasurement.Type";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.UPA.Diagnostics.InterfaceMeasurement.Interface";
+      reference
+        "Device.UPA.Diagnostics.InterfaceMeasurement.Interface";
+    }
+    leaf port {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.UPA.Diagnostics.InterfaceMeasurement.Port";
+      reference
+        "Device.UPA.Diagnostics.InterfaceMeasurement.Port";
+    }
+    leaf measurements {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Diagnostics.InterfaceMeasurement.Measurements";
+      reference
+        "Device.UPA.Diagnostics.InterfaceMeasurement.Measurements";
+    }
+    leaf rx-gain {
+      type int32;
+      config false;
+      description
+        "Device.UPA.Diagnostics.InterfaceMeasurement.RxGain";
+      reference
+        "Device.UPA.Diagnostics.InterfaceMeasurement.RxGain";
+    }
+  }
+
+  grouping upa-interface-g {
+    description
+      "Grouping object for Device.UPA.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.UPA.Interface.{i}.Enable";
+      reference
+        "Device.UPA.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Status";
+      reference
+        "Device.UPA.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.UPA.Interface.{i}.Alias";
+      reference
+        "Device.UPA.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Name";
+      reference
+        "Device.UPA.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.LastChange";
+      reference
+        "Device.UPA.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.UPA.Interface.{i}.LowerLayers";
+      reference
+        "Device.UPA.Interface.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Upstream";
+      reference
+        "Device.UPA.Interface.{i}.Upstream";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.UPA.Interface.{i}.MACAddress";
+      reference
+        "Device.UPA.Interface.{i}.MACAddress";
+    }
+    leaf firmware-version {
+      type string;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.FirmwareVersion";
+      reference
+        "Device.UPA.Interface.{i}.FirmwareVersion";
+    }
+    leaf max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.MaxBitRate";
+      reference
+        "Device.UPA.Interface.{i}.MaxBitRate";
+    }
+    leaf node-type {
+      type enumeration {
+        enum AP {
+          description
+            "Enum Value - AP";
+        }
+        enum EP {
+          description
+            "Enum Value - EP";
+        }
+      }
+      description
+        "Device.UPA.Interface.{i}.NodeType";
+      reference
+        "Device.UPA.Interface.{i}.NodeType";
+    }
+    leaf logical-network {
+      type string {
+        length "min..20";
+      }
+      description
+        "Device.UPA.Interface.{i}.LogicalNetwork";
+      reference
+        "Device.UPA.Interface.{i}.LogicalNetwork";
+    }
+    leaf encryption-method {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum DES {
+          description
+            "Enum Value - DES";
+        }
+        enum 3DES {
+          description
+            "Enum Value - 3DES";
+        }
+        enum AES128 {
+          description
+            "Enum Value - AES128";
+        }
+        enum AES256 {
+          description
+            "Enum Value - AES256";
+        }
+      }
+      description
+        "Device.UPA.Interface.{i}.EncryptionMethod";
+      reference
+        "Device.UPA.Interface.{i}.EncryptionMethod";
+    }
+    leaf power-backoff-enabled {
+      type boolean;
+      description
+        "Device.UPA.Interface.{i}.PowerBackoffEnabled";
+      reference
+        "Device.UPA.Interface.{i}.PowerBackoffEnabled";
+    }
+    leaf power-backoff-mechanism-active {
+      type boolean;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.PowerBackoffMechanismActive";
+      reference
+        "Device.UPA.Interface.{i}.PowerBackoffMechanismActive";
+    }
+    leaf est-application-throughput {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.EstApplicationThroughput";
+      reference
+        "Device.UPA.Interface.{i}.EstApplicationThroughput";
+    }
+    leaf active-notch-enable {
+      type boolean;
+      description
+        "Device.UPA.Interface.{i}.ActiveNotchEnable";
+      reference
+        "Device.UPA.Interface.{i}.ActiveNotchEnable";
+    }
+    leaf active-notch-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.ActiveNotchNumberOfEntries";
+      reference
+        "Device.UPA.Interface.{i}.ActiveNotchNumberOfEntries";
+    }
+    leaf associated-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDeviceNumberOfEntries";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDeviceNumberOfEntries";
+    }
+    leaf bridge-for-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.BridgeForNumberOfEntries";
+      reference
+        "Device.UPA.Interface.{i}.BridgeForNumberOfEntries";
+    }
+  }
+
+  grouping interface-active-notch-g {
+    description
+      "Grouping object for Device.UPA.Interface.{i}.ActiveNotch.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.UPA.Interface.{i}.ActiveNotch.{i}.Enable";
+      reference
+        "Device.UPA.Interface.{i}.ActiveNotch.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.UPA.Interface.{i}.ActiveNotch.{i}.Alias";
+      reference
+        "Device.UPA.Interface.{i}.ActiveNotch.{i}.Alias";
+    }
+    leaf start-freq {
+      type uint32;
+      description
+        "Device.UPA.Interface.{i}.ActiveNotch.{i}.StartFreq";
+      reference
+        "Device.UPA.Interface.{i}.ActiveNotch.{i}.StartFreq";
+    }
+    leaf stop-freq {
+      type uint32;
+      description
+        "Device.UPA.Interface.{i}.ActiveNotch.{i}.StopFreq";
+      reference
+        "Device.UPA.Interface.{i}.ActiveNotch.{i}.StopFreq";
+    }
+    leaf depth {
+      type uint32;
+      description
+        "Device.UPA.Interface.{i}.ActiveNotch.{i}.Depth";
+      reference
+        "Device.UPA.Interface.{i}.ActiveNotch.{i}.Depth";
+    }
+  }
+
+  grouping upa-interface-associated-device-g {
+    description
+      "Grouping object for Device.UPA.Interface.{i}.AssociatedDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.MACAddress";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.MACAddress";
+    }
+    leaf port {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.Port";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.Port";
+    }
+    leaf logical-network {
+      type string;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.LogicalNetwork";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.LogicalNetwork";
+    }
+    leaf phy-tx-throughput {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.PhyTxThroughput";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.PhyTxThroughput";
+    }
+    leaf phy-rx-throughput {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.PhyRxThroughput";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.PhyRxThroughput";
+    }
+    leaf real-phy-rx-throughput {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.RealPhyRxThroughput";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.RealPhyRxThroughput";
+    }
+    leaf estimated-plr {
+      type uint32 {
+        range "0..100";
+      }
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.EstimatedPLR";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.EstimatedPLR";
+    }
+    leaf mean-estimated-att {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.MeanEstimatedAtt";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.MeanEstimatedAtt";
+    }
+    leaf smart-route-intermediate-plcmac {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.SmartRouteIntermediatePLCMAC";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.SmartRouteIntermediatePLCMAC";
+    }
+    leaf direct-route {
+      type boolean;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.DirectRoute";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.DirectRoute";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.Active";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.Active";
+    }
+  }
+
+  grouping interface-bridge-for-g {
+    description
+      "Grouping object for Device.UPA.Interface.{i}.BridgeFor.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.UPA.Interface.{i}.BridgeFor.{i}.Alias";
+      reference
+        "Device.UPA.Interface.{i}.BridgeFor.{i}.Alias";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.UPA.Interface.{i}.BridgeFor.{i}.MACAddress";
+      reference
+        "Device.UPA.Interface.{i}.BridgeFor.{i}.MACAddress";
+    }
+    leaf port {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.UPA.Interface.{i}.BridgeFor.{i}.Port";
+      reference
+        "Device.UPA.Interface.{i}.BridgeFor.{i}.Port";
+    }
+  }
+
+  grouping upa-interface-stats-g {
+    description
+      "Grouping object for Device.UPA.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.UPA.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.UPA.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.UPA.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.UPA.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.UPA.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.UPA.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.UPA.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.UPA.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.UPA.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.UPA.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.UPA.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.UPA.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.UPA.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.UPA.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.UPA.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping u-pn-p-description-g {
+    description
+      "Grouping object for Device.UPnP.Description.";
+    leaf device-description-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceDescriptionNumberOfEntries";
+      reference
+        "Device.UPnP.Description.DeviceDescriptionNumberOfEntries";
+    }
+    leaf device-instance-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstanceNumberOfEntries";
+      reference
+        "Device.UPnP.Description.DeviceInstanceNumberOfEntries";
+    }
+    leaf service-instance-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Description.ServiceInstanceNumberOfEntries";
+      reference
+        "Device.UPnP.Description.ServiceInstanceNumberOfEntries";
+    }
+  }
+
+  grouping description-device-description-g {
+    description
+      "Grouping object for Device.UPnP.Description.DeviceDescription.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf url-base {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceDescription.{i}.URLBase";
+      reference
+        "Device.UPnP.Description.DeviceDescription.{i}.URLBase";
+    }
+    leaf spec-version {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceDescription.{i}.SpecVersion";
+      reference
+        "Device.UPnP.Description.DeviceDescription.{i}.SpecVersion";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceDescription.{i}.Host";
+      reference
+        "Device.UPnP.Description.DeviceDescription.{i}.Host";
+    }
+  }
+
+  grouping description-device-instance-g {
+    description
+      "Grouping object for Device.UPnP.Description.DeviceInstance.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf udn {
+      type string {
+        length "min..36";
+      }
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.UDN";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.UDN";
+    }
+    leaf parent-device {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.ParentDevice";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.ParentDevice";
+    }
+    leaf discovery-device {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.DiscoveryDevice";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.DiscoveryDevice";
+    }
+    leaf device-type {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.DeviceType";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.DeviceType";
+    }
+    leaf friendly-name {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.FriendlyName";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.FriendlyName";
+    }
+    leaf device-category {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.DeviceCategory";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.DeviceCategory";
+    }
+    leaf manufacturer {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.Manufacturer";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.Manufacturer";
+    }
+    leaf manufacturer-oui {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.ManufacturerOUI";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.ManufacturerOUI";
+    }
+    leaf manufacturer-url {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.ManufacturerURL";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.ManufacturerURL";
+    }
+    leaf model-description {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.ModelDescription";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.ModelDescription";
+    }
+    leaf model-name {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.ModelName";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.ModelName";
+    }
+    leaf model-number {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.ModelNumber";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.ModelNumber";
+    }
+    leaf model-url {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.ModelURL";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.ModelURL";
+    }
+    leaf serial-number {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.SerialNumber";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.SerialNumber";
+    }
+    leaf upc {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.UPC";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.UPC";
+    }
+    leaf presentation-url {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.PresentationURL";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.PresentationURL";
+    }
+  }
+
+  grouping description-service-instance-g {
+    description
+      "Grouping object for Device.UPnP.Description.ServiceInstance.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf parent-device {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.ServiceInstance.{i}.ParentDevice";
+      reference
+        "Device.UPnP.Description.ServiceInstance.{i}.ParentDevice";
+    }
+    leaf service-id {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.ServiceInstance.{i}.ServiceId";
+      reference
+        "Device.UPnP.Description.ServiceInstance.{i}.ServiceId";
+    }
+    leaf service-discovery {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.ServiceInstance.{i}.ServiceDiscovery";
+      reference
+        "Device.UPnP.Description.ServiceInstance.{i}.ServiceDiscovery";
+    }
+    leaf service-type {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.ServiceInstance.{i}.ServiceType";
+      reference
+        "Device.UPnP.Description.ServiceInstance.{i}.ServiceType";
+    }
+    leaf scpdurl {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.ServiceInstance.{i}.SCPDURL";
+      reference
+        "Device.UPnP.Description.ServiceInstance.{i}.SCPDURL";
+    }
+    leaf control-url {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.ServiceInstance.{i}.ControlURL";
+      reference
+        "Device.UPnP.Description.ServiceInstance.{i}.ControlURL";
+    }
+    leaf event-sub-url {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.ServiceInstance.{i}.EventSubURL";
+      reference
+        "Device.UPnP.Description.ServiceInstance.{i}.EventSubURL";
+    }
+  }
+
+  grouping u-pn-p-device-g {
+    description
+      "Grouping object for Device.UPnP.Device.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.UPnP.Device.Enable";
+      reference
+        "Device.UPnP.Device.Enable";
+    }
+    leaf u-pn-p-media-server {
+      type boolean;
+      description
+        "Device.UPnP.Device.UPnPMediaServer";
+      reference
+        "Device.UPnP.Device.UPnPMediaServer";
+    }
+    leaf u-pn-p-media-renderer {
+      type boolean;
+      description
+        "Device.UPnP.Device.UPnPMediaRenderer";
+      reference
+        "Device.UPnP.Device.UPnPMediaRenderer";
+    }
+    leaf u-pn-pwlan-access-point {
+      type boolean;
+      description
+        "Device.UPnP.Device.UPnPWLANAccessPoint";
+      reference
+        "Device.UPnP.Device.UPnPWLANAccessPoint";
+    }
+    leaf u-pn-p-qo-s-device {
+      type boolean;
+      description
+        "Device.UPnP.Device.UPnPQoSDevice";
+      reference
+        "Device.UPnP.Device.UPnPQoSDevice";
+    }
+    leaf u-pn-p-qo-s-policy-holder {
+      type boolean;
+      description
+        "Device.UPnP.Device.UPnPQoSPolicyHolder";
+      reference
+        "Device.UPnP.Device.UPnPQoSPolicyHolder";
+    }
+    leaf u-pn-pigd {
+      type boolean;
+      description
+        "Device.UPnP.Device.UPnPIGD";
+      reference
+        "Device.UPnP.Device.UPnPIGD";
+    }
+    leaf u-pn-pdm-basic-mgmt {
+      type boolean;
+      description
+        "Device.UPnP.Device.UPnPDMBasicMgmt";
+      reference
+        "Device.UPnP.Device.UPnPDMBasicMgmt";
+    }
+    leaf u-pn-pdm-configuration-mgmt {
+      type boolean;
+      description
+        "Device.UPnP.Device.UPnPDMConfigurationMgmt";
+      reference
+        "Device.UPnP.Device.UPnPDMConfigurationMgmt";
+    }
+    leaf u-pn-pdm-software-mgmt {
+      type boolean;
+      description
+        "Device.UPnP.Device.UPnPDMSoftwareMgmt";
+      reference
+        "Device.UPnP.Device.UPnPDMSoftwareMgmt";
+    }
+  }
+
+  grouping device-capabilities-g {
+    description
+      "Grouping object for Device.UPnP.Device.Capabilities.";
+    leaf u-pn-p-architecture {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPArchitecture";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPArchitecture";
+    }
+    leaf u-pn-p-architecture-minor-ver {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPArchitectureMinorVer";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPArchitectureMinorVer";
+    }
+    leaf u-pn-p-media-server {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPMediaServer";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPMediaServer";
+    }
+    leaf u-pn-p-media-renderer {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPMediaRenderer";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPMediaRenderer";
+    }
+    leaf u-pn-pwlan-access-point {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPWLANAccessPoint";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPWLANAccessPoint";
+    }
+    leaf u-pn-p-basic-device {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPBasicDevice";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPBasicDevice";
+    }
+    leaf u-pn-p-qo-s-device {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPQoSDevice";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPQoSDevice";
+    }
+    leaf u-pn-p-qo-s-policy-holder {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPQoSPolicyHolder";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPQoSPolicyHolder";
+    }
+    leaf u-pn-pigd {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPIGD";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPIGD";
+    }
+    leaf u-pn-pdm-basic-mgmt {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPDMBasicMgmt";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPDMBasicMgmt";
+    }
+    leaf u-pn-pdm-configuration-mgmt {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPDMConfigurationMgmt";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPDMConfigurationMgmt";
+    }
+    leaf u-pn-pdm-software-mgmt {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPDMSoftwareMgmt";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPDMSoftwareMgmt";
+    }
+  }
+
+  grouping u-pn-p-discovery-g {
+    description
+      "Grouping object for Device.UPnP.Discovery.";
+    leaf root-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Discovery.RootDeviceNumberOfEntries";
+      reference
+        "Device.UPnP.Discovery.RootDeviceNumberOfEntries";
+    }
+    leaf device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Discovery.DeviceNumberOfEntries";
+      reference
+        "Device.UPnP.Discovery.DeviceNumberOfEntries";
+    }
+    leaf service-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Discovery.ServiceNumberOfEntries";
+      reference
+        "Device.UPnP.Discovery.ServiceNumberOfEntries";
+    }
+  }
+
+  grouping u-pn-p-discovery-device-g {
+    description
+      "Grouping object for Device.UPnP.Discovery.Device.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Device.{i}.Status";
+      reference
+        "Device.UPnP.Discovery.Device.{i}.Status";
+    }
+    leaf uuid {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Device.{i}.UUID";
+      reference
+        "Device.UPnP.Discovery.Device.{i}.UUID";
+    }
+    leaf usn {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Device.{i}.USN";
+      reference
+        "Device.UPnP.Discovery.Device.{i}.USN";
+    }
+    leaf lease-time {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Discovery.Device.{i}.LeaseTime";
+      reference
+        "Device.UPnP.Discovery.Device.{i}.LeaseTime";
+    }
+    leaf location {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Device.{i}.Location";
+      reference
+        "Device.UPnP.Discovery.Device.{i}.Location";
+    }
+    leaf server {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Device.{i}.Server";
+      reference
+        "Device.UPnP.Discovery.Device.{i}.Server";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Device.{i}.Host";
+      reference
+        "Device.UPnP.Discovery.Device.{i}.Host";
+    }
+    leaf last-update {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Device.{i}.LastUpdate";
+      reference
+        "Device.UPnP.Discovery.Device.{i}.LastUpdate";
+    }
+  }
+
+  grouping discovery-root-device-g {
+    description
+      "Grouping object for Device.UPnP.Discovery.RootDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.RootDevice.{i}.Status";
+      reference
+        "Device.UPnP.Discovery.RootDevice.{i}.Status";
+    }
+    leaf uuid {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.RootDevice.{i}.UUID";
+      reference
+        "Device.UPnP.Discovery.RootDevice.{i}.UUID";
+    }
+    leaf usn {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.RootDevice.{i}.USN";
+      reference
+        "Device.UPnP.Discovery.RootDevice.{i}.USN";
+    }
+    leaf lease-time {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Discovery.RootDevice.{i}.LeaseTime";
+      reference
+        "Device.UPnP.Discovery.RootDevice.{i}.LeaseTime";
+    }
+    leaf location {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.RootDevice.{i}.Location";
+      reference
+        "Device.UPnP.Discovery.RootDevice.{i}.Location";
+    }
+    leaf server {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.RootDevice.{i}.Server";
+      reference
+        "Device.UPnP.Discovery.RootDevice.{i}.Server";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.RootDevice.{i}.Host";
+      reference
+        "Device.UPnP.Discovery.RootDevice.{i}.Host";
+    }
+    leaf last-update {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.RootDevice.{i}.LastUpdate";
+      reference
+        "Device.UPnP.Discovery.RootDevice.{i}.LastUpdate";
+    }
+  }
+
+  grouping discovery-service-g {
+    description
+      "Grouping object for Device.UPnP.Discovery.Service.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Service.{i}.Status";
+      reference
+        "Device.UPnP.Discovery.Service.{i}.Status";
+    }
+    leaf usn {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Service.{i}.USN";
+      reference
+        "Device.UPnP.Discovery.Service.{i}.USN";
+    }
+    leaf lease-time {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Discovery.Service.{i}.LeaseTime";
+      reference
+        "Device.UPnP.Discovery.Service.{i}.LeaseTime";
+    }
+    leaf location {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Service.{i}.Location";
+      reference
+        "Device.UPnP.Discovery.Service.{i}.Location";
+    }
+    leaf server {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Service.{i}.Server";
+      reference
+        "Device.UPnP.Discovery.Service.{i}.Server";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Service.{i}.Host";
+      reference
+        "Device.UPnP.Discovery.Service.{i}.Host";
+    }
+    leaf last-update {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Service.{i}.LastUpdate";
+      reference
+        "Device.UPnP.Discovery.Service.{i}.LastUpdate";
+    }
+    leaf parent-device {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Service.{i}.ParentDevice";
+      reference
+        "Device.UPnP.Discovery.Service.{i}.ParentDevice";
+    }
+  }
+
+  grouping device-usb-g {
+    description
+      "Grouping object for Device.USB.";
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.USB.InterfaceNumberOfEntries";
+      reference
+        "Device.USB.InterfaceNumberOfEntries";
+    }
+    leaf port-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.USB.PortNumberOfEntries";
+      reference
+        "Device.USB.PortNumberOfEntries";
+    }
+  }
+
+  grouping usb-interface-g {
+    description
+      "Grouping object for Device.USB.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.USB.Interface.{i}.Enable";
+      reference
+        "Device.USB.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Status";
+      reference
+        "Device.USB.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.USB.Interface.{i}.Alias";
+      reference
+        "Device.USB.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Name";
+      reference
+        "Device.USB.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.USB.Interface.{i}.LastChange";
+      reference
+        "Device.USB.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.USB.Interface.{i}.LowerLayers";
+      reference
+        "Device.USB.Interface.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Upstream";
+      reference
+        "Device.USB.Interface.{i}.Upstream";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.USB.Interface.{i}.MACAddress";
+      reference
+        "Device.USB.Interface.{i}.MACAddress";
+    }
+    leaf max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.USB.Interface.{i}.MaxBitRate";
+      reference
+        "Device.USB.Interface.{i}.MaxBitRate";
+    }
+    leaf port {
+      type string;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Port";
+      reference
+        "Device.USB.Interface.{i}.Port";
+    }
+  }
+
+  grouping usb-interface-stats-g {
+    description
+      "Grouping object for Device.USB.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.USB.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.USB.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.USB.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.USB.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.USB.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.USB.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.USB.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.USB.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.USB.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.USB.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.USB.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.USB.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.USB.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.USB.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.USB.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping usb-port-g {
+    description
+      "Grouping object for Device.USB.Port.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.USB.Port.{i}.Alias";
+      reference
+        "Device.USB.Port.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.USB.Port.{i}.Name";
+      reference
+        "Device.USB.Port.{i}.Name";
+    }
+    leaf standard {
+      type string;
+      config false;
+      description
+        "Device.USB.Port.{i}.Standard";
+      reference
+        "Device.USB.Port.{i}.Standard";
+    }
+    leaf type {
+      type string;
+      config false;
+      description
+        "Device.USB.Port.{i}.Type";
+      reference
+        "Device.USB.Port.{i}.Type";
+    }
+    leaf receptacle {
+      type string;
+      config false;
+      description
+        "Device.USB.Port.{i}.Receptacle";
+      reference
+        "Device.USB.Port.{i}.Receptacle";
+    }
+    leaf rate {
+      type string;
+      config false;
+      description
+        "Device.USB.Port.{i}.Rate";
+      reference
+        "Device.USB.Port.{i}.Rate";
+    }
+    leaf power {
+      type string;
+      config false;
+      description
+        "Device.USB.Port.{i}.Power";
+      reference
+        "Device.USB.Port.{i}.Power";
+    }
+  }
+
+  grouping usb-usb-hosts-g {
+    description
+      "Grouping object for Device.USB.USBHosts.";
+    leaf host-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.HostNumberOfEntries";
+      reference
+        "Device.USB.USBHosts.HostNumberOfEntries";
+    }
+  }
+
+  grouping usb-hosts-host-g {
+    description
+      "Grouping object for Device.USB.USBHosts.Host.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.USB.USBHosts.Host.{i}.Alias";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.USB.USBHosts.Host.{i}.Enable";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Enable";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Name";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Name";
+    }
+    leaf type {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Type";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Type";
+    }
+    leaf power-management-enable {
+      type boolean;
+      description
+        "Device.USB.USBHosts.Host.{i}.PowerManagementEnable";
+      reference
+        "Device.USB.USBHosts.Host.{i}.PowerManagementEnable";
+    }
+    leaf usb-version {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.USBVersion";
+      reference
+        "Device.USB.USBHosts.Host.{i}.USBVersion";
+    }
+    leaf device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.DeviceNumberOfEntries";
+      reference
+        "Device.USB.USBHosts.Host.{i}.DeviceNumberOfEntries";
+    }
+  }
+
+  grouping host-device-g {
+    description
+      "Grouping object for Device.USB.USBHosts.Host.{i}.Device.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf device-number {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.DeviceNumber";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.DeviceNumber";
+    }
+    leaf usb-version {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.USBVersion";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.USBVersion";
+    }
+    leaf device-class {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.DeviceClass";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.DeviceClass";
+    }
+    leaf device-sub-class {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.DeviceSubClass";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.DeviceSubClass";
+    }
+    leaf device-version {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.DeviceVersion";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.DeviceVersion";
+    }
+    leaf device-protocol {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.DeviceProtocol";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.DeviceProtocol";
+    }
+    leaf product-id {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.ProductID";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.ProductID";
+    }
+    leaf vendor-id {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.VendorID";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.VendorID";
+    }
+    leaf manufacturer {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Manufacturer";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Manufacturer";
+    }
+    leaf product-class {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.ProductClass";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.ProductClass";
+    }
+    leaf serial-number {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.SerialNumber";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.SerialNumber";
+    }
+    leaf port {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Port";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Port";
+    }
+    leaf usb-port {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.USBPort";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.USBPort";
+    }
+    leaf rate {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Rate";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Rate";
+    }
+    leaf parent {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Parent";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Parent";
+    }
+    leaf max-children {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.MaxChildren";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.MaxChildren";
+    }
+    leaf is-suspended {
+      type boolean;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.IsSuspended";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.IsSuspended";
+    }
+    leaf is-self-powered {
+      type boolean;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.IsSelfPowered";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.IsSelfPowered";
+    }
+    leaf configuration-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.ConfigurationNumberOfEntries";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.ConfigurationNumberOfEntries";
+    }
+  }
+
+  grouping device-configuration-g {
+    description
+      "Grouping object for Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf configuration-number {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.ConfigurationNumber";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.ConfigurationNumber";
+    }
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.InterfaceNumberOfEntries";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.InterfaceNumberOfEntries";
+    }
+  }
+
+  grouping configuration-interface-g {
+    description
+      "Grouping object for Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf interface-number {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.InterfaceNumber";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.InterfaceNumber";
+    }
+    leaf interface-class {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.InterfaceClass";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.InterfaceClass";
+    }
+    leaf interface-sub-class {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.InterfaceSubClass";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.InterfaceSubClass";
+    }
+    leaf interface-protocol {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.InterfaceProtocol";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.InterfaceProtocol";
+    }
+  }
+
+  grouping device-user-interface-g {
+    description
+      "Grouping object for Device.UserInterface.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.UserInterface.Enable";
+      reference
+        "Device.UserInterface.Enable";
+    }
+    leaf password-required {
+      type boolean;
+      description
+        "Device.UserInterface.PasswordRequired";
+      reference
+        "Device.UserInterface.PasswordRequired";
+    }
+    leaf password-user-selectable {
+      type boolean;
+      description
+        "Device.UserInterface.PasswordUserSelectable";
+      reference
+        "Device.UserInterface.PasswordUserSelectable";
+    }
+    leaf upgrade-available {
+      type boolean;
+      description
+        "Device.UserInterface.UpgradeAvailable";
+      reference
+        "Device.UserInterface.UpgradeAvailable";
+    }
+    leaf warranty-date {
+      type string;
+      description
+        "Device.UserInterface.WarrantyDate";
+      reference
+        "Device.UserInterface.WarrantyDate";
+    }
+    leaf isp-name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.UserInterface.ISPName";
+      reference
+        "Device.UserInterface.ISPName";
+    }
+    leaf isp-help-desk {
+      type string {
+        length "min..32";
+      }
+      description
+        "Device.UserInterface.ISPHelpDesk";
+      reference
+        "Device.UserInterface.ISPHelpDesk";
+    }
+    leaf isp-home-page {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.UserInterface.ISPHomePage";
+      reference
+        "Device.UserInterface.ISPHomePage";
+    }
+    leaf isp-help-page {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.UserInterface.ISPHelpPage";
+      reference
+        "Device.UserInterface.ISPHelpPage";
+    }
+    leaf isp-logo {
+      type string {
+        length "0..4095";
+      }
+      description
+        "Device.UserInterface.ISPLogo";
+      reference
+        "Device.UserInterface.ISPLogo";
+    }
+    leaf isp-logo-size {
+      type uint32 {
+        range "0..4095";
+      }
+      description
+        "Device.UserInterface.ISPLogoSize";
+      reference
+        "Device.UserInterface.ISPLogoSize";
+    }
+    leaf isp-mail-server {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.UserInterface.ISPMailServer";
+      reference
+        "Device.UserInterface.ISPMailServer";
+    }
+    leaf isp-news-server {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.UserInterface.ISPNewsServer";
+      reference
+        "Device.UserInterface.ISPNewsServer";
+    }
+    leaf text-color {
+      type string {
+        length "3";
+      }
+      description
+        "Device.UserInterface.TextColor";
+      reference
+        "Device.UserInterface.TextColor";
+    }
+    leaf background-color {
+      type string {
+        length "3";
+      }
+      description
+        "Device.UserInterface.BackgroundColor";
+      reference
+        "Device.UserInterface.BackgroundColor";
+    }
+    leaf button-color {
+      type string {
+        length "3";
+      }
+      description
+        "Device.UserInterface.ButtonColor";
+      reference
+        "Device.UserInterface.ButtonColor";
+    }
+    leaf button-text-color {
+      type string {
+        length "3";
+      }
+      description
+        "Device.UserInterface.ButtonTextColor";
+      reference
+        "Device.UserInterface.ButtonTextColor";
+    }
+    leaf auto-update-server {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.UserInterface.AutoUpdateServer";
+      reference
+        "Device.UserInterface.AutoUpdateServer";
+    }
+    leaf user-update-server {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.UserInterface.UserUpdateServer";
+      reference
+        "Device.UserInterface.UserUpdateServer";
+    }
+    leaf available-languages {
+      type string;
+      config false;
+      description
+        "Device.UserInterface.AvailableLanguages";
+      reference
+        "Device.UserInterface.AvailableLanguages";
+    }
+    leaf current-language {
+      type string {
+        length "min..16";
+      }
+      description
+        "Device.UserInterface.CurrentLanguage";
+      reference
+        "Device.UserInterface.CurrentLanguage";
+    }
+  }
+
+  grouping user-interface-local-display-g {
+    description
+      "Grouping object for Device.UserInterface.LocalDisplay.";
+    leaf movable {
+      type boolean;
+      description
+        "Device.UserInterface.LocalDisplay.Movable";
+      reference
+        "Device.UserInterface.LocalDisplay.Movable";
+    }
+    leaf resizable {
+      type boolean;
+      description
+        "Device.UserInterface.LocalDisplay.Resizable";
+      reference
+        "Device.UserInterface.LocalDisplay.Resizable";
+    }
+    leaf pos-x {
+      type int32;
+      description
+        "Device.UserInterface.LocalDisplay.PosX";
+      reference
+        "Device.UserInterface.LocalDisplay.PosX";
+    }
+    leaf pos-y {
+      type int32;
+      description
+        "Device.UserInterface.LocalDisplay.PosY";
+      reference
+        "Device.UserInterface.LocalDisplay.PosY";
+    }
+    leaf width {
+      type uint32;
+      description
+        "Device.UserInterface.LocalDisplay.Width";
+      reference
+        "Device.UserInterface.LocalDisplay.Width";
+    }
+    leaf height {
+      type uint32;
+      description
+        "Device.UserInterface.LocalDisplay.Height";
+      reference
+        "Device.UserInterface.LocalDisplay.Height";
+    }
+    leaf display-width {
+      type uint32;
+      config false;
+      description
+        "Device.UserInterface.LocalDisplay.DisplayWidth";
+      reference
+        "Device.UserInterface.LocalDisplay.DisplayWidth";
+    }
+    leaf display-height {
+      type uint32;
+      config false;
+      description
+        "Device.UserInterface.LocalDisplay.DisplayHeight";
+      reference
+        "Device.UserInterface.LocalDisplay.DisplayHeight";
+    }
+  }
+
+  grouping user-interface-messages-g {
+    description
+      "Grouping object for Device.UserInterface.Messages.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.UserInterface.Messages.Enable";
+      reference
+        "Device.UserInterface.Messages.Enable";
+    }
+    leaf title {
+      type string {
+        length "min..128";
+      }
+      description
+        "Device.UserInterface.Messages.Title";
+      reference
+        "Device.UserInterface.Messages.Title";
+    }
+    leaf sub-title {
+      type string {
+        length "min..128";
+      }
+      description
+        "Device.UserInterface.Messages.SubTitle";
+      reference
+        "Device.UserInterface.Messages.SubTitle";
+    }
+    leaf text {
+      type string;
+      description
+        "Device.UserInterface.Messages.Text";
+      reference
+        "Device.UserInterface.Messages.Text";
+    }
+    leaf icon-type {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Greeting {
+          description
+            "Enum Value - Greeting";
+        }
+        enum Information {
+          description
+            "Enum Value - Information";
+        }
+        enum Warning {
+          description
+            "Enum Value - Warning";
+        }
+        enum Important {
+          description
+            "Enum Value - Important";
+        }
+        enum Urgent {
+          description
+            "Enum Value - Urgent";
+        }
+        enum Advertisement {
+          description
+            "Enum Value - Advertisement";
+        }
+      }
+      description
+        "Device.UserInterface.Messages.IconType";
+      reference
+        "Device.UserInterface.Messages.IconType";
+    }
+    leaf message-color {
+      type string {
+        length "3";
+      }
+      description
+        "Device.UserInterface.Messages.MessageColor";
+      reference
+        "Device.UserInterface.Messages.MessageColor";
+    }
+    leaf background-color {
+      type string {
+        length "3";
+      }
+      description
+        "Device.UserInterface.Messages.BackgroundColor";
+      reference
+        "Device.UserInterface.Messages.BackgroundColor";
+    }
+    leaf title-color {
+      type string {
+        length "3";
+      }
+      description
+        "Device.UserInterface.Messages.TitleColor";
+      reference
+        "Device.UserInterface.Messages.TitleColor";
+    }
+    leaf sub-title-color {
+      type string {
+        length "3";
+      }
+      description
+        "Device.UserInterface.Messages.SubTitleColor";
+      reference
+        "Device.UserInterface.Messages.SubTitleColor";
+    }
+    leaf requested-number-of-repetitions {
+      type uint32;
+      description
+        "Device.UserInterface.Messages.RequestedNumberOfRepetitions";
+      reference
+        "Device.UserInterface.Messages.RequestedNumberOfRepetitions";
+    }
+    leaf executed-number-of-repetitions {
+      type uint32;
+      config false;
+      description
+        "Device.UserInterface.Messages.ExecutedNumberOfRepetitions";
+      reference
+        "Device.UserInterface.Messages.ExecutedNumberOfRepetitions";
+    }
+  }
+
+  grouping user-interface-remote-access-g {
+    description
+      "Grouping object for Device.UserInterface.RemoteAccess.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.UserInterface.RemoteAccess.Enable";
+      reference
+        "Device.UserInterface.RemoteAccess.Enable";
+    }
+    leaf port {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.UserInterface.RemoteAccess.Port";
+      reference
+        "Device.UserInterface.RemoteAccess.Port";
+    }
+    leaf supported-protocols {
+      type string;
+      config false;
+      description
+        "Device.UserInterface.RemoteAccess.SupportedProtocols";
+      reference
+        "Device.UserInterface.RemoteAccess.SupportedProtocols";
+    }
+    leaf protocol {
+      type string;
+      description
+        "Device.UserInterface.RemoteAccess.Protocol";
+      reference
+        "Device.UserInterface.RemoteAccess.Protocol";
+    }
+  }
+
+  grouping device-users-g {
+    description
+      "Grouping object for Device.Users.";
+    leaf user-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Users.UserNumberOfEntries";
+      reference
+        "Device.Users.UserNumberOfEntries";
+    }
+  }
+
+  grouping users-user-g {
+    description
+      "Grouping object for Device.Users.User.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Users.User.{i}.Alias";
+      reference
+        "Device.Users.User.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Users.User.{i}.Enable";
+      reference
+        "Device.Users.User.{i}.Enable";
+    }
+    leaf remote-access-capable {
+      type boolean;
+      description
+        "Device.Users.User.{i}.RemoteAccessCapable";
+      reference
+        "Device.Users.User.{i}.RemoteAccessCapable";
+    }
+    leaf username {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Users.User.{i}.Username";
+      reference
+        "Device.Users.User.{i}.Username";
+    }
+    leaf language {
+      type string {
+        length "min..16";
+      }
+      description
+        "Device.Users.User.{i}.Language";
+      reference
+        "Device.Users.User.{i}.Language";
+    }
+  }
+
+  grouping device-vxlan-g {
+    description
+      "Grouping object for Device.VXLAN.";
+    leaf tunnel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.TunnelNumberOfEntries";
+      reference
+        "Device.VXLAN.TunnelNumberOfEntries";
+    }
+    leaf filter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.FilterNumberOfEntries";
+      reference
+        "Device.VXLAN.FilterNumberOfEntries";
+    }
+  }
+
+  grouping vxlan-filter-g {
+    description
+      "Grouping object for Device.VXLAN.Filter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.VXLAN.Filter.{i}.Enable";
+      reference
+        "Device.VXLAN.Filter.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.VXLAN.Filter.{i}.Status";
+      reference
+        "Device.VXLAN.Filter.{i}.Status";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.VXLAN.Filter.{i}.Order";
+      reference
+        "Device.VXLAN.Filter.{i}.Order";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.VXLAN.Filter.{i}.Alias";
+      reference
+        "Device.VXLAN.Filter.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.VXLAN.Filter.{i}.Interface";
+      reference
+        "Device.VXLAN.Filter.{i}.Interface";
+    }
+    leaf all-interfaces {
+      type boolean;
+      description
+        "Device.VXLAN.Filter.{i}.AllInterfaces";
+      reference
+        "Device.VXLAN.Filter.{i}.AllInterfaces";
+    }
+    leaf vlanid-check {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.VXLAN.Filter.{i}.VLANIDCheck";
+      reference
+        "Device.VXLAN.Filter.{i}.VLANIDCheck";
+    }
+    leaf vlanid-exclude {
+      type boolean;
+      description
+        "Device.VXLAN.Filter.{i}.VLANIDExclude";
+      reference
+        "Device.VXLAN.Filter.{i}.VLANIDExclude";
+    }
+    leaf dscp-mark-policy {
+      type int32 {
+        range "-2..63";
+      }
+      description
+        "Device.VXLAN.Filter.{i}.DSCPMarkPolicy";
+      reference
+        "Device.VXLAN.Filter.{i}.DSCPMarkPolicy";
+    }
+  }
+
+  grouping vxlan-tunnel-g {
+    description
+      "Grouping object for Device.VXLAN.Tunnel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.VXLAN.Tunnel.{i}.Enable";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Status";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.VXLAN.Tunnel.{i}.Alias";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Alias";
+    }
+    leaf remote-endpoints {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.VXLAN.Tunnel.{i}.RemoteEndpoints";
+      reference
+        "Device.VXLAN.Tunnel.{i}.RemoteEndpoints";
+    }
+    leaf keep-alive-policy {
+      type enumeration {
+        enum ICMP {
+          description
+            "Enum Value - ICMP";
+        }
+        enum None {
+          description
+            "Enum Value - None";
+        }
+      }
+      description
+        "Device.VXLAN.Tunnel.{i}.KeepAlivePolicy";
+      reference
+        "Device.VXLAN.Tunnel.{i}.KeepAlivePolicy";
+    }
+    leaf keep-alive-timeout {
+      type uint32;
+      description
+        "Device.VXLAN.Tunnel.{i}.KeepAliveTimeout";
+      reference
+        "Device.VXLAN.Tunnel.{i}.KeepAliveTimeout";
+    }
+    leaf keep-alive-threshold {
+      type uint32;
+      description
+        "Device.VXLAN.Tunnel.{i}.KeepAliveThreshold";
+      reference
+        "Device.VXLAN.Tunnel.{i}.KeepAliveThreshold";
+    }
+    leaf delivery-header-protocol {
+      type enumeration {
+        enum IPv4 {
+          description
+            "Enum Value - IPv4";
+        }
+        enum IPv6 {
+          description
+            "Enum Value - IPv6";
+        }
+      }
+      description
+        "Device.VXLAN.Tunnel.{i}.DeliveryHeaderProtocol";
+      reference
+        "Device.VXLAN.Tunnel.{i}.DeliveryHeaderProtocol";
+    }
+    leaf default-dscp-mark {
+      type uint32;
+      description
+        "Device.VXLAN.Tunnel.{i}.DefaultDSCPMark";
+      reference
+        "Device.VXLAN.Tunnel.{i}.DefaultDSCPMark";
+    }
+    leaf connected-remote-endpoint {
+      type string;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.ConnectedRemoteEndpoint";
+      reference
+        "Device.VXLAN.Tunnel.{i}.ConnectedRemoteEndpoint";
+    }
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.InterfaceNumberOfEntries";
+      reference
+        "Device.VXLAN.Tunnel.{i}.InterfaceNumberOfEntries";
+    }
+    leaf source-port {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.VXLAN.Tunnel.{i}.SourcePort";
+      reference
+        "Device.VXLAN.Tunnel.{i}.SourcePort";
+    }
+    leaf remote-port {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.VXLAN.Tunnel.{i}.RemotePort";
+      reference
+        "Device.VXLAN.Tunnel.{i}.RemotePort";
+    }
+  }
+
+  grouping vxlan-tunnel-interface-g {
+    description
+      "Grouping object for Device.VXLAN.Tunnel.{i}.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Enable";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Status";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Alias";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Name";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.LastChange";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.LowerLayers";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.LowerLayers";
+    }
+    leaf vni {
+      type int32 {
+        range "-1 | 0..16777215";
+      }
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.VNI";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.VNI";
+    }
+  }
+
+  grouping vxlan-tunnel-interface-stats-g {
+    description
+      "Grouping object for Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf discard-checksum-received {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.DiscardChecksumReceived";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.DiscardChecksumReceived";
+    }
+    leaf discard-sequence-number-received {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.DiscardSequenceNumberReceived";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.DiscardSequenceNumberReceived";
+    }
+  }
+
+  grouping vxlan-tunnel-stats-g {
+    description
+      "Grouping object for Device.VXLAN.Tunnel.{i}.Stats.";
+    leaf keep-alive-sent {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Stats.KeepAliveSent";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Stats.KeepAliveSent";
+    }
+    leaf keep-alive-received {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Stats.KeepAliveReceived";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Stats.KeepAliveReceived";
+    }
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Stats.BytesSent";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Stats.BytesReceived";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Stats.PacketsSent";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Stats.PacketsReceived";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Stats.ErrorsSent";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Stats.ErrorsReceived";
+    }
+  }
+
+  grouping device-wi-fi-g {
+    description
+      "Grouping object for Device.WiFi.";
+    leaf radio-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.RadioNumberOfEntries";
+      reference
+        "Device.WiFi.RadioNumberOfEntries";
+    }
+    leaf ssid-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSIDNumberOfEntries";
+      reference
+        "Device.WiFi.SSIDNumberOfEntries";
+    }
+    leaf access-point-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPointNumberOfEntries";
+      reference
+        "Device.WiFi.AccessPointNumberOfEntries";
+    }
+    leaf end-point-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.EndPointNumberOfEntries";
+      reference
+        "Device.WiFi.EndPointNumberOfEntries";
+    }
+    leaf reset-counter {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.ResetCounter";
+      reference
+        "Device.WiFi.ResetCounter";
+    }
+  }
+
+  grouping wi-fi-access-point-g {
+    description
+      "Grouping object for Device.WiFi.AccessPoint.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.WiFi.AccessPoint.{i}.Enable";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.Status";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.Alias";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Alias";
+    }
+    leaf ssid-reference {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.SSIDReference";
+      reference
+        "Device.WiFi.AccessPoint.{i}.SSIDReference";
+    }
+    leaf ssid-advertisement-enabled {
+      type boolean;
+      description
+        "Device.WiFi.AccessPoint.{i}.SSIDAdvertisementEnabled";
+      reference
+        "Device.WiFi.AccessPoint.{i}.SSIDAdvertisementEnabled";
+    }
+    leaf retry-limit {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.RetryLimit";
+      reference
+        "Device.WiFi.AccessPoint.{i}.RetryLimit";
+    }
+    leaf wmm-capability {
+      type boolean;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.WMMCapability";
+      reference
+        "Device.WiFi.AccessPoint.{i}.WMMCapability";
+    }
+    leaf uapsd-capability {
+      type boolean;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.UAPSDCapability";
+      reference
+        "Device.WiFi.AccessPoint.{i}.UAPSDCapability";
+    }
+    leaf wmm-enable {
+      type boolean;
+      description
+        "Device.WiFi.AccessPoint.{i}.WMMEnable";
+      reference
+        "Device.WiFi.AccessPoint.{i}.WMMEnable";
+    }
+    leaf uapsd-enable {
+      type boolean;
+      description
+        "Device.WiFi.AccessPoint.{i}.UAPSDEnable";
+      reference
+        "Device.WiFi.AccessPoint.{i}.UAPSDEnable";
+    }
+    leaf associated-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDeviceNumberOfEntries";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDeviceNumberOfEntries";
+    }
+    leaf max-associated-devices {
+      type uint32;
+      description
+        "Device.WiFi.AccessPoint.{i}.MaxAssociatedDevices";
+      reference
+        "Device.WiFi.AccessPoint.{i}.MaxAssociatedDevices";
+    }
+    leaf isolation-enable {
+      type boolean;
+      description
+        "Device.WiFi.AccessPoint.{i}.IsolationEnable";
+      reference
+        "Device.WiFi.AccessPoint.{i}.IsolationEnable";
+    }
+    leaf mac-address-control-enabled {
+      type boolean;
+      description
+        "Device.WiFi.AccessPoint.{i}.MACAddressControlEnabled";
+      reference
+        "Device.WiFi.AccessPoint.{i}.MACAddressControlEnabled";
+    }
+    leaf allowed-mac-address {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.AllowedMACAddress";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AllowedMACAddress";
+    }
+    leaf max-allowed-associations {
+      type uint32;
+      description
+        "Device.WiFi.AccessPoint.{i}.MaxAllowedAssociations";
+      reference
+        "Device.WiFi.AccessPoint.{i}.MaxAllowedAssociations";
+    }
+  }
+
+  grouping access-point-ac-g {
+    description
+      "Grouping object for Device.WiFi.AccessPoint.{i}.AC.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf access-category {
+      type string;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.AccessCategory";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.AccessCategory";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Alias";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Alias";
+    }
+    leaf aifsn {
+      type uint32 {
+        range "2..15";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.AIFSN";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.AIFSN";
+    }
+    leaf ecw-min {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.ECWMin";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.ECWMin";
+    }
+    leaf ecw-max {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.ECWMax";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.ECWMax";
+    }
+    leaf tx-op-max {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.TxOpMax";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.TxOpMax";
+    }
+    leaf ack-policy {
+      type boolean;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.AckPolicy";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.AckPolicy";
+    }
+    leaf out-q-len-histogram-intervals {
+      type string;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.OutQLenHistogramIntervals";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.OutQLenHistogramIntervals";
+    }
+    leaf out-q-len-histogram-sample-interval {
+      type uint32;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.OutQLenHistogramSampleInterval";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.OutQLenHistogramSampleInterval";
+    }
+  }
+
+  grouping ac-stats-g {
+    description
+      "Grouping object for Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.BytesSent";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.BytesReceived";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.PacketsSent";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.PacketsReceived";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.ErrorsSent";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.ErrorsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf retrans-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.RetransCount";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.RetransCount";
+    }
+    leaf out-q-len-histogram {
+      type string;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.OutQLenHistogram";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.OutQLenHistogram";
+    }
+  }
+
+  grouping access-point-accounting-g {
+    description
+      "Grouping object for Device.WiFi.AccessPoint.{i}.Accounting.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.WiFi.AccessPoint.{i}.Accounting.Enable";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Accounting.Enable";
+    }
+    leaf server-ip-addr {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.Accounting.ServerIPAddr";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Accounting.ServerIPAddr";
+    }
+    leaf secondary-server-ip-addr {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.Accounting.SecondaryServerIPAddr";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Accounting.SecondaryServerIPAddr";
+    }
+    leaf server-port {
+      type uint32;
+      description
+        "Device.WiFi.AccessPoint.{i}.Accounting.ServerPort";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Accounting.ServerPort";
+    }
+    leaf secondary-server-port {
+      type uint32;
+      description
+        "Device.WiFi.AccessPoint.{i}.Accounting.SecondaryServerPort";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Accounting.SecondaryServerPort";
+    }
+    leaf interim-interval {
+      type uint32 {
+        range "0..60";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.Accounting.InterimInterval";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Accounting.InterimInterval";
+    }
+  }
+
+  grouping access-point-associated-device-g {
+    description
+      "Grouping object for Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.MACAddress";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.MACAddress";
+    }
+    leaf operating-standard {
+      type string;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.OperatingStandard";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.OperatingStandard";
+    }
+    leaf authentication-state {
+      type boolean;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.AuthenticationState";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.AuthenticationState";
+    }
+    leaf last-data-downlink-rate {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.LastDataDownlinkRate";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.LastDataDownlinkRate";
+    }
+    leaf last-data-uplink-rate {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.LastDataUplinkRate";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.LastDataUplinkRate";
+    }
+    leaf association-time {
+      type string;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.AssociationTime";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.AssociationTime";
+    }
+    leaf signal-strength {
+      type int32 {
+        range "-200..0";
+      }
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.SignalStrength";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.SignalStrength";
+    }
+    leaf noise {
+      type int32 {
+        range "-200..0";
+      }
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Noise";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Noise";
+    }
+    leaf retransmissions {
+      type uint32 {
+        range "0..100";
+      }
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Retransmissions";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Retransmissions";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Active";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Active";
+    }
+  }
+
+  grouping associated-device-stats-g {
+    description
+      "Grouping object for Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.BytesSent";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.BytesReceived";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.PacketsSent";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.PacketsReceived";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.ErrorsSent";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.ErrorsSent";
+    }
+    leaf retrans-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.RetransCount";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.RetransCount";
+    }
+    leaf failed-retrans-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.FailedRetransCount";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.FailedRetransCount";
+    }
+    leaf retry-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.RetryCount";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.RetryCount";
+    }
+    leaf multiple-retry-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.MultipleRetryCount";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.MultipleRetryCount";
+    }
+  }
+
+  grouping access-point-security-g {
+    description
+      "Grouping object for Device.WiFi.AccessPoint.{i}.Security.";
+    leaf modes-supported {
+      type string;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.Security.ModesSupported";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Security.ModesSupported";
+    }
+    leaf mode-enabled {
+      type string;
+      description
+        "Device.WiFi.AccessPoint.{i}.Security.ModeEnabled";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Security.ModeEnabled";
+    }
+    leaf rekeying-interval {
+      type uint32;
+      description
+        "Device.WiFi.AccessPoint.{i}.Security.RekeyingInterval";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Security.RekeyingInterval";
+    }
+    leaf radius-server-ip-addr {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.Security.RadiusServerIPAddr";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Security.RadiusServerIPAddr";
+    }
+    leaf secondary-radius-server-ip-addr {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.Security.SecondaryRadiusServerIPAddr";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Security.SecondaryRadiusServerIPAddr";
+    }
+    leaf radius-server-port {
+      type uint32;
+      description
+        "Device.WiFi.AccessPoint.{i}.Security.RadiusServerPort";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Security.RadiusServerPort";
+    }
+    leaf secondary-radius-server-port {
+      type uint32;
+      description
+        "Device.WiFi.AccessPoint.{i}.Security.SecondaryRadiusServerPort";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Security.SecondaryRadiusServerPort";
+    }
+    leaf mfp-config {
+      type enumeration {
+        enum Disabled {
+          description
+            "Enum Value - Disabled";
+        }
+        enum Optional {
+          description
+            "Enum Value - Optional";
+        }
+        enum Required {
+          description
+            "Enum Value - Required";
+        }
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.Security.MFPConfig";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Security.MFPConfig";
+    }
+  }
+
+  grouping access-point-wps-g {
+    description
+      "Grouping object for Device.WiFi.AccessPoint.{i}.WPS.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.WiFi.AccessPoint.{i}.WPS.Enable";
+      reference
+        "Device.WiFi.AccessPoint.{i}.WPS.Enable";
+    }
+    leaf config-methods-supported {
+      type string;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.WPS.ConfigMethodsSupported";
+      reference
+        "Device.WiFi.AccessPoint.{i}.WPS.ConfigMethodsSupported";
+    }
+    leaf config-methods-enabled {
+      type string;
+      description
+        "Device.WiFi.AccessPoint.{i}.WPS.ConfigMethodsEnabled";
+      reference
+        "Device.WiFi.AccessPoint.{i}.WPS.ConfigMethodsEnabled";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.WPS.Status";
+      reference
+        "Device.WiFi.AccessPoint.{i}.WPS.Status";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.WPS.Version";
+      reference
+        "Device.WiFi.AccessPoint.{i}.WPS.Version";
+    }
+  }
+
+  grouping wi-fi-end-point-g {
+    description
+      "Grouping object for Device.WiFi.EndPoint.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.WiFi.EndPoint.{i}.Enable";
+      reference
+        "Device.WiFi.EndPoint.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.Status";
+      reference
+        "Device.WiFi.EndPoint.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.Alias";
+      reference
+        "Device.WiFi.EndPoint.{i}.Alias";
+    }
+    leaf profile-reference {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.ProfileReference";
+      reference
+        "Device.WiFi.EndPoint.{i}.ProfileReference";
+    }
+    leaf ssid-reference {
+      type string;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.SSIDReference";
+      reference
+        "Device.WiFi.EndPoint.{i}.SSIDReference";
+    }
+    leaf profile-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.ProfileNumberOfEntries";
+      reference
+        "Device.WiFi.EndPoint.{i}.ProfileNumberOfEntries";
+    }
+  }
+
+  grouping end-point-ac-g {
+    description
+      "Grouping object for Device.WiFi.EndPoint.{i}.AC.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf access-category {
+      type string;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.AccessCategory";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.AccessCategory";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Alias";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Alias";
+    }
+    leaf aifsn {
+      type uint32 {
+        range "2..15";
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.AIFSN";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.AIFSN";
+    }
+    leaf ecw-min {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.ECWMin";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.ECWMin";
+    }
+    leaf ecw-max {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.ECWMax";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.ECWMax";
+    }
+    leaf tx-op-max {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.TxOpMax";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.TxOpMax";
+    }
+    leaf ack-policy {
+      type boolean;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.AckPolicy";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.AckPolicy";
+    }
+    leaf out-q-len-histogram-intervals {
+      type string;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.OutQLenHistogramIntervals";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.OutQLenHistogramIntervals";
+    }
+    leaf out-q-len-histogram-sample-interval {
+      type uint32;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.OutQLenHistogramSampleInterval";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.OutQLenHistogramSampleInterval";
+    }
+  }
+
+  grouping end-point-ac-stats-g {
+    description
+      "Grouping object for Device.WiFi.EndPoint.{i}.AC.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.BytesSent";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.BytesReceived";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.PacketsSent";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.PacketsReceived";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.ErrorsSent";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.ErrorsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf retrans-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.RetransCount";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.RetransCount";
+    }
+    leaf out-q-len-histogram {
+      type string;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.OutQLenHistogram";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.OutQLenHistogram";
+    }
+  }
+
+  grouping end-point-profile-g {
+    description
+      "Grouping object for Device.WiFi.EndPoint.{i}.Profile.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Enable";
+      reference
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Status";
+      reference
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Alias";
+      reference
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Alias";
+    }
+    leaf ssid {
+      type string {
+        length "min..32";
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.SSID";
+      reference
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.SSID";
+    }
+    leaf location {
+      type string;
+      description
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Location";
+      reference
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Location";
+    }
+    leaf priority {
+      type uint32 {
+        range "min..255";
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Priority";
+      reference
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Priority";
+    }
+  }
+
+  grouping profile-security-g {
+    description
+      "Grouping object for Device.WiFi.EndPoint.{i}.Profile.{i}.Security.";
+    leaf mode-enabled {
+      type string;
+      description
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Security.ModeEnabled";
+      reference
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Security.ModeEnabled";
+    }
+    leaf mfp-config {
+      type enumeration {
+        enum Disabled {
+          description
+            "Enum Value - Disabled";
+        }
+        enum Optional {
+          description
+            "Enum Value - Optional";
+        }
+        enum Required {
+          description
+            "Enum Value - Required";
+        }
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Security.MFPConfig";
+      reference
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Security.MFPConfig";
+    }
+  }
+
+  grouping end-point-security-g {
+    description
+      "Grouping object for Device.WiFi.EndPoint.{i}.Security.";
+    leaf modes-supported {
+      type string;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.Security.ModesSupported";
+      reference
+        "Device.WiFi.EndPoint.{i}.Security.ModesSupported";
+    }
+  }
+
+  grouping end-point-stats-g {
+    description
+      "Grouping object for Device.WiFi.EndPoint.{i}.Stats.";
+    leaf last-data-downlink-rate {
+      type uint32 {
+        range "1000..600000";
+      }
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.Stats.LastDataDownlinkRate";
+      reference
+        "Device.WiFi.EndPoint.{i}.Stats.LastDataDownlinkRate";
+    }
+    leaf last-data-uplink-rate {
+      type uint32 {
+        range "1000..600000";
+      }
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.Stats.LastDataUplinkRate";
+      reference
+        "Device.WiFi.EndPoint.{i}.Stats.LastDataUplinkRate";
+    }
+    leaf signal-strength {
+      type int32 {
+        range "-200..0";
+      }
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.Stats.SignalStrength";
+      reference
+        "Device.WiFi.EndPoint.{i}.Stats.SignalStrength";
+    }
+    leaf retransmissions {
+      type uint32 {
+        range "0..100";
+      }
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.Stats.Retransmissions";
+      reference
+        "Device.WiFi.EndPoint.{i}.Stats.Retransmissions";
+    }
+  }
+
+  grouping end-point-wps-g {
+    description
+      "Grouping object for Device.WiFi.EndPoint.{i}.WPS.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.WiFi.EndPoint.{i}.WPS.Enable";
+      reference
+        "Device.WiFi.EndPoint.{i}.WPS.Enable";
+    }
+    leaf config-methods-supported {
+      type string;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.WPS.ConfigMethodsSupported";
+      reference
+        "Device.WiFi.EndPoint.{i}.WPS.ConfigMethodsSupported";
+    }
+    leaf config-methods-enabled {
+      type string;
+      description
+        "Device.WiFi.EndPoint.{i}.WPS.ConfigMethodsEnabled";
+      reference
+        "Device.WiFi.EndPoint.{i}.WPS.ConfigMethodsEnabled";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.WPS.Status";
+      reference
+        "Device.WiFi.EndPoint.{i}.WPS.Status";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.WPS.Version";
+      reference
+        "Device.WiFi.EndPoint.{i}.WPS.Version";
+    }
+  }
+
+  grouping wi-fi-neighboring-wi-fi-diagnostic-g {
+    description
+      "Grouping object for Device.WiFi.NeighboringWiFiDiagnostic.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Canceled {
+          description
+            "Enum Value - Canceled";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error {
+          description
+            "Enum Value - Error";
+        }
+        enum Completed {
+          description
+            "Enum Value - Completed";
+        }
+      }
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState";
+    }
+    leaf result-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.ResultNumberOfEntries";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.ResultNumberOfEntries";
+    }
+  }
+
+  grouping neighboring-wi-fi-diagnostic-result-g {
+    description
+      "Grouping object for Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf radio {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.Radio";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.Radio";
+    }
+    leaf ssid {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.SSID";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.SSID";
+    }
+    leaf bssid {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.BSSID";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.BSSID";
+    }
+    leaf mode {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.Mode";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.Mode";
+    }
+    leaf channel {
+      type uint32 {
+        range "1..255";
+      }
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.Channel";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.Channel";
+    }
+    leaf signal-strength {
+      type int32 {
+        range "-200..0";
+      }
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.SignalStrength";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.SignalStrength";
+    }
+    leaf security-mode-enabled {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.SecurityModeEnabled";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.SecurityModeEnabled";
+    }
+    leaf encryption-mode {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.EncryptionMode";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.EncryptionMode";
+    }
+    leaf operating-frequency-band {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.OperatingFrequencyBand";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.OperatingFrequencyBand";
+    }
+    leaf supported-standards {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.SupportedStandards";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.SupportedStandards";
+    }
+    leaf operating-standards {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.OperatingStandards";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.OperatingStandards";
+    }
+    leaf operating-channel-bandwidth {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.OperatingChannelBandwidth";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.OperatingChannelBandwidth";
+    }
+    leaf beacon-period {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.BeaconPeriod";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.BeaconPeriod";
+    }
+    leaf noise {
+      type int32 {
+        range "-200..0";
+      }
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.Noise";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.Noise";
+    }
+    leaf basic-data-transfer-rates {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.BasicDataTransferRates";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.BasicDataTransferRates";
+    }
+    leaf supported-data-transfer-rates {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.SupportedDataTransferRates";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.SupportedDataTransferRates";
+    }
+    leaf dtim-period {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.DTIMPeriod";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.DTIMPeriod";
+    }
+  }
+
+  grouping wi-fi-radio-g {
+    description
+      "Grouping object for Device.WiFi.Radio.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.WiFi.Radio.{i}.Enable";
+      reference
+        "Device.WiFi.Radio.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Status";
+      reference
+        "Device.WiFi.Radio.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.WiFi.Radio.{i}.Alias";
+      reference
+        "Device.WiFi.Radio.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Name";
+      reference
+        "Device.WiFi.Radio.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.LastChange";
+      reference
+        "Device.WiFi.Radio.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.WiFi.Radio.{i}.LowerLayers";
+      reference
+        "Device.WiFi.Radio.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Upstream";
+      reference
+        "Device.WiFi.Radio.{i}.Upstream";
+    }
+    leaf max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.MaxBitRate";
+      reference
+        "Device.WiFi.Radio.{i}.MaxBitRate";
+    }
+    leaf supported-frequency-bands {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.SupportedFrequencyBands";
+      reference
+        "Device.WiFi.Radio.{i}.SupportedFrequencyBands";
+    }
+    leaf operating-frequency-band {
+      type string;
+      description
+        "Device.WiFi.Radio.{i}.OperatingFrequencyBand";
+      reference
+        "Device.WiFi.Radio.{i}.OperatingFrequencyBand";
+    }
+    leaf supported-standards {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.SupportedStandards";
+      reference
+        "Device.WiFi.Radio.{i}.SupportedStandards";
+    }
+    leaf operating-standards {
+      type string;
+      description
+        "Device.WiFi.Radio.{i}.OperatingStandards";
+      reference
+        "Device.WiFi.Radio.{i}.OperatingStandards";
+    }
+    leaf possible-channels {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.PossibleChannels";
+      reference
+        "Device.WiFi.Radio.{i}.PossibleChannels";
+    }
+    leaf channels-in-use {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.ChannelsInUse";
+      reference
+        "Device.WiFi.Radio.{i}.ChannelsInUse";
+    }
+    leaf channel {
+      type uint32 {
+        range "1..255";
+      }
+      description
+        "Device.WiFi.Radio.{i}.Channel";
+      reference
+        "Device.WiFi.Radio.{i}.Channel";
+    }
+    leaf auto-channel-supported {
+      type boolean;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.AutoChannelSupported";
+      reference
+        "Device.WiFi.Radio.{i}.AutoChannelSupported";
+    }
+    leaf auto-channel-enable {
+      type boolean;
+      description
+        "Device.WiFi.Radio.{i}.AutoChannelEnable";
+      reference
+        "Device.WiFi.Radio.{i}.AutoChannelEnable";
+    }
+    leaf auto-channel-refresh-period {
+      type uint32;
+      description
+        "Device.WiFi.Radio.{i}.AutoChannelRefreshPeriod";
+      reference
+        "Device.WiFi.Radio.{i}.AutoChannelRefreshPeriod";
+    }
+    leaf channel-last-change {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.ChannelLastChange";
+      reference
+        "Device.WiFi.Radio.{i}.ChannelLastChange";
+    }
+    leaf channel-last-selection-reason {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.ChannelLastSelectionReason";
+      reference
+        "Device.WiFi.Radio.{i}.ChannelLastSelectionReason";
+    }
+    leaf max-supported-ssi-ds {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.MaxSupportedSSIDs";
+      reference
+        "Device.WiFi.Radio.{i}.MaxSupportedSSIDs";
+    }
+    leaf max-supported-associations {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.MaxSupportedAssociations";
+      reference
+        "Device.WiFi.Radio.{i}.MaxSupportedAssociations";
+    }
+    leaf firmware-version {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.FirmwareVersion";
+      reference
+        "Device.WiFi.Radio.{i}.FirmwareVersion";
+    }
+    leaf supported-operating-channel-bandwidths {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.SupportedOperatingChannelBandwidths";
+      reference
+        "Device.WiFi.Radio.{i}.SupportedOperatingChannelBandwidths";
+    }
+    leaf operating-channel-bandwidth {
+      type string;
+      description
+        "Device.WiFi.Radio.{i}.OperatingChannelBandwidth";
+      reference
+        "Device.WiFi.Radio.{i}.OperatingChannelBandwidth";
+    }
+    leaf current-operating-channel-bandwidth {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.CurrentOperatingChannelBandwidth";
+      reference
+        "Device.WiFi.Radio.{i}.CurrentOperatingChannelBandwidth";
+    }
+    leaf extension-channel {
+      type enumeration {
+        enum AboveControlChannel {
+          description
+            "Enum Value - AboveControlChannel";
+        }
+        enum BelowControlChannel {
+          description
+            "Enum Value - BelowControlChannel";
+        }
+        enum Auto {
+          description
+            "Enum Value - Auto";
+        }
+      }
+      description
+        "Device.WiFi.Radio.{i}.ExtensionChannel";
+      reference
+        "Device.WiFi.Radio.{i}.ExtensionChannel";
+    }
+    leaf guard-interval {
+      type enumeration {
+        enum 400nsec {
+          description
+            "Enum Value - 400nsec";
+        }
+        enum 800nsec {
+          description
+            "Enum Value - 800nsec";
+        }
+        enum Auto {
+          description
+            "Enum Value - Auto";
+        }
+      }
+      description
+        "Device.WiFi.Radio.{i}.GuardInterval";
+      reference
+        "Device.WiFi.Radio.{i}.GuardInterval";
+    }
+    leaf mcs {
+      type int32 {
+        range "-1..15 | 16..31";
+      }
+      description
+        "Device.WiFi.Radio.{i}.MCS";
+      reference
+        "Device.WiFi.Radio.{i}.MCS";
+    }
+    leaf transmit-power-supported {
+      type int32 {
+        range "-1..100";
+      }
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.TransmitPowerSupported";
+      reference
+        "Device.WiFi.Radio.{i}.TransmitPowerSupported";
+    }
+    leaf transmit-power {
+      type int32 {
+        range "-1..100";
+      }
+      description
+        "Device.WiFi.Radio.{i}.TransmitPower";
+      reference
+        "Device.WiFi.Radio.{i}.TransmitPower";
+    }
+    leaf ieee80211h-supported {
+      type boolean;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.IEEE80211hSupported";
+      reference
+        "Device.WiFi.Radio.{i}.IEEE80211hSupported";
+    }
+    leaf ieee80211h-enabled {
+      type boolean;
+      description
+        "Device.WiFi.Radio.{i}.IEEE80211hEnabled";
+      reference
+        "Device.WiFi.Radio.{i}.IEEE80211hEnabled";
+    }
+    leaf regulatory-domain {
+      type string {
+        length "3";
+      }
+      description
+        "Device.WiFi.Radio.{i}.RegulatoryDomain";
+      reference
+        "Device.WiFi.Radio.{i}.RegulatoryDomain";
+    }
+    leaf retry-limit {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "Device.WiFi.Radio.{i}.RetryLimit";
+      reference
+        "Device.WiFi.Radio.{i}.RetryLimit";
+    }
+    leaf cca-request {
+      type string {
+        length "11";
+      }
+      description
+        "Device.WiFi.Radio.{i}.CCARequest";
+      reference
+        "Device.WiFi.Radio.{i}.CCARequest";
+    }
+    leaf cca-report {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.CCAReport";
+      reference
+        "Device.WiFi.Radio.{i}.CCAReport";
+    }
+    leaf rpi-histogram-request {
+      type string {
+        length "11";
+      }
+      description
+        "Device.WiFi.Radio.{i}.RPIHistogramRequest";
+      reference
+        "Device.WiFi.Radio.{i}.RPIHistogramRequest";
+    }
+    leaf rpi-histogram-report {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.RPIHistogramReport";
+      reference
+        "Device.WiFi.Radio.{i}.RPIHistogramReport";
+    }
+    leaf fragmentation-threshold {
+      type uint32;
+      description
+        "Device.WiFi.Radio.{i}.FragmentationThreshold";
+      reference
+        "Device.WiFi.Radio.{i}.FragmentationThreshold";
+    }
+    leaf rts-threshold {
+      type uint32;
+      description
+        "Device.WiFi.Radio.{i}.RTSThreshold";
+      reference
+        "Device.WiFi.Radio.{i}.RTSThreshold";
+    }
+    leaf long-retry-limit {
+      type uint32;
+      description
+        "Device.WiFi.Radio.{i}.LongRetryLimit";
+      reference
+        "Device.WiFi.Radio.{i}.LongRetryLimit";
+    }
+    leaf beacon-period {
+      type uint32;
+      description
+        "Device.WiFi.Radio.{i}.BeaconPeriod";
+      reference
+        "Device.WiFi.Radio.{i}.BeaconPeriod";
+    }
+    leaf dtim-period {
+      type uint32;
+      description
+        "Device.WiFi.Radio.{i}.DTIMPeriod";
+      reference
+        "Device.WiFi.Radio.{i}.DTIMPeriod";
+    }
+    leaf packet-aggregation-enable {
+      type boolean;
+      description
+        "Device.WiFi.Radio.{i}.PacketAggregationEnable";
+      reference
+        "Device.WiFi.Radio.{i}.PacketAggregationEnable";
+    }
+    leaf preamble-type {
+      type enumeration {
+        enum short {
+          description
+            "Enum Value - short";
+        }
+        enum auto {
+          description
+            "Enum Value - auto";
+        }
+      }
+      description
+        "Device.WiFi.Radio.{i}.PreambleType";
+      reference
+        "Device.WiFi.Radio.{i}.PreambleType";
+    }
+    leaf basic-data-transmit-rates {
+      type string;
+      description
+        "Device.WiFi.Radio.{i}.BasicDataTransmitRates";
+      reference
+        "Device.WiFi.Radio.{i}.BasicDataTransmitRates";
+    }
+    leaf operational-data-transmit-rates {
+      type string;
+      description
+        "Device.WiFi.Radio.{i}.OperationalDataTransmitRates";
+      reference
+        "Device.WiFi.Radio.{i}.OperationalDataTransmitRates";
+    }
+    leaf supported-data-transmit-rates {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.SupportedDataTransmitRates";
+      reference
+        "Device.WiFi.Radio.{i}.SupportedDataTransmitRates";
+    }
+  }
+
+  grouping radio-stats-g {
+    description
+      "Grouping object for Device.WiFi.Radio.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.BytesSent";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.BytesReceived";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.PacketsSent";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.PacketsReceived";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.ErrorsSent";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.ErrorsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf plcp-error-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.PLCPErrorCount";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.PLCPErrorCount";
+    }
+    leaf fcs-error-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.FCSErrorCount";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.FCSErrorCount";
+    }
+    leaf invalid-mac-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.InvalidMACCount";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.InvalidMACCount";
+    }
+    leaf packets-other-received {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.PacketsOtherReceived";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.PacketsOtherReceived";
+    }
+    leaf noise {
+      type int32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.Noise";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.Noise";
+    }
+    leaf total-channel-change-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.TotalChannelChangeCount";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.TotalChannelChangeCount";
+    }
+    leaf manual-channel-change-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.ManualChannelChangeCount";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.ManualChannelChangeCount";
+    }
+    leaf auto-startup-channel-change-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.AutoStartupChannelChangeCount";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.AutoStartupChannelChangeCount";
+    }
+    leaf auto-user-channel-change-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.AutoUserChannelChangeCount";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.AutoUserChannelChangeCount";
+    }
+    leaf auto-refresh-channel-change-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.AutoRefreshChannelChangeCount";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.AutoRefreshChannelChangeCount";
+    }
+    leaf auto-dynamic-channel-change-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.AutoDynamicChannelChangeCount";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.AutoDynamicChannelChangeCount";
+    }
+    leaf auto-dfs-channel-change-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.AutoDFSChannelChangeCount";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.AutoDFSChannelChangeCount";
+    }
+  }
+
+  grouping wi-fi-ssid-g {
+    description
+      "Grouping object for Device.WiFi.SSID.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.WiFi.SSID.{i}.Enable";
+      reference
+        "Device.WiFi.SSID.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Status";
+      reference
+        "Device.WiFi.SSID.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.WiFi.SSID.{i}.Alias";
+      reference
+        "Device.WiFi.SSID.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Name";
+      reference
+        "Device.WiFi.SSID.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.LastChange";
+      reference
+        "Device.WiFi.SSID.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.WiFi.SSID.{i}.LowerLayers";
+      reference
+        "Device.WiFi.SSID.{i}.LowerLayers";
+    }
+    leaf bssid {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.BSSID";
+      reference
+        "Device.WiFi.SSID.{i}.BSSID";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.MACAddress";
+      reference
+        "Device.WiFi.SSID.{i}.MACAddress";
+    }
+    leaf ssid {
+      type string {
+        length "min..32";
+      }
+      description
+        "Device.WiFi.SSID.{i}.SSID";
+      reference
+        "Device.WiFi.SSID.{i}.SSID";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Upstream";
+      reference
+        "Device.WiFi.SSID.{i}.Upstream";
+    }
+  }
+
+  grouping ssid-stats-g {
+    description
+      "Grouping object for Device.WiFi.SSID.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.BytesSent";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.BytesReceived";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.PacketsSent";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.PacketsReceived";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.ErrorsSent";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.ErrorsSent";
+    }
+    leaf retrans-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.RetransCount";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.RetransCount";
+    }
+    leaf failed-retrans-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.FailedRetransCount";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.FailedRetransCount";
+    }
+    leaf retry-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.RetryCount";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.RetryCount";
+    }
+    leaf multiple-retry-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.MultipleRetryCount";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.MultipleRetryCount";
+    }
+    leaf ack-failure-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.ACKFailureCount";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.ACKFailureCount";
+    }
+    leaf aggregated-packet-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.AggregatedPacketCount";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.AggregatedPacketCount";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping device-xmpp-g {
+    description
+      "Grouping object for Device.XMPP.";
+    leaf connection-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.XMPP.ConnectionNumberOfEntries";
+      reference
+        "Device.XMPP.ConnectionNumberOfEntries";
+    }
+    leaf supported-server-connect-algorithms {
+      type string;
+      config false;
+      description
+        "Device.XMPP.SupportedServerConnectAlgorithms";
+      reference
+        "Device.XMPP.SupportedServerConnectAlgorithms";
+    }
+  }
+
+  grouping xmpp-connection-g {
+    description
+      "Grouping object for Device.XMPP.Connection.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.XMPP.Connection.{i}.Enable";
+      reference
+        "Device.XMPP.Connection.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.XMPP.Connection.{i}.Alias";
+      reference
+        "Device.XMPP.Connection.{i}.Alias";
+    }
+    leaf username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.XMPP.Connection.{i}.Username";
+      reference
+        "Device.XMPP.Connection.{i}.Username";
+    }
+    leaf domain {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.XMPP.Connection.{i}.Domain";
+      reference
+        "Device.XMPP.Connection.{i}.Domain";
+    }
+    leaf resource {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.XMPP.Connection.{i}.Resource";
+      reference
+        "Device.XMPP.Connection.{i}.Resource";
+    }
+    leaf jabber-id {
+      type string;
+      config false;
+      description
+        "Device.XMPP.Connection.{i}.JabberID";
+      reference
+        "Device.XMPP.Connection.{i}.JabberID";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.XMPP.Connection.{i}.Status";
+      reference
+        "Device.XMPP.Connection.{i}.Status";
+    }
+    leaf last-change-date {
+      type string;
+      config false;
+      description
+        "Device.XMPP.Connection.{i}.LastChangeDate";
+      reference
+        "Device.XMPP.Connection.{i}.LastChangeDate";
+    }
+    leaf server-connect-algorithm {
+      type string;
+      description
+        "Device.XMPP.Connection.{i}.ServerConnectAlgorithm";
+      reference
+        "Device.XMPP.Connection.{i}.ServerConnectAlgorithm";
+    }
+    leaf keep-alive-interval {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.XMPP.Connection.{i}.KeepAliveInterval";
+      reference
+        "Device.XMPP.Connection.{i}.KeepAliveInterval";
+    }
+    leaf server-connect-attempts {
+      type uint32;
+      description
+        "Device.XMPP.Connection.{i}.ServerConnectAttempts";
+      reference
+        "Device.XMPP.Connection.{i}.ServerConnectAttempts";
+    }
+    leaf server-retry-initial-interval {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.XMPP.Connection.{i}.ServerRetryInitialInterval";
+      reference
+        "Device.XMPP.Connection.{i}.ServerRetryInitialInterval";
+    }
+    leaf server-retry-interval-multiplier {
+      type uint32 {
+        range "1000..65535";
+      }
+      description
+        "Device.XMPP.Connection.{i}.ServerRetryIntervalMultiplier";
+      reference
+        "Device.XMPP.Connection.{i}.ServerRetryIntervalMultiplier";
+    }
+    leaf server-retry-max-interval {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.XMPP.Connection.{i}.ServerRetryMaxInterval";
+      reference
+        "Device.XMPP.Connection.{i}.ServerRetryMaxInterval";
+    }
+    leaf use-tls {
+      type boolean;
+      description
+        "Device.XMPP.Connection.{i}.UseTLS";
+      reference
+        "Device.XMPP.Connection.{i}.UseTLS";
+    }
+    leaf tls-established {
+      type boolean;
+      config false;
+      description
+        "Device.XMPP.Connection.{i}.TLSEstablished";
+      reference
+        "Device.XMPP.Connection.{i}.TLSEstablished";
+    }
+    leaf server-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.XMPP.Connection.{i}.ServerNumberOfEntries";
+      reference
+        "Device.XMPP.Connection.{i}.ServerNumberOfEntries";
+    }
+  }
+
+  grouping connection-server-g {
+    description
+      "Grouping object for Device.XMPP.Connection.{i}.Server.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.XMPP.Connection.{i}.Server.{i}.Enable";
+      reference
+        "Device.XMPP.Connection.{i}.Server.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.XMPP.Connection.{i}.Server.{i}.Alias";
+      reference
+        "Device.XMPP.Connection.{i}.Server.{i}.Alias";
+    }
+    leaf priority {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.XMPP.Connection.{i}.Server.{i}.Priority";
+      reference
+        "Device.XMPP.Connection.{i}.Server.{i}.Priority";
+    }
+    leaf weight {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.XMPP.Connection.{i}.Server.{i}.Weight";
+      reference
+        "Device.XMPP.Connection.{i}.Server.{i}.Weight";
+    }
+    leaf server-address {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.XMPP.Connection.{i}.Server.{i}.ServerAddress";
+      reference
+        "Device.XMPP.Connection.{i}.Server.{i}.ServerAddress";
+    }
+    leaf port {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.XMPP.Connection.{i}.Server.{i}.Port";
+      reference
+        "Device.XMPP.Connection.{i}.Server.{i}.Port";
+    }
+  }
+
+  grouping connection-stats-g {
+    description
+      "Grouping object for Device.XMPP.Connection.{i}.Stats.";
+    leaf received-messages {
+      type uint32;
+      config false;
+      description
+        "Device.XMPP.Connection.{i}.Stats.ReceivedMessages";
+      reference
+        "Device.XMPP.Connection.{i}.Stats.ReceivedMessages";
+    }
+    leaf transmitted-messages {
+      type uint32;
+      config false;
+      description
+        "Device.XMPP.Connection.{i}.Stats.TransmittedMessages";
+      reference
+        "Device.XMPP.Connection.{i}.Stats.TransmittedMessages";
+    }
+    leaf received-error-messages {
+      type uint32;
+      config false;
+      description
+        "Device.XMPP.Connection.{i}.Stats.ReceivedErrorMessages";
+      reference
+        "Device.XMPP.Connection.{i}.Stats.ReceivedErrorMessages";
+    }
+    leaf transmitted-error-messages {
+      type uint32;
+      config false;
+      description
+        "Device.XMPP.Connection.{i}.Stats.TransmittedErrorMessages";
+      reference
+        "Device.XMPP.Connection.{i}.Stats.TransmittedErrorMessages";
+    }
+  }
+
+  grouping device-zig-bee-g {
+    description
+      "Grouping object for Device.ZigBee.";
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.InterfaceNumberOfEntries";
+      reference
+        "Device.ZigBee.InterfaceNumberOfEntries";
+    }
+    leaf zdo-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDONumberOfEntries";
+      reference
+        "Device.ZigBee.ZDONumberOfEntries";
+    }
+  }
+
+  grouping zig-bee-discovery-g {
+    description
+      "Grouping object for Device.ZigBee.Discovery.";
+    leaf area-network-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Discovery.AreaNetworkNumberOfEntries";
+      reference
+        "Device.ZigBee.Discovery.AreaNetworkNumberOfEntries";
+    }
+  }
+
+  grouping discovery-area-network-g {
+    description
+      "Grouping object for Device.ZigBee.Discovery.AreaNetwork.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.Enable";
+      reference
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.Enable";
+    }
+    leaf last-update {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.LastUpdate";
+      reference
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.LastUpdate";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.Status";
+      reference
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.Alias";
+      reference
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.Alias";
+    }
+    leaf coordinator {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.Coordinator";
+      reference
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.Coordinator";
+    }
+    leaf zdo-reference {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.ZDOReference";
+      reference
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.ZDOReference";
+    }
+    leaf zdo-list {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.ZDOList";
+      reference
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.ZDOList";
+    }
+  }
+
+  grouping zig-bee-interface-g {
+    description
+      "Grouping object for Device.ZigBee.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ZigBee.Interface.{i}.Enable";
+      reference
+        "Device.ZigBee.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Status";
+      reference
+        "Device.ZigBee.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ZigBee.Interface.{i}.Alias";
+      reference
+        "Device.ZigBee.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Name";
+      reference
+        "Device.ZigBee.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.LastChange";
+      reference
+        "Device.ZigBee.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.ZigBee.Interface.{i}.LowerLayers";
+      reference
+        "Device.ZigBee.Interface.{i}.LowerLayers";
+    }
+    leaf ieee-address {
+      type string {
+        length "min..23";
+      }
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.IEEEAddress";
+      reference
+        "Device.ZigBee.Interface.{i}.IEEEAddress";
+    }
+    leaf network-address {
+      type string {
+        length "min..4";
+      }
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.NetworkAddress";
+      reference
+        "Device.ZigBee.Interface.{i}.NetworkAddress";
+    }
+    leaf zdo-reference {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.ZDOReference";
+      reference
+        "Device.ZigBee.Interface.{i}.ZDOReference";
+    }
+    leaf associated-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.AssociatedDeviceNumberOfEntries";
+      reference
+        "Device.ZigBee.Interface.{i}.AssociatedDeviceNumberOfEntries";
+    }
+  }
+
+  grouping zig-bee-interface-associated-device-g {
+    description
+      "Grouping object for Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf ieee-address {
+      type string {
+        length "min..23";
+      }
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.IEEEAddress";
+      reference
+        "Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.IEEEAddress";
+    }
+    leaf network-address {
+      type string {
+        length "min..4";
+      }
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.NetworkAddress";
+      reference
+        "Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.NetworkAddress";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.Active";
+      reference
+        "Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.Active";
+    }
+    leaf zdo-reference {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.ZDOReference";
+      reference
+        "Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.ZDOReference";
+    }
+  }
+
+  grouping zig-bee-interface-stats-g {
+    description
+      "Grouping object for Device.ZigBee.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.UnknownPacketsReceived";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.UnknownPacketsReceived";
+    }
+  }
+
+  grouping zig-bee-zdo-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Alias";
+      reference
+        "Device.ZigBee.ZDO.{i}.Alias";
+    }
+    leaf ieee-address {
+      type string {
+        length "min..23";
+      }
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.IEEEAddress";
+      reference
+        "Device.ZigBee.ZDO.{i}.IEEEAddress";
+    }
+    leaf network-address {
+      type string {
+        length "min..4";
+      }
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NetworkAddress";
+      reference
+        "Device.ZigBee.ZDO.{i}.NetworkAddress";
+    }
+    leaf binding-table-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.BindingTableNumberOfEntries";
+      reference
+        "Device.ZigBee.ZDO.{i}.BindingTableNumberOfEntries";
+    }
+    leaf group-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.GroupNumberOfEntries";
+      reference
+        "Device.ZigBee.ZDO.{i}.GroupNumberOfEntries";
+    }
+    leaf application-endpoint-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpointNumberOfEntries";
+      reference
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpointNumberOfEntries";
+    }
+  }
+
+  grouping zdo-application-endpoint-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.Enable";
+      reference
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.Alias";
+      reference
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.Alias";
+    }
+    leaf endpoint-id {
+      type uint32 {
+        range "min..240";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.EndpointId";
+      reference
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.EndpointId";
+    }
+  }
+
+  grouping application-endpoint-simple-descriptor-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.";
+    leaf profile-id {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.ProfileId";
+      reference
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.ProfileId";
+    }
+    leaf device-id {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.DeviceId";
+      reference
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.DeviceId";
+    }
+    leaf device-version {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.DeviceVersion";
+      reference
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.DeviceVersion";
+    }
+    leaf input-cluster-list {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.InputClusterList";
+      reference
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.InputClusterList";
+    }
+    leaf output-cluster-list {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.OutputClusterList";
+      reference
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.OutputClusterList";
+    }
+  }
+
+  grouping zdo-binding-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.Binding.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.Enable";
+      reference
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.Alias";
+      reference
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.Alias";
+    }
+    leaf source-endpoint {
+      type uint32 {
+        range "min..240";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.SourceEndpoint";
+      reference
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.SourceEndpoint";
+    }
+    leaf source-address {
+      type string {
+        length "min..23";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.SourceAddress";
+      reference
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.SourceAddress";
+    }
+    leaf cluster-id {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.ClusterId";
+      reference
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.ClusterId";
+    }
+    leaf destination-address-mode {
+      type enumeration {
+        enum Group {
+          description
+            "Enum Value - Group";
+        }
+        enum Endpoint {
+          description
+            "Enum Value - Endpoint";
+        }
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.DestinationAddressMode";
+      reference
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.DestinationAddressMode";
+    }
+    leaf destination-endpoint {
+      type uint32 {
+        range "min..240";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.DestinationEndpoint";
+      reference
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.DestinationEndpoint";
+    }
+    leaf ieee-destination-address {
+      type string {
+        length "min..23";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.IEEEDestinationAddress";
+      reference
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.IEEEDestinationAddress";
+    }
+    leaf group-destination-address {
+      type string {
+        length "min..4";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.GroupDestinationAddress";
+      reference
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.GroupDestinationAddress";
+    }
+  }
+
+  grouping zdo-complex-descriptor-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.ComplexDescriptor.";
+    leaf descriptor-available {
+      type boolean;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.DescriptorAvailable";
+      reference
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.DescriptorAvailable";
+    }
+    leaf language {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.Language";
+      reference
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.Language";
+    }
+    leaf character-set {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.CharacterSet";
+      reference
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.CharacterSet";
+    }
+    leaf manufacturer-name {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.ManufacturerName";
+      reference
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.ManufacturerName";
+    }
+    leaf model-name {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.ModelName";
+      reference
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.ModelName";
+    }
+    leaf serial-number {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.SerialNumber";
+      reference
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.SerialNumber";
+    }
+    leaf device-url {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.DeviceURL";
+      reference
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.DeviceURL";
+    }
+    leaf icon {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.Icon";
+      reference
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.Icon";
+    }
+    leaf icon-url {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.IconURL";
+      reference
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.IconURL";
+    }
+  }
+
+  grouping zdo-group-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.Group.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ZigBee.ZDO.{i}.Group.{i}.Enable";
+      reference
+        "Device.ZigBee.ZDO.{i}.Group.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Group.{i}.Alias";
+      reference
+        "Device.ZigBee.ZDO.{i}.Group.{i}.Alias";
+    }
+    leaf group-id {
+      type string {
+        length "min..4";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Group.{i}.GroupId";
+      reference
+        "Device.ZigBee.ZDO.{i}.Group.{i}.GroupId";
+    }
+    leaf endpoint-list {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Group.{i}.EndpointList";
+      reference
+        "Device.ZigBee.ZDO.{i}.Group.{i}.EndpointList";
+    }
+  }
+
+  grouping zdo-network-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.Network.";
+    leaf neighbor-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.Network.NeighborNumberOfEntries";
+      reference
+        "Device.ZigBee.ZDO.{i}.Network.NeighborNumberOfEntries";
+    }
+  }
+
+  grouping network-neighbor-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf neighbor {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.Neighbor";
+      reference
+        "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.Neighbor";
+    }
+    leaf lqi {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.LQI";
+      reference
+        "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.LQI";
+    }
+    leaf relationship {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.Relationship";
+      reference
+        "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.Relationship";
+    }
+    leaf permit-join {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.PermitJoin";
+      reference
+        "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.PermitJoin";
+    }
+    leaf depth {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.Depth";
+      reference
+        "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.Depth";
+    }
+  }
+
+  grouping zdo-node-descriptor-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.NodeDescriptor.";
+    leaf logical-type {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.LogicalType";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.LogicalType";
+    }
+    leaf complex-descriptor-supported {
+      type boolean;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.ComplexDescriptorSupported";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.ComplexDescriptorSupported";
+    }
+    leaf user-descriptor-supported {
+      type boolean;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.UserDescriptorSupported";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.UserDescriptorSupported";
+    }
+    leaf frequency-band {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.FrequencyBand";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.FrequencyBand";
+    }
+    leaf mac-capability {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.MACCapability";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.MACCapability";
+    }
+    leaf manufacture-code {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.ManufactureCode";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.ManufactureCode";
+    }
+    leaf maximum-buffer-size {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.MaximumBufferSize";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.MaximumBufferSize";
+    }
+    leaf maximum-incoming-transfer-size {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.MaximumIncomingTransferSize";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.MaximumIncomingTransferSize";
+    }
+    leaf maximum-outgoing-transfer-size {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.MaximumOutgoingTransferSize";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.MaximumOutgoingTransferSize";
+    }
+    leaf server-mask {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.ServerMask";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.ServerMask";
+    }
+    leaf descriptor-capability {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.DescriptorCapability";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.DescriptorCapability";
+    }
+  }
+
+  grouping zdo-node-manager-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.NodeManager.";
+    leaf routing-table-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTableNumberOfEntries";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTableNumberOfEntries";
+    }
+  }
+
+  grouping node-manager-routing-table-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf destination-address {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.DestinationAddress";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.DestinationAddress";
+    }
+    leaf next-hop-address {
+      type string {
+        length "min..4";
+      }
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.NextHopAddress";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.NextHopAddress";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.Status";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.Status";
+    }
+    leaf memory-constrained {
+      type boolean;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.MemoryConstrained";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.MemoryConstrained";
+    }
+    leaf many-to-one {
+      type boolean;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.ManyToOne";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.ManyToOne";
+    }
+    leaf route-record-required {
+      type boolean;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.RouteRecordRequired";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.RouteRecordRequired";
+    }
+  }
+
+  grouping zdo-power-descriptor-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.PowerDescriptor.";
+    leaf current-power-mode {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.PowerDescriptor.CurrentPowerMode";
+      reference
+        "Device.ZigBee.ZDO.{i}.PowerDescriptor.CurrentPowerMode";
+    }
+    leaf available-power-source {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.PowerDescriptor.AvailablePowerSource";
+      reference
+        "Device.ZigBee.ZDO.{i}.PowerDescriptor.AvailablePowerSource";
+    }
+    leaf current-power-source {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.PowerDescriptor.CurrentPowerSource";
+      reference
+        "Device.ZigBee.ZDO.{i}.PowerDescriptor.CurrentPowerSource";
+    }
+    leaf current-power-source-level {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.PowerDescriptor.CurrentPowerSourceLevel";
+      reference
+        "Device.ZigBee.ZDO.{i}.PowerDescriptor.CurrentPowerSourceLevel";
+    }
+  }
+
+  grouping zdo-security-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.Security.";
+    leaf trust-center-address {
+      type string {
+        length "min..23";
+      }
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.Security.TrustCenterAddress";
+      reference
+        "Device.ZigBee.ZDO.{i}.Security.TrustCenterAddress";
+    }
+    leaf security-level {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.Security.SecurityLevel";
+      reference
+        "Device.ZigBee.ZDO.{i}.Security.SecurityLevel";
+    }
+    leaf time-out-period {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.Security.TimeOutPeriod";
+      reference
+        "Device.ZigBee.ZDO.{i}.Security.TimeOutPeriod";
+    }
+  }
+
+  grouping zdo-user-descriptor-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.UserDescriptor.";
+    leaf descriptor-available {
+      type boolean;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.UserDescriptor.DescriptorAvailable";
+      reference
+        "Device.ZigBee.ZDO.{i}.UserDescriptor.DescriptorAvailable";
+    }
+    leaf description {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.UserDescriptor.Description";
+      reference
+        "Device.ZigBee.ZDO.{i}.UserDescriptor.Description";
+    }
+  }
+
+  grouping atm-diagnostics-g {
+    description
+      "Grouping object";
+  }
+
+  grouping device-dlna-g {
+    description
+      "Grouping object";
+  }
+
+  grouping dns-diagnostics-g {
+    description
+      "Grouping object";
+  }
+
+  grouping bonded-channel-ethernet-g {
+    description
+      "Grouping object";
+  }
+
+  grouping bonding-group-ethernet-g {
+    description
+      "Grouping object";
+  }
+
+  grouping dsl-diagnostics-g {
+    description
+      "Grouping object";
+  }
+
+  grouping device-fap-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ghn-diagnostics-g {
+    description
+      "Grouping object";
+  }
+
+  grouping hpna-diagnostics-g {
+    description
+      "Grouping object";
+  }
+
+  grouping device-lan-config-security-g {
+    description
+      "Grouping object";
+  }
+
+  grouping device-lldp-g {
+    description
+      "Grouping object";
+  }
+
+  grouping management-server-download-availability-g {
+    description
+      "Grouping object";
+  }
+
+  grouping interface-pp-po-a-g {
+    description
+      "Grouping object";
+  }
+
+  grouping device-services-g {
+    description
+      "Grouping object";
+  }
+
+  grouping execution-unit-extensions-g {
+    description
+      "Grouping object";
+  }
+
+  grouping upa-diagnostics-g {
+    description
+      "Grouping object";
+  }
+
+  grouping device-u-pn-p-g {
+    description
+      "Grouping object";
+  }
+
+  grouping fap-service-g {
+    description
+      "Grouping object for FAPService.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.Alias";
+      reference
+        "FAPService.{i}.Alias";
+    }
+    leaf device-type {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.DeviceType";
+      reference
+        "FAPService.{i}.DeviceType";
+    }
+    leaf dn-prefix {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.DNPrefix";
+      reference
+        "FAPService.{i}.DNPrefix";
+    }
+  }
+
+  grouping access-mgmt-cdma2000-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.CDMA2000.";
+    leaf access-mode {
+      type uint32 {
+        range "0 | 1 | 3";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.AccessMode";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.AccessMode";
+    }
+    leaf max-total-active-calls-allowed {
+      type uint32 {
+        range "1..1024";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.MaxTotalActiveCallsAllowed";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.MaxTotalActiveCallsAllowed";
+    }
+    leaf access-control-list {
+      type string {
+        length "min..1024";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.AccessControlList";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.AccessControlList";
+    }
+    leaf max-member-detail-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.MaxMemberDetailEntries";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.MaxMemberDetailEntries";
+    }
+    leaf member-detail-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetailNumberOfEntries";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetailNumberOfEntries";
+    }
+  }
+
+  grouping local-ip-access-hrpd-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.";
+    leaf filter-type {
+      type uint32 {
+        range "0..3";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.FilterType";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.FilterType";
+    }
+    leaf filter-in-use {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.FilterInUse";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.FilterInUse";
+    }
+    leaf egress-filter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilterNumberOfEntries";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilterNumberOfEntries";
+    }
+  }
+
+  grouping hrpd-egress-filter-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.Enable";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.Alias";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.Alias";
+    }
+    leaf subnet {
+      type string {
+        length "min..15";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.Subnet";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.Subnet";
+    }
+    leaf subnet-mask {
+      type uint32 {
+        range "0..32";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.SubnetMask";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.SubnetMask";
+    }
+  }
+
+  grouping cdma2000-member-detail-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.Enable";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.Alias";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.Alias";
+    }
+    leaf imsi {
+      type string {
+        length "min..15";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.IMSI";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.IMSI";
+    }
+    leaf hrpd-identifier-type {
+      type int32 {
+        range "0..3";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.HRPDIdentifierType";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.HRPDIdentifierType";
+    }
+    leaf hrpd-identifier-value {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.HRPDIdentifierValue";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.HRPDIdentifierValue";
+    }
+    leaf membership-expires {
+      type string;
+      description
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.MembershipExpires";
+      reference
+        "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.MembershipExpires";
+    }
+  }
+
+  grouping access-mgmt-lte-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.LTE.";
+    leaf access-mode {
+      type enumeration {
+        enum "Open Access" {
+          description
+            "Enum Value - Open Access";
+        }
+        enum "Closed Access" {
+          description
+            "Enum Value - Closed Access";
+        }
+        enum "Hybrid Access" {
+          description
+            "Enum Value - Hybrid Access";
+        }
+      }
+      description
+        "FAPService.{i}.AccessMgmt.LTE.AccessMode";
+      reference
+        "FAPService.{i}.AccessMgmt.LTE.AccessMode";
+    }
+    leaf max-u-es-served {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.LTE.MaxUEsServed";
+      reference
+        "FAPService.{i}.AccessMgmt.LTE.MaxUEsServed";
+    }
+    leaf max-csg-members {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.LTE.MaxCSGMembers";
+      reference
+        "FAPService.{i}.AccessMgmt.LTE.MaxCSGMembers";
+    }
+    leaf max-non-csg-members {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.LTE.MaxNonCSGMembers";
+      reference
+        "FAPService.{i}.AccessMgmt.LTE.MaxNonCSGMembers";
+    }
+    leaf max-resource-non-csg-members {
+      type uint32 {
+        range "0..100";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.LTE.MaxResourceNonCSGMembers";
+      reference
+        "FAPService.{i}.AccessMgmt.LTE.MaxResourceNonCSGMembers";
+    }
+    leaf csgid {
+      type uint32 {
+        range "min..134217727";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.LTE.CSGID";
+      reference
+        "FAPService.{i}.AccessMgmt.LTE.CSGID";
+    }
+    leaf hnb-name {
+      type string {
+        length "min..48";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.LTE.HNBName";
+      reference
+        "FAPService.{i}.AccessMgmt.LTE.HNBName";
+    }
+  }
+
+  grouping lte-local-ip-access-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.LTE.LocalIPAccess.";
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.AccessMgmt.LTE.LocalIPAccess.Enable";
+      reference
+        "FAPService.{i}.AccessMgmt.LTE.LocalIPAccess.Enable";
+    }
+  }
+
+  grouping legacy-local-ip-access-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.";
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Enable";
+      reference
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Enable";
+    }
+    leaf max-rules-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.MaxRulesEntries";
+      reference
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.MaxRulesEntries";
+    }
+    leaf rule-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.RuleNumberOfEntries";
+      reference
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.RuleNumberOfEntries";
+    }
+  }
+
+  grouping local-ip-access-rule-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Enable";
+      reference
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Alias";
+      reference
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Alias";
+    }
+    leaf dest-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.DestIPAddress";
+      reference
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.DestIPAddress";
+    }
+    leaf dest-subnet-mask {
+      type string {
+        length "min..45";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.DestSubnetMask";
+      reference
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.DestSubnetMask";
+    }
+    leaf protocol {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Protocol";
+      reference
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Protocol";
+    }
+    leaf action {
+      type enumeration {
+        enum Tunnel {
+          description
+            "Enum Value - Tunnel";
+        }
+        enum NAPT {
+          description
+            "Enum Value - NAPT";
+        }
+      }
+      description
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Action";
+      reference
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Action";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Interface";
+      reference
+        "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.Interface";
+    }
+  }
+
+  grouping access-mgmt-umts-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.UMTS.";
+    leaf access-mode {
+      type enumeration {
+        enum "Open Access" {
+          description
+            "Enum Value - Open Access";
+        }
+        enum "Closed Access" {
+          description
+            "Enum Value - Closed Access";
+        }
+        enum "Hybrid Access" {
+          description
+            "Enum Value - Hybrid Access";
+        }
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.AccessMode";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.AccessMode";
+    }
+    leaf non-csgue-access-decision {
+      type enumeration {
+        enum Local {
+          description
+            "Enum Value - Local";
+        }
+        enum "Query FAPGW" {
+          description
+            "Enum Value - Query FAPGW";
+        }
+        enum "By Core" {
+          description
+            "Enum Value - By Core";
+        }
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.NonCSGUEAccessDecision";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.NonCSGUEAccessDecision";
+    }
+    leaf csg-membership-determined-locally {
+      type boolean;
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.CSGMembershipDeterminedLocally";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.CSGMembershipDeterminedLocally";
+    }
+    leaf max-u-es-served {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MaxUEsServed";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MaxUEsServed";
+    }
+    leaf max-csg-members {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MaxCSGMembers";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MaxCSGMembers";
+    }
+    leaf max-non-csg-members {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MaxNonCSGMembers";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MaxNonCSGMembers";
+    }
+    leaf max-resource-non-csg-members {
+      type uint32 {
+        range "0..100";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MaxResourceNonCSGMembers";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MaxResourceNonCSGMembers";
+    }
+    leaf hnb-name {
+      type string {
+        length "min..48";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.HNBName";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.HNBName";
+    }
+    leaf csgid {
+      type uint32 {
+        range "min..134217727";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.CSGID";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.CSGID";
+    }
+    leaf access-control-list {
+      type string {
+        length "min..15";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.AccessControlList";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.AccessControlList";
+    }
+    leaf max-member-detail-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MaxMemberDetailEntries";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MaxMemberDetailEntries";
+    }
+    leaf member-detail-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetailNumberOfEntries";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetailNumberOfEntries";
+    }
+  }
+
+  grouping umts-local-ip-access-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.UMTS.LocalIPAccess.";
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.LocalIPAccess.Enable";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.LocalIPAccess.Enable";
+    }
+  }
+
+  grouping umts-member-detail-g {
+    description
+      "Grouping object for FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.Enable";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.Alias";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.Alias";
+    }
+    leaf imsi {
+      type string {
+        length "min..15";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.IMSI";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.IMSI";
+    }
+    leaf msisdn {
+      type string {
+        length "min..15";
+      }
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.MSISDN";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.MSISDN";
+    }
+    leaf membership-expires {
+      type string;
+      description
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.MembershipExpires";
+      reference
+        "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.MembershipExpires";
+    }
+  }
+
+  grouping fap-service-capabilities-g {
+    description
+      "Grouping object for FAPService.{i}.Capabilities.";
+    leaf gps-equipped {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.GPSEquipped";
+      reference
+        "FAPService.{i}.Capabilities.GPSEquipped";
+    }
+    leaf max-tx-power {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.MaxTxPower";
+      reference
+        "FAPService.{i}.Capabilities.MaxTxPower";
+    }
+    leaf supported-systems {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.SupportedSystems";
+      reference
+        "FAPService.{i}.Capabilities.SupportedSystems";
+    }
+    leaf beacon {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.Beacon";
+      reference
+        "FAPService.{i}.Capabilities.Beacon";
+    }
+  }
+
+  grouping capabilities-cdma2000-g {
+    description
+      "Grouping object for FAPService.{i}.Capabilities.CDMA2000.";
+    leaf remote-ip-access-capable {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.RemoteIPAccessCapable";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.RemoteIPAccessCapable";
+    }
+    leaf band-class-supported-fap-beacon {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.BandClassSupportedFAPBeacon";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.BandClassSupportedFAPBeacon";
+    }
+  }
+
+  grouping cdma2000-hrpd-g {
+    description
+      "Grouping object for FAPService.{i}.Capabilities.CDMA2000.HRPD.";
+    leaf a13-session-transfer-capable {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.A13SessionTransferCapable";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.A13SessionTransferCapable";
+    }
+    leaf a16-session-transfer-capable {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.A16SessionTransferCapable";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.A16SessionTransferCapable";
+    }
+    leaf local-ip-access-capable {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.LocalIPAccessCapable";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.LocalIPAccessCapable";
+    }
+    leaf dedicated-hrpd-beacon {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.DedicatedHRPDBeacon";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.DedicatedHRPDBeacon";
+    }
+  }
+
+  grouping hrpd-self-config-g {
+    description
+      "Grouping object for FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.";
+    leaf rfcnfl-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.RFCNFLConfig";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.RFCNFLConfig";
+    }
+    leaf pilot-pn-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.PilotPNConfig";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.PilotPNConfig";
+    }
+    leaf max-fap-tx-power-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.MaxFAPTxPowerConfig";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.MaxFAPTxPowerConfig";
+    }
+    leaf max-fap-beacon-tx-power-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.MaxFAPBeaconTxPowerConfig";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.MaxFAPBeaconTxPowerConfig";
+    }
+  }
+
+  grouping cdma2000-one-x-g {
+    description
+      "Grouping object for FAPService.{i}.Capabilities.CDMA2000.OneX.";
+    leaf band-class-supported-fap {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.BandClassSupportedFAP";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.BandClassSupportedFAP";
+    }
+    leaf active-handin-capable {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.ActiveHandinCapable";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.ActiveHandinCapable";
+    }
+    leaf femto-overhead-messages-capable {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.FemtoOverheadMessagesCapable";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.FemtoOverheadMessagesCapable";
+    }
+  }
+
+  grouping one-x-self-config-g {
+    description
+      "Grouping object for FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.";
+    leaf rfcnfl-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.RFCNFLConfig";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.RFCNFLConfig";
+    }
+    leaf pilot-pn-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.PilotPNConfig";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.PilotPNConfig";
+    }
+    leaf max-fap-tx-power-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.MaxFAPTxPowerConfig";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.MaxFAPTxPowerConfig";
+    }
+    leaf max-fap-beacon-tx-power-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.MaxFAPBeaconTxPowerConfig";
+      reference
+        "FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.MaxFAPBeaconTxPowerConfig";
+    }
+  }
+
+  grouping capabilities-lte-g {
+    description
+      "Grouping object for FAPService.{i}.Capabilities.LTE.";
+    leaf duplex-mode {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.LTE.DuplexMode";
+      reference
+        "FAPService.{i}.Capabilities.LTE.DuplexMode";
+    }
+    leaf bands-supported {
+      type uint32 {
+        range "1..21 | 33..40";
+      }
+      config false;
+      description
+        "FAPService.{i}.Capabilities.LTE.BandsSupported";
+      reference
+        "FAPService.{i}.Capabilities.LTE.BandsSupported";
+    }
+    leaf nnsf-supported {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.LTE.NNSFSupported";
+      reference
+        "FAPService.{i}.Capabilities.LTE.NNSFSupported";
+    }
+    leaf umts-rx-supported {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.LTE.UMTSRxSupported";
+      reference
+        "FAPService.{i}.Capabilities.LTE.UMTSRxSupported";
+    }
+    leaf umts-rx-bands-supported {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.LTE.UMTSRxBandsSupported";
+      reference
+        "FAPService.{i}.Capabilities.LTE.UMTSRxBandsSupported";
+    }
+    leaf gsm-rx-supported {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.LTE.GSMRxSupported";
+      reference
+        "FAPService.{i}.Capabilities.LTE.GSMRxSupported";
+    }
+    leaf gsm-rx-bands-supported {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.LTE.GSMRxBandsSupported";
+      reference
+        "FAPService.{i}.Capabilities.LTE.GSMRxBandsSupported";
+    }
+    leaf cdma2000-rx-supported {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.LTE.CDMA2000RxSupported";
+      reference
+        "FAPService.{i}.Capabilities.LTE.CDMA2000RxSupported";
+    }
+    leaf cdma2000-rx-bands-supported {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.LTE.CDMA2000RxBandsSupported";
+      reference
+        "FAPService.{i}.Capabilities.LTE.CDMA2000RxBandsSupported";
+    }
+  }
+
+  grouping capabilities-umts-g {
+    description
+      "Grouping object for FAPService.{i}.Capabilities.UMTS.";
+    leaf duplex-mode {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.DuplexMode";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.DuplexMode";
+    }
+    leaf gsm-rx-supported {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.GSMRxSupported";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.GSMRxSupported";
+    }
+    leaf hsdpa-supported {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.HSDPASupported";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.HSDPASupported";
+    }
+    leaf max-hsdpa-data-rate-supported {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.MaxHSDPADataRateSupported";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.MaxHSDPADataRateSupported";
+    }
+    leaf hsupa-supported {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.HSUPASupported";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.HSUPASupported";
+    }
+    leaf max-hsupa-data-rate-supported {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.MaxHSUPADataRateSupported";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.MaxHSUPADataRateSupported";
+    }
+    leaf max-hspdsc-hs-supported {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.MaxHSPDSCHsSupported";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.MaxHSPDSCHsSupported";
+    }
+    leaf max-hsscc-hs-supported {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.MaxHSSCCHsSupported";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.MaxHSSCCHsSupported";
+    }
+    leaf fdd-bands-supported {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.FDDBandsSupported";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.FDDBandsSupported";
+    }
+    leaf gsm-rx-bands-supported {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.GSMRxBandsSupported";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.GSMRxBandsSupported";
+    }
+  }
+
+  grouping umts-self-config-g {
+    description
+      "Grouping object for FAPService.{i}.Capabilities.UMTS.SelfConfig.";
+    leaf uarfcn-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.UARFCNConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.UARFCNConfig";
+    }
+    leaf primary-scrambling-code-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.PrimaryScramblingCodeConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.PrimaryScramblingCodeConfig";
+    }
+    leaf max-fap-tx-power-expanded-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.MaxFAPTxPowerExpandedConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.MaxFAPTxPowerExpandedConfig";
+    }
+    leaf pcpich-power-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.PCPICHPowerConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.PCPICHPowerConfig";
+    }
+    leaf max-ul-tx-power-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.MaxULTxPowerConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.MaxULTxPowerConfig";
+    }
+    leaf lacracura-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.LACRACURAConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.LACRACURAConfig";
+    }
+    leaf neighbor-list-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.NeighborListConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.NeighborListConfig";
+    }
+    leaf cell-re-selection-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.CellReSelectionConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.CellReSelectionConfig";
+    }
+    leaf intra-freq-meas-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.IntraFreqMeasConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.IntraFreqMeasConfig";
+    }
+    leaf inter-freq-meas-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.InterFreqMeasConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.InterFreqMeasConfig";
+    }
+    leaf inter-rat-meas-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.InterRATMeasConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.InterRATMeasConfig";
+    }
+    leaf ue-internal-meas-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.UEInternalMeasConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.UEInternalMeasConfig";
+    }
+    leaf noise-rise-limit-config {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.NoiseRiseLimitConfig";
+      reference
+        "FAPService.{i}.Capabilities.UMTS.SelfConfig.NoiseRiseLimitConfig";
+    }
+  }
+
+  grouping cell-config-cdma2000-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.";
+    leaf tunnel-instance {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.TunnelInstance";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.TunnelInstance";
+    }
+  }
+
+  grouping cdma2000-beacon-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.Beacon.";
+    leaf beacon-admin-status {
+      type enumeration {
+        enum Locked {
+          description
+            "Enum Value - Locked";
+        }
+        enum Unlocked {
+          description
+            "Enum Value - Unlocked";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconAdminStatus";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconAdminStatus";
+    }
+    leaf beacon-oper-status {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconOperStatus";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconOperStatus";
+    }
+    leaf hrpd-beacon-enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconEnable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconEnable";
+    }
+    leaf period {
+      type uint32 {
+        range "0..32767";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.Period";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.Period";
+    }
+    leaf max-fap-beacon-tx-power {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxFAPBeaconTxPower";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxFAPBeaconTxPower";
+    }
+    leaf max-fap-beacon-tx-power-in-use {
+      type int32 {
+        range "-400..200";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxFAPBeaconTxPowerInUse";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxFAPBeaconTxPowerInUse";
+    }
+    leaf beacon-pch-pwr-percentage {
+      type int32 {
+        range "1000..1000000";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconPchPwrPercentage";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconPchPwrPercentage";
+    }
+    leaf max-hrpd-beacon-tx-power {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxHRPDBeaconTxPower";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxHRPDBeaconTxPower";
+    }
+    leaf max-hrpd-beacon-tx-power-in-use {
+      type int32 {
+        range "-400..200";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxHRPDBeaconTxPowerInUse";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxHRPDBeaconTxPowerInUse";
+    }
+    leaf beacon-pilot-pwr-percentage {
+      type int32 {
+        range "1000..1000000";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconPilotPwrPercentage";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconPilotPwrPercentage";
+    }
+    leaf beacon-sync-pwr-percentage {
+      type int32 {
+        range "1000..1000000";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconSyncPwrPercentage";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconSyncPwrPercentage";
+    }
+    leaf max-beacon-list-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxBeaconListEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxBeaconListEntries";
+    }
+    leaf beacon-list-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconListNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconListNumberOfEntries";
+    }
+    leaf max-hrpd-beacon-list-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxHRPDBeaconListEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.MaxHRPDBeaconListEntries";
+    }
+    leaf hrpd-beacon-list-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconListNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconListNumberOfEntries";
+    }
+  }
+
+  grouping beacon-beacon-list-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.Alias";
+    }
+    leaf beacon-index {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconIndex";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconIndex";
+    }
+    leaf offset {
+      type uint32 {
+        range "0..32767";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.Offset";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.Offset";
+    }
+    leaf duration {
+      type uint32 {
+        range "0..32767";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.Duration";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.Duration";
+    }
+    leaf transmission-format {
+      type enumeration {
+        enum 0 {
+          description
+            "Enum Value - 0";
+        }
+        enum 1 {
+          description
+            "Enum Value - 1";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.TransmissionFormat";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.TransmissionFormat";
+    }
+    leaf beacon-band-class {
+      type int32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconBandClass";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconBandClass";
+    }
+    leaf beacon-channel-freq {
+      type uint32 {
+        range "0..2016";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconChannelFreq";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconChannelFreq";
+    }
+    leaf beacon-pn-offset {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconPNOffset";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconPNOffset";
+    }
+    leaf tx-power {
+      type int32 {
+        range "-40..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.TxPower";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.TxPower";
+    }
+    leaf beacon-sid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconSID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconSID";
+    }
+    leaf beacon-nid {
+      type uint32 {
+        range "0..32767";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconNID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconNID";
+    }
+    leaf beacon-pzid {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconPZID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.BeaconPZID";
+    }
+  }
+
+  grouping beacon-hrpd-beacon-list-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.Alias";
+    }
+    leaf beacon-index {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.BeaconIndex";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.BeaconIndex";
+    }
+    leaf c-coffset {
+      type uint32 {
+        range "0..2048";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.CCoffset";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.CCoffset";
+    }
+    leaf offset {
+      type int32 {
+        range "-127..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.Offset";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.Offset";
+    }
+    leaf duration {
+      type uint32 {
+        range "0..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.Duration";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.Duration";
+    }
+    leaf num-c-ccycles {
+      type uint32 {
+        range "0..48";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.NumCCcycles";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.NumCCcycles";
+    }
+    leaf beacon-band-class {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.BeaconBandClass";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.BeaconBandClass";
+    }
+    leaf beacon-channel-freq {
+      type uint32 {
+        range "0..2016";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.BeaconChannelFreq";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.BeaconChannelFreq";
+    }
+    leaf beacon-pn-offset {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.BeaconPNOffset";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.BeaconPNOffset";
+    }
+    leaf tx-power {
+      type int32 {
+        range "-40..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.TxPower";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.TxPower";
+    }
+  }
+
+  grouping cell-config-cdma2000-hrpd-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.";
+    leaf pcfpdsn-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSNNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSNNumberOfEntries";
+    }
+    leaf max-batch-pcfpdsn-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.MaxBatchPCFPDSNEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.MaxBatchPCFPDSNEntries";
+    }
+    leaf batch-pcfpdsn-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSNNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSNNumberOfEntries";
+    }
+  }
+
+  grouping hrpd-access-auth-config-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthConfig.";
+    leaf a12-access-authentication-enable {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthConfig.A12AccessAuthenticationEnable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthConfig.A12AccessAuthenticationEnable";
+    }
+  }
+
+  grouping hrpd-access-auth-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.";
+    leaf an-ppp-authentication-attempts-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.AnPppAuthenticationAttemptsByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.AnPppAuthenticationAttemptsByNode";
+    }
+    leaf a12-requests-sent-from-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12RequestsSentFromNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12RequestsSentFromNode";
+    }
+    leaf a12-rejects-received-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12RejectsReceivedByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12RejectsReceivedByNode";
+    }
+    leaf a12-accepts-received-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12AcceptsReceivedByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12AcceptsReceivedByNode";
+    }
+    leaf a12-access-challenges-received-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12AccessChallengesReceivedByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12AccessChallengesReceivedByNode";
+    }
+    leaf a12-retransmits-sent-from-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12RetransmitsSentFromNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12RetransmitsSentFromNode";
+    }
+    leaf a12-timeouts-events-for-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TimeoutsEventsForNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TimeoutsEventsForNode";
+    }
+    leaf a12-malformedresponse-received-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12MalformedresponseReceivedByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12MalformedresponseReceivedByNode";
+    }
+    leaf a12-bad-authenticator-received-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12BadAuthenticatorReceivedByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12BadAuthenticatorReceivedByNode";
+    }
+    leaf a12-unknown-type-received-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12UnknownTypeReceivedByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12UnknownTypeReceivedByNode";
+    }
+    leaf a12-unknown-pkt-received-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12UnknownPktReceivedByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12UnknownPktReceivedByNode";
+    }
+    leaf a12-unknown-server-received-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12UnknownServerReceivedByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12UnknownServerReceivedByNode";
+    }
+    leaf a12-other-failure-occurences-in-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12OtherFailureOccurencesInNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12OtherFailureOccurencesInNode";
+    }
+    leaf a12-by-pass-num-ats-with-unknown-mfr-code-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12ByPassNumAtsWithUnknownMfrCodeByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12ByPassNumAtsWithUnknownMfrCodeByNode";
+    }
+    leaf a12-tx-path-fail-due-to-an-ppp-error-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToAnPppErrorByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToAnPppErrorByNode";
+    }
+    leaf a12-tx-path-fail-due-to-no-server-available-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToNoServerAvailableByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToNoServerAvailableByNode";
+    }
+    leaf a12-tx-path-fail-due-to-internal-error-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToInternalErrorByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToInternalErrorByNode";
+    }
+    leaf a12-tx-path-fail-due-to-no-packet-id-available-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToNoPacketIdAvailableByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToNoPacketIdAvailableByNode";
+    }
+    leaf a12-tx-path-fail-due-to-transmit-error-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToTransmitErrorByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12TxPathFailDueToTransmitErrorByNode";
+    }
+    leaf a12-svr-timeouts-for-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12SvrTimeoutsForNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12SvrTimeoutsForNode";
+    }
+    leaf a12-enh-ta-bypass-lcp-timeout-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12EnhTaBypassLcpTimeoutByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12EnhTaBypassLcpTimeoutByNode";
+    }
+    leaf a12-enh-ta-bypass-chap-timeout-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12EnhTaBypassChapTimeoutByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12EnhTaBypassChapTimeoutByNode";
+    }
+    leaf a12-enh-ta-bypass-chap-invalid-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12EnhTaBypassChapInvalidByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12EnhTaBypassChapInvalidByNode";
+    }
+    leaf a12-enh-ta-bypass-chap-nai-matches-a12-bypass-list-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12EnhTaBypassChapNaiMatchesA12BypassListByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12EnhTaBypassChapNaiMatchesA12BypassListByNode";
+    }
+    leaf a12-session-ta-timeout-by-node {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12SessionTaTimeoutByNode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.A12SessionTaTimeoutByNode";
+    }
+    leaf access-auth-failed-due-to-session-close-total {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.AccessAuthFailedDueToSessionCloseTotal";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.AccessAuthFailedDueToSessionCloseTotal";
+    }
+    leaf access-auth-succeeded {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.AccessAuthSucceeded";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.AccessAuthSucceeded";
+    }
+  }
+
+  grouping hrpd-batch-pcfpdsn-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.Alias";
+    }
+    leaf batch-table-number {
+      type int32 {
+        range "0..127";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableNumber";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableNumber";
+    }
+    leaf batch-table-start-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableStartIPAddress";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableStartIPAddress";
+    }
+    leaf batch-table-end-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableEndIPAddress";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableEndIPAddress";
+    }
+    leaf batch-table-security-parameter-index {
+      type uint32 {
+        range "256..4294967295";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableSecurityParameterIndex";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableSecurityParameterIndex";
+    }
+    leaf batch-table-secret-key {
+      type string {
+        length "0..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableSecretKey";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableSecretKey";
+    }
+    leaf batch-table-ios-version {
+      type enumeration {
+        enum TIA-878-ballot {
+          description
+            "Enum Value - TIA-878-ballot";
+        }
+        enum TIA-878-1 {
+          description
+            "Enum Value - TIA-878-1";
+        }
+        enum TIA-878-a {
+          description
+            "Enum Value - TIA-878-a";
+        }
+        enum TIA-878-legacy {
+          description
+            "Enum Value - TIA-878-legacy";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableIOSVersion";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTableIOSVersion";
+    }
+    leaf batch-table-pdsn-admin-status {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTablePDSNAdminStatus";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.BatchTablePDSNAdminStatus";
+    }
+    leaf pdsn-type {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.PDSNType";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.PDSNType";
+    }
+  }
+
+  grouping hrpd-call-control-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.";
+    leaf num-session-setup-attempts {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumSessionSetupAttempts";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumSessionSetupAttempts";
+    }
+    leaf num-session-setup-successful {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumSessionSetupSuccessful";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumSessionSetupSuccessful";
+    }
+    leaf num-current-sessions-established {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumCurrentSessionsEstablished";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumCurrentSessionsEstablished";
+    }
+    leaf num-page-messages-to-at {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumPageMessagesToAt";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumPageMessagesToAt";
+    }
+    leaf num-pages-succeeded {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumPagesSucceeded";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumPagesSucceeded";
+    }
+    leaf num-connections-opened {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumConnectionsOpened";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumConnectionsOpened";
+    }
+    leaf num-session-setups-failed-to-term-auth {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumSessionSetupsFailedToTermAuth";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumSessionSetupsFailedToTermAuth";
+    }
+    leaf num-forward-rlp-bytes {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumForwardRLPBytes";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumForwardRLPBytes";
+    }
+    leaf num-reverse-rlp-bytes {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumReverseRLPBytes";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumReverseRLPBytes";
+    }
+    leaf average-session-setup-time {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.AverageSessionSetupTime";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.AverageSessionSetupTime";
+    }
+    leaf average-page-setup-time {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.AveragePageSetupTime";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.AveragePageSetupTime";
+    }
+    leaf num-conn-setups-aborted {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumConnSetupsAborted";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumConnSetupsAborted";
+    }
+    leaf num-forward-pre-rlp-dropped-pkts {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumForwardPreRLPDroppedPkts";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.NumForwardPreRLPDroppedPkts";
+    }
+  }
+
+  grouping hrpd-pcf-config-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.";
+    leaf pcfpdsn-health-monitor-interval {
+      type uint32 {
+        range "0..180";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPDSNHealthMonitorInterval";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPDSNHealthMonitorInterval";
+    }
+  }
+
+  grouping pcf-config-pcf-performance-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.";
+    leaf a10-setup-failure-no-reason {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureNoReason";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureNoReason";
+    }
+    leaf a10-setup-failure-admin-prohibit {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureAdminProhibit";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureAdminProhibit";
+    }
+    leaf a10-setup-failure-insuff-resources {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureInsuffResources";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureInsuffResources";
+    }
+    leaf a10-setup-failure-failed-auth {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureFailedAuth";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureFailedAuth";
+    }
+    leaf a10-setup-failure-id-mismatch {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureIdMismatch";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureIdMismatch";
+    }
+    leaf a10-setup-failure-malformed-req {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureMalformedReq";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureMalformedReq";
+    }
+    leaf a10-setup-failure-unknown-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureUnknownPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureUnknownPDSN";
+    }
+    leaf a10-setup-failure-unsupp-vend-id {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureUnsuppVendId";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10SetupFailureUnsuppVendId";
+    }
+    leaf total-a10-closed-by-rnc {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10ClosedByRnc";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10ClosedByRnc";
+    }
+    leaf total-a10-closed-by-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10ClosedByPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10ClosedByPDSN";
+    }
+    leaf total-a10-success-pages {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10SuccessPages";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10SuccessPages";
+    }
+    leaf total-a10-failed-pages {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10FailedPages";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10FailedPages";
+    }
+    leaf total-a10-ingress-bytes {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10IngressBytes";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10IngressBytes";
+    }
+    leaf total-a10-egress-bytes {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10EgressBytes";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10EgressBytes";
+    }
+    leaf a10-reg-update-received {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10RegUpdateReceived";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.A10RegUpdateReceived";
+    }
+    leaf total-a10-dropped-pages {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10DroppedPages";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.TotalA10DroppedPages";
+    }
+  }
+
+  grouping hrpd-pcfpdsn-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.Alias";
+    }
+    leaf pdsn-number {
+      type int32 {
+        range "0..127";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PDSNNumber";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PDSNNumber";
+    }
+    leaf security-parameter-index {
+      type uint32 {
+        range "256..4294967295";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.SecurityParameterIndex";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.SecurityParameterIndex";
+    }
+    leaf security-key {
+      type string {
+        length "0..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.SecurityKey";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.SecurityKey";
+    }
+    leaf ios-version {
+      type enumeration {
+        enum TIA-878-ballot {
+          description
+            "Enum Value - TIA-878-ballot";
+        }
+        enum TIA-878-1 {
+          description
+            "Enum Value - TIA-878-1";
+        }
+        enum TIA-878-a {
+          description
+            "Enum Value - TIA-878-a";
+        }
+        enum TIA-878-legacy {
+          description
+            "Enum Value - TIA-878-legacy";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.IOSVersion";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.IOSVersion";
+    }
+    leaf pds-nadmin-status {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PDSNadminStatus";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PDSNadminStatus";
+    }
+    leaf pdsn-health-status {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PDSNHealthStatus";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PDSNHealthStatus";
+    }
+    leaf pdsnip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PDSNIPAddress";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PDSNIPAddress";
+    }
+  }
+
+  grouping pcfpdsn-a11-reg-update-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.";
+    leaf pdsn-number-reg-update-perf {
+      type int32 {
+        range "0..127";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.PDSNNumberRegUpdatePerf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.PDSNNumberRegUpdatePerf";
+    }
+    leaf pdsnip-address-reg-update-perf {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.PDSNIPAddressRegUpdatePerf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.PDSNIPAddressRegUpdatePerf";
+    }
+    leaf a11-reg-update-received-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateReceivedPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateReceivedPDSN";
+    }
+    leaf a11-reg-update-id-check-fail-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateIDCheckFailPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateIDCheckFailPDSN";
+    }
+    leaf a11-reg-update-auth-check-fail-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateAuthCheckFailPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateAuthCheckFailPDSN";
+    }
+    leaf a11-reg-update-for-unknown-psipdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateForUnknownPSIPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateForUnknownPSIPDSN";
+    }
+    leaf a11-reg-update-unspecified-reason-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUnspecifiedReasonPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUnspecifiedReasonPDSN";
+    }
+    leaf a11-reg-update-ppp-timeout-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePppTimeoutPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePppTimeoutPDSN";
+    }
+    leaf a11-reg-update-registration-timeout-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateRegistrationTimeoutPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateRegistrationTimeoutPDSN";
+    }
+    leaf a11-reg-update-pdsn-error-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePDSNErrorPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePDSNErrorPDSN";
+    }
+    leaf a11-reg-update-inter-pcf-handoff-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateInterPCFHandoffPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateInterPCFHandoffPDSN";
+    }
+    leaf a11-reg-update-inter-pdsn-handoff-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateInterPDSNHandoffPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateInterPDSNHandoffPDSN";
+    }
+    leaf a11-reg-update-pdsnoamp-intervention-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePDSNOAMPInterventionPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePDSNOAMPInterventionPDSN";
+    }
+    leaf a11-reg-update-accounting-error-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateAccountingErrorPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateAccountingErrorPDSN";
+    }
+    leaf a11-reg-update-user-failed-authentication-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUserFailedAuthenticationPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUserFailedAuthenticationPDSN";
+    }
+    leaf a11-reg-update-unknown-cause-code-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUnknownCauseCodePDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUnknownCauseCodePDSN";
+    }
+    leaf a11-reg-update-without-reason-code-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateWithoutReasonCodePDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateWithoutReasonCodePDSN";
+    }
+  }
+
+  grouping pcfpdsn-a11-session-update-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.";
+    leaf pdsn-number-session-update-perf {
+      type int32 {
+        range "0..127";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.PDSNNumberSessionUpdatePerf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.PDSNNumberSessionUpdatePerf";
+    }
+    leaf pdsnip-address-session-update-perf {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.PDSNIPAddressSessionUpdatePerf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.PDSNIPAddressSessionUpdatePerf";
+    }
+    leaf a11-session-update-received-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateReceivedPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateReceivedPDSN";
+    }
+    leaf a11-session-update-accepted-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateAcceptedPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateAcceptedPDSN";
+    }
+    leaf a11-session-update-extended-apipdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateExtendedAPIPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateExtendedAPIPDSN";
+    }
+    leaf a11-session-update-for-unknown-psipdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateForUnknownPSIPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateForUnknownPSIPDSN";
+    }
+    leaf a11-session-update-denied-id-check-fail-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedIDCheckFailPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedIDCheckFailPDSN";
+    }
+    leaf a11-session-update-denied-auth-check-fail-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedAuthCheckFailPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedAuthCheckFailPDSN";
+    }
+    leaf a11-session-update-denied-reason-unspecified-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedReasonUnspecifiedPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedReasonUnspecifiedPDSN";
+    }
+    leaf a11-session-update-denied-poorly-formed-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedPoorlyFormedPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedPoorlyFormedPDSN";
+    }
+    leaf a11-session-update-denied-session-params-not-updated-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedSessionParamsNotUpdatedPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedSessionParamsNotUpdatedPDSN";
+    }
+    leaf a11-session-update-denied-qo-s-profile-id-not-supported-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedQoSProfileIdNotSupportedPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedQoSProfileIdNotSupportedPDSN";
+    }
+    leaf a11-session-update-denied-insufficient-resources-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedInsufficientResourcesPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedInsufficientResourcesPDSN";
+    }
+    leaf a11-session-update-denied-handoff-in-progress-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedHandoffInProgressPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.A11SessionUpdateDeniedHandoffInProgressPDSN";
+    }
+  }
+
+  grouping pcfpdsn-aux-a10-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.";
+    leaf pdsn-number-aux-a10-perf {
+      type int32 {
+        range "0..127";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.PDSNNumberAuxA10Perf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.PDSNNumberAuxA10Perf";
+    }
+    leaf pdsnip-address-aux-a10-perf {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.PDSNIPAddressAuxA10Perf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.PDSNIPAddressAuxA10Perf";
+    }
+    leaf aux-a10-connections-created-in-first-reg-req-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10ConnectionsCreatedInFirstRegReqPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10ConnectionsCreatedInFirstRegReqPDSN";
+    }
+    leaf aux-a10-connections-created-in-subsequent-reg-req-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10ConnectionsCreatedInSubsequentRegReqPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10ConnectionsCreatedInSubsequentRegReqPDSN";
+    }
+    leaf aux-a10-fwd-ip-flows-created-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10FwdIpFlowsCreatedPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10FwdIpFlowsCreatedPDSN";
+    }
+    leaf aux-a10-rev-ip-flows-created-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10RevIpFlowsCreatedPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10RevIpFlowsCreatedPDSN";
+    }
+    leaf aux-a10-ip-flow-accounting-reg-requests-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10IpFlowAccountingRegRequestsPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.AuxA10IpFlowAccountingRegRequestsPDSN";
+    }
+  }
+
+  grouping pcfpdsn-pcfpdsn-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.";
+    leaf a10-setup-attempts-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10SetupAttemptsPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10SetupAttemptsPDSN";
+    }
+    leaf a10-setup-successes-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10SetupSuccessesPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10SetupSuccessesPDSN";
+    }
+    leaf a10-setup-blocks-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10SetupBlocksPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10SetupBlocksPDSN";
+    }
+    leaf a11-reg-req-denied-id-mismatch-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedIdMismatchPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedIdMismatchPDSN";
+    }
+    leaf a11-reg-req-denied-unknown-pdsnpdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnknownPDSNPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnknownPDSNPDSN";
+    }
+    leaf a11-reg-req-denied-no-reason-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedNoReasonPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedNoReasonPDSN";
+    }
+    leaf a11-reg-req-denied-admin-prohibit-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedAdminProhibitPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedAdminProhibitPDSN";
+    }
+    leaf a11-reg-req-denied-insuff-resources-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedInsuffResourcesPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedInsuffResourcesPDSN";
+    }
+    leaf a11-reg-req-denied-failed-auth-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedFailedAuthPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedFailedAuthPDSN";
+    }
+    leaf a11-reg-req-denied-malformed-req-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedMalformedReqPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedMalformedReqPDSN";
+    }
+    leaf a11-reg-req-denied-unsupp-vend-id-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnsuppVendIdPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnsuppVendIdPDSN";
+    }
+    leaf a11-reg-req-denied-reverse-tunnel-unavailable-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedReverseTunnelUnavailablePDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedReverseTunnelUnavailablePDSN";
+    }
+    leaf a11-reg-req-denied-reverse-tunnel-tbit-not-set-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedReverseTunnelTbitNotSetPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedReverseTunnelTbitNotSetPDSN";
+    }
+    leaf a11-reg-req-denied-unknown-error-code-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnknownErrorCodePDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnknownErrorCodePDSN";
+    }
+    leaf a10-reg-req-for-registration-retransmissions-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForRegistrationRetransmissionsPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForRegistrationRetransmissionsPDSN";
+    }
+    leaf a10-reg-req-for-re-registration-retransmissions-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForReRegistrationRetransmissionsPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForReRegistrationRetransmissionsPDSN";
+    }
+    leaf a10-reg-req-for-release-retransmissions-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForReleaseRetransmissionsPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForReleaseRetransmissionsPDSN";
+    }
+    leaf pdsn-number-pdsn-perf {
+      type int32 {
+        range "0..127";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.PDSNNumberPDSNPerf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.PDSNNumberPDSNPerf";
+    }
+    leaf pds-nip-address-pdsn-perf {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.PDSNipAddressPDSNPerf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.PDSNipAddressPDSNPerf";
+    }
+  }
+
+  grouping hrpd-qo-s-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.";
+    leaf num-qo-s-subscriber-profile-updates-rcvd {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSSubscriberProfileUpdatesRcvd";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSSubscriberProfileUpdatesRcvd";
+    }
+    leaf num-pdsnip-flow-updates-msg-rcvd {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumPDSNIPFlowUpdatesMsgRcvd";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumPDSNIPFlowUpdatesMsgRcvd";
+    }
+    leaf num-pdsnip-flow-updates-msg-failed {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumPDSNIPFlowUpdatesMsgFailed";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumPDSNIPFlowUpdatesMsgFailed";
+    }
+    leaf num-qo-s-setup-requests-received {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSSetupRequestsReceived";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSSetupRequestsReceived";
+    }
+    leaf num-qo-s-setup-requests-accepted {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSSetupRequestsAccepted";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSSetupRequestsAccepted";
+    }
+    leaf num-qo-s-setup-requests-rejected {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSSetupRequestsRejected";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSSetupRequestsRejected";
+    }
+    leaf num-reservation-on-requests-received {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOnRequestsReceived";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOnRequestsReceived";
+    }
+    leaf num-reservation-on-requests-accepted {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOnRequestsAccepted";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOnRequestsAccepted";
+    }
+    leaf num-reservation-on-requests-rejected {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOnRequestsRejected";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOnRequestsRejected";
+    }
+    leaf num-reservation-on-requests-failed {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOnRequestsFailed";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOnRequestsFailed";
+    }
+    leaf num-fwd-reservation-on-messages-sent {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumFwdReservationOnMessagesSent";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumFwdReservationOnMessagesSent";
+    }
+    leaf num-rev-reservation-on-messages-sent {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumRevReservationOnMessagesSent";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumRevReservationOnMessagesSent";
+    }
+    leaf num-reservation-off-requests-received {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOffRequestsReceived";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOffRequestsReceived";
+    }
+    leaf num-reservation-off-requests-accepted {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOffRequestsAccepted";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOffRequestsAccepted";
+    }
+    leaf num-reservation-off-requests-rejected {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOffRequestsRejected";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumReservationOffRequestsRejected";
+    }
+    leaf num-fwd-reservation-off-messages-sent {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumFwdReservationOffMessagesSent";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumFwdReservationOffMessagesSent";
+    }
+    leaf num-rev-reservation-off-messages-sent {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumRevReservationOffMessagesSent";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumRevReservationOffMessagesSent";
+    }
+    leaf num-qo-s-release-requests-received {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSReleaseRequestsReceived";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumQoSReleaseRequestsReceived";
+    }
+    leaf num-connection-close-initiated-no-ran-rsr {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumConnectionCloseInitiatedNoRANRsr";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.NumConnectionCloseInitiatedNoRANRsr";
+    }
+  }
+
+  grouping ran-rf-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.";
+    leaf hrpd-car-band-class {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.HRPDCarBandClass";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.HRPDCarBandClass";
+    }
+    leaf rfcnfl {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RFCNFL";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RFCNFL";
+    }
+    leaf rfcnfl-in-use {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RFCNFLInUse";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RFCNFLInUse";
+    }
+    leaf pilot-pn {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.PilotPN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.PilotPN";
+    }
+    leaf pilot-pn-in-use {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.PilotPNInUse";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.PilotPNInUse";
+    }
+    leaf max-fap-tx-power {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.MaxFAPTxPower";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.MaxFAPTxPower";
+    }
+    leaf max-fap-tx-power-in-use {
+      type int32 {
+        range "-200..200";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.MaxFAPTxPowerInUse";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.MaxFAPTxPowerInUse";
+    }
+    leaf control-channel-rate {
+      type int32;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ControlChannelRate";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ControlChannelRate";
+    }
+    leaf sync-capsule-offset {
+      type int32 {
+        range "0..3";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.SyncCapsuleOffset";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.SyncCapsuleOffset";
+    }
+    leaf rab-length {
+      type int32 {
+        range "8 | 16 | 32 | 64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RabLength";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RabLength";
+    }
+    leaf rab-offset {
+      type int32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RabOffset";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RabOffset";
+    }
+    leaf sector-id {
+      type string {
+        length "16";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.SectorID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.SectorID";
+    }
+    leaf color-code {
+      type int32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ColorCode";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ColorCode";
+    }
+    leaf subnet-mask-length {
+      type int32 {
+        range "0..104";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.SubnetMaskLength";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.SubnetMaskLength";
+    }
+    leaf hrpd-sec-el-reverse-link-silence-duration {
+      type int32 {
+        range "0..3";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.HRPDSecElReverseLinkSilenceDuration";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.HRPDSecElReverseLinkSilenceDuration";
+    }
+    leaf hrpd-sec-el-reverse-link-silence-period {
+      type int32 {
+        range "0..3";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.HRPDSecElReverseLinkSilencePeriod";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.HRPDSecElReverseLinkSilencePeriod";
+    }
+    leaf open-loop-adjust {
+      type int32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.OpenLoopAdjust";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.OpenLoopAdjust";
+    }
+    leaf probe-initial-adjust {
+      type int32 {
+        range "-15..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ProbeInitialAdjust";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ProbeInitialAdjust";
+    }
+    leaf probe-num-steps {
+      type int32 {
+        range "1..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ProbeNumSteps";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ProbeNumSteps";
+    }
+    leaf probe-power-step {
+      type int32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ProbePowerStep";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ProbePowerStep";
+    }
+    leaf a-persistence {
+      type string {
+        length "min..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.APersistence";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.APersistence";
+    }
+    leaf rssirab-threshold {
+      type int32 {
+        range "-1600..1600";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RSSIRABThreshold";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RSSIRABThreshold";
+    }
+    leaf load-rab-threshold {
+      type uint32 {
+        range "0..480";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.LoadRABThreshold";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.LoadRABThreshold";
+    }
+    leaf connection-rate-limit {
+      type uint32 {
+        range "0..3";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ConnectionRateLimit";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.ConnectionRateLimit";
+    }
+    leaf rfe-rl-balance-ratio {
+      type uint32 {
+        range "1..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RfeRLBalanceRatio";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.RfeRLBalanceRatio";
+    }
+  }
+
+  grouping hrpd-rnc-sig-apps-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.";
+    leaf c-num-page-requests {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumPageRequests";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumPageRequests";
+    }
+    leaf s-num-page-requests {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumPageRequests";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumPageRequests";
+    }
+    leaf s-num-connection-setup-attempts {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumConnectionSetupAttempts";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumConnectionSetupAttempts";
+    }
+    leaf c-num-connection-setup-attempts {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumConnectionSetupAttempts";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumConnectionSetupAttempts";
+    }
+    leaf s-num-connection-setup-success {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumConnectionSetupSuccess";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumConnectionSetupSuccess";
+    }
+    leaf c-num-connection-setup-success {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumConnectionSetupSuccess";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumConnectionSetupSuccess";
+    }
+    leaf s-num-normal-connection-closes {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNormalConnectionCloses";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNormalConnectionCloses";
+    }
+    leaf c-num-normal-connection-closes {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNormalConnectionCloses";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNormalConnectionCloses";
+    }
+    leaf s-num-total-connection-closes {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumTotalConnectionCloses";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumTotalConnectionCloses";
+    }
+    leaf c-num-total-connection-closes {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumTotalConnectionCloses";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumTotalConnectionCloses";
+    }
+    leaf s-num-rf-related-drops {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumRFRelatedDrops";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumRFRelatedDrops";
+    }
+    leaf c-num-rf-related-drops {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumRFRelatedDrops";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumRFRelatedDrops";
+    }
+    leaf s-num-page-responses {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumPageResponses";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumPageResponses";
+    }
+    leaf c-num-page-responses {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumPageResponses";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumPageResponses";
+    }
+    leaf s-num-rf-related-drops-rtc-lost {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumRFRelatedDropsRTCLost";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumRFRelatedDropsRTCLost";
+    }
+    leaf c-num-rf-related-drops-rtc-lost {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumRFRelatedDropsRTCLost";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumRFRelatedDropsRTCLost";
+    }
+    leaf s-num-rf-related-drops-no-ftc {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumRFRelatedDropsNoFTC";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumRFRelatedDropsNoFTC";
+    }
+    leaf c-num-rf-related-drops-no-ftc {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumRFRelatedDropsNoFTC";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumRFRelatedDropsNoFTC";
+    }
+    leaf s-num-network-error-drops {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNetworkErrorDrops";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNetworkErrorDrops";
+    }
+    leaf c-num-network-error-drops {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNetworkErrorDrops";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNetworkErrorDrops";
+    }
+    leaf s-num-network-error-drops-rnc-internal {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNetworkErrorDropsRNCInternal";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNetworkErrorDropsRNCInternal";
+    }
+    leaf c-num-network-error-drops-rnc-internal {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNetworkErrorDropsRNCInternal";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNetworkErrorDropsRNCInternal";
+    }
+    leaf s-num-network-error-drops-rnc-external {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNetworkErrorDropsRNCExternal";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNetworkErrorDropsRNCExternal";
+    }
+    leaf c-num-network-error-drops-rnc-external {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNetworkErrorDropsRNCExternal";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNetworkErrorDropsRNCExternal";
+    }
+    leaf s-num-network-error-drops-a10-setup-fail {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNetworkErrorDropsA10SetupFail";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumNetworkErrorDropsA10SetupFail";
+    }
+    leaf c-num-network-error-drops-a10-setup-fail {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNetworkErrorDropsA10SetupFail";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumNetworkErrorDropsA10SetupFail";
+    }
+    leaf s-num-misc-drops-sector-down {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumMiscDropsSectorDown";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumMiscDropsSectorDown";
+    }
+    leaf c-num-misc-drops-sector-down {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumMiscDropsSectorDown";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumMiscDropsSectorDown";
+    }
+    leaf s-num-misc-drops-internal-error {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumMiscDropsInternalError";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumMiscDropsInternalError";
+    }
+    leaf c-num-misc-drops-internal-error {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumMiscDropsInternalError";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumMiscDropsInternalError";
+    }
+    leaf c-num-misc-drops-state-mismatch {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumMiscDropsStateMismatch";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumMiscDropsStateMismatch";
+    }
+    leaf s-num-misc-drops-state-mismatch {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumMiscDropsStateMismatch";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumMiscDropsStateMismatch";
+    }
+    leaf s-num-misc-drops-due-to-rlp {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumMiscDropsDueToRLP";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.SNumMiscDropsDueToRLP";
+    }
+    leaf c-num-misc-drops-due-to-rlp {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumMiscDropsDueToRLP";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.CNumMiscDropsDueToRLP";
+    }
+  }
+
+  grouping hrpd-redirect-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.HRPD.Redirect.";
+    leaf redirect-channel-number {
+      type uint32 {
+        range "0..2047";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.Redirect.RedirectChannelNumber";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.Redirect.RedirectChannelNumber";
+    }
+    leaf redirect-band-class {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.Redirect.RedirectBandClass";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.HRPD.Redirect.RedirectBandClass";
+    }
+  }
+
+  grouping cell-config-cdma2000-one-x-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.";
+    leaf pcfpdsn-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSNNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSNNumberOfEntries";
+    }
+    leaf max-batch-pcfpdsn-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.MaxBatchPCFPDSNEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.MaxBatchPCFPDSNEntries";
+    }
+    leaf batch-pcfpdsn-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSNNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSNNumberOfEntries";
+    }
+  }
+
+  grouping one-x-batch-pcfpdsn-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.Alias";
+    }
+    leaf batch-table-number {
+      type int32 {
+        range "0..127";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableNumber";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableNumber";
+    }
+    leaf batch-table-start-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableStartIPAddress";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableStartIPAddress";
+    }
+    leaf batch-table-end-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableEndIPAddress";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableEndIPAddress";
+    }
+    leaf batch-table-security-parameter-index {
+      type uint32 {
+        range "256..4294967295";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableSecurityParameterIndex";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableSecurityParameterIndex";
+    }
+    leaf batch-table-secret-key {
+      type string {
+        length "0..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableSecretKey";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableSecretKey";
+    }
+    leaf batch-table-ios-version {
+      type enumeration {
+        enum TIA-878-ballot {
+          description
+            "Enum Value - TIA-878-ballot";
+        }
+        enum TIA-878-1 {
+          description
+            "Enum Value - TIA-878-1";
+        }
+        enum TIA-878-a {
+          description
+            "Enum Value - TIA-878-a";
+        }
+        enum TIA-878-legacy {
+          description
+            "Enum Value - TIA-878-legacy";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableIOSVersion";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTableIOSVersion";
+    }
+    leaf batch-table-pdsn-admin-status {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTablePDSNAdminStatus";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.BatchTablePDSNAdminStatus";
+    }
+    leaf pdsn-type {
+      type enumeration {
+        enum OneX {
+          description
+            "Enum Value - OneX";
+        }
+        enum HRPDRev0 {
+          description
+            "Enum Value - HRPDRev0";
+        }
+        enum HRPDRevA {
+          description
+            "Enum Value - HRPDRevA";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.PDSNType";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.PDSNType";
+    }
+  }
+
+  grouping one-x-pcf-config-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.";
+    leaf pcfpdsn-health-monitor-interval {
+      type uint32 {
+        range "0..180";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPDSNHealthMonitorInterval";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPDSNHealthMonitorInterval";
+    }
+  }
+
+  grouping one-x-pcf-config-pcf-performance-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.";
+    leaf a10-setup-failure-no-reason {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureNoReason";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureNoReason";
+    }
+    leaf a10-setup-failure-admin-prohibit {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureAdminProhibit";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureAdminProhibit";
+    }
+    leaf a10-setup-failure-insuff-resources {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureInsuffResources";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureInsuffResources";
+    }
+    leaf a10-setup-failure-failed-auth {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureFailedAuth";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureFailedAuth";
+    }
+    leaf a10-setup-failure-id-mismatch {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureIdMismatch";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureIdMismatch";
+    }
+    leaf a10-setup-failure-malformed-req {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureMalformedReq";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureMalformedReq";
+    }
+    leaf a10-setup-failure-unknown-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureUnknownPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureUnknownPDSN";
+    }
+    leaf a10-setup-failure-unsupp-vend-id {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureUnsuppVendId";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10SetupFailureUnsuppVendId";
+    }
+    leaf total-a10-closed-by-rnc {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10ClosedByRnc";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10ClosedByRnc";
+    }
+    leaf total-a10-closed-by-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10ClosedByPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10ClosedByPDSN";
+    }
+    leaf total-a10-success-pages {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10SuccessPages";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10SuccessPages";
+    }
+    leaf total-a10-failed-pages {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10FailedPages";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10FailedPages";
+    }
+    leaf total-a10-ingress-bytes {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10IngressBytes";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10IngressBytes";
+    }
+    leaf total-a10-egress-bytes {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10EgressBytes";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10EgressBytes";
+    }
+    leaf a10-reg-update-received {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10RegUpdateReceived";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.A10RegUpdateReceived";
+    }
+    leaf total-a10-dropped-pages {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10DroppedPages";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.TotalA10DroppedPages";
+    }
+  }
+
+  grouping one-x-pcfpdsn-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.Alias";
+    }
+    leaf pdsn-number {
+      type int32 {
+        range "0..127";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PDSNNumber";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PDSNNumber";
+    }
+    leaf security-parameter-index {
+      type uint32 {
+        range "256..4294967295";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.SecurityParameterIndex";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.SecurityParameterIndex";
+    }
+    leaf security-key {
+      type string {
+        length "0..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.SecurityKey";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.SecurityKey";
+    }
+    leaf ios-version {
+      type enumeration {
+        enum TIA-878-ballot {
+          description
+            "Enum Value - TIA-878-ballot";
+        }
+        enum TIA-878-1 {
+          description
+            "Enum Value - TIA-878-1";
+        }
+        enum TIA-878-a {
+          description
+            "Enum Value - TIA-878-a";
+        }
+        enum TIA-878-legacy {
+          description
+            "Enum Value - TIA-878-legacy";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.IOSVersion";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.IOSVersion";
+    }
+    leaf pds-nadmin-status {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PDSNadminStatus";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PDSNadminStatus";
+    }
+    leaf pdsn-health-status {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PDSNHealthStatus";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PDSNHealthStatus";
+    }
+    leaf pdsnip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PDSNIPAddress";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PDSNIPAddress";
+    }
+  }
+
+  grouping one-x-pcfpdsn-a11-reg-update-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.";
+    leaf pdsn-number-reg-update-perf {
+      type int32 {
+        range "0..127";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.PDSNNumberRegUpdatePerf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.PDSNNumberRegUpdatePerf";
+    }
+    leaf pdsnip-address-reg-update-perf {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.PDSNIPAddressRegUpdatePerf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.PDSNIPAddressRegUpdatePerf";
+    }
+    leaf a11-reg-update-received-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateReceivedPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateReceivedPDSN";
+    }
+    leaf a11-reg-update-id-check-fail-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateIDCheckFailPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateIDCheckFailPDSN";
+    }
+    leaf a11-reg-update-auth-check-fail-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateAuthCheckFailPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateAuthCheckFailPDSN";
+    }
+    leaf a11-reg-update-for-unknown-psipdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateForUnknownPSIPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateForUnknownPSIPDSN";
+    }
+    leaf a11-reg-update-unspecified-reason-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUnspecifiedReasonPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUnspecifiedReasonPDSN";
+    }
+    leaf a11-reg-update-ppp-timeout-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePppTimeoutPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePppTimeoutPDSN";
+    }
+    leaf a11-reg-update-registration-timeout-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateRegistrationTimeoutPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateRegistrationTimeoutPDSN";
+    }
+    leaf a11-reg-update-pdsn-error-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePDSNErrorPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePDSNErrorPDSN";
+    }
+    leaf a11-reg-update-inter-pcf-handoff-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateInterPCFHandoffPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateInterPCFHandoffPDSN";
+    }
+    leaf a11-reg-update-inter-pdsn-handoff-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateInterPDSNHandoffPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateInterPDSNHandoffPDSN";
+    }
+    leaf a11-reg-update-pdsnoamp-intervention-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePDSNOAMPInterventionPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdatePDSNOAMPInterventionPDSN";
+    }
+    leaf a11-reg-update-accounting-error-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateAccountingErrorPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateAccountingErrorPDSN";
+    }
+    leaf a11-reg-update-user-failed-authentication-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUserFailedAuthenticationPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUserFailedAuthenticationPDSN";
+    }
+    leaf a11-reg-update-unknown-cause-code-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUnknownCauseCodePDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateUnknownCauseCodePDSN";
+    }
+    leaf a11-reg-update-without-reason-code-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateWithoutReasonCodePDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.A11RegUpdateWithoutReasonCodePDSN";
+    }
+  }
+
+  grouping one-x-pcfpdsn-pcfpdsn-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.";
+    leaf a10-setup-attempts-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10SetupAttemptsPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10SetupAttemptsPDSN";
+    }
+    leaf a10-setup-successes-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10SetupSuccessesPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10SetupSuccessesPDSN";
+    }
+    leaf a10-setup-blocks-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10SetupBlocksPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10SetupBlocksPDSN";
+    }
+    leaf a11-reg-req-denied-id-mismatch-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedIdMismatchPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedIdMismatchPDSN";
+    }
+    leaf a11-reg-req-denied-unknown-pdsnpdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnknownPDSNPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnknownPDSNPDSN";
+    }
+    leaf a11-reg-req-denied-no-reason-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedNoReasonPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedNoReasonPDSN";
+    }
+    leaf a11-reg-req-denied-admin-prohibit-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedAdminProhibitPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedAdminProhibitPDSN";
+    }
+    leaf a11-reg-req-denied-insuff-resources-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedInsuffResourcesPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedInsuffResourcesPDSN";
+    }
+    leaf a11-reg-req-denied-failed-auth-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedFailedAuthPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedFailedAuthPDSN";
+    }
+    leaf a11-reg-req-denied-malformed-req-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedMalformedReqPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedMalformedReqPDSN";
+    }
+    leaf a11-reg-req-denied-unsupp-vend-id-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnsuppVendIdPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnsuppVendIdPDSN";
+    }
+    leaf a11-reg-req-denied-reverse-tunnel-unavailable-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedReverseTunnelUnavailablePDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedReverseTunnelUnavailablePDSN";
+    }
+    leaf a11-reg-req-denied-reverse-tunnel-tbit-not-set-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedReverseTunnelTbitNotSetPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedReverseTunnelTbitNotSetPDSN";
+    }
+    leaf a11-reg-req-denied-unknown-error-code-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnknownErrorCodePDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A11RegReqDeniedUnknownErrorCodePDSN";
+    }
+    leaf a10-reg-req-for-registration-retransmissions-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForRegistrationRetransmissionsPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForRegistrationRetransmissionsPDSN";
+    }
+    leaf a10-reg-req-for-re-registration-retransmissions-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForReRegistrationRetransmissionsPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForReRegistrationRetransmissionsPDSN";
+    }
+    leaf a10-reg-req-for-release-retransmissions-pdsn {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForReleaseRetransmissionsPDSN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.A10RegReqForReleaseRetransmissionsPDSN";
+    }
+    leaf pdsn-number-pdsn-perf {
+      type int32 {
+        range "0..127";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.PDSNNumberPDSNPerf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.PDSNNumberPDSNPerf";
+    }
+    leaf pds-nip-address-pdsn-perf {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.PDSNipAddressPDSNPerf";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.PDSNipAddressPDSNPerf";
+    }
+  }
+
+  grouping one-x-ran-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.";
+    leaf one-x-sector-nid {
+      type int32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.OneXSectorNID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.OneXSectorNID";
+    }
+    leaf one-x-sector-sid {
+      type int32 {
+        range "0..32767";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.OneXSectorSID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.OneXSectorSID";
+    }
+    leaf one-xpzid {
+      type int32;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.OneXPZID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.OneXPZID";
+    }
+    leaf base-id {
+      type int32;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.BaseID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.BaseID";
+    }
+    leaf max-neighbor-list-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.MaxNeighborListEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.MaxNeighborListEntries";
+    }
+    leaf neighbor-list-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborListNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborListNumberOfEntries";
+    }
+  }
+
+  grouping ran-apidm-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.";
+    leaf association-type {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.AssociationType";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.AssociationType";
+    }
+    leaf apidlen {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.APIDLEN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.APIDLEN";
+    }
+    leaf apid {
+      type string {
+        length "0..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.APID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.APID";
+    }
+    leaf apidmask {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.APIDMASK";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.APIDMASK";
+    }
+    leaf iosmscid {
+      type uint32 {
+        range "0..16777215";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.IOSMSCID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.IOSMSCID";
+    }
+    leaf ioscellid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.IOSCELLID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.IOSCELLID";
+    }
+    leaf intrafreqhohysincl {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTRAFREQHOHYSINCL";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTRAFREQHOHYSINCL";
+    }
+    leaf intrafreqhohys {
+      type uint32 {
+        range "0..127";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTRAFREQHOHYS";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTRAFREQHOHYS";
+    }
+    leaf intrafreqhoslopeincl {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTRAFREQHOSLOPEINCL";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTRAFREQHOSLOPEINCL";
+    }
+    leaf intrafreqhoslope {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTRAFREQHOSLOPE";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTRAFREQHOSLOPE";
+    }
+    leaf interfreqhohysincl {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQHOHYSINCL";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQHOHYSINCL";
+    }
+    leaf interfreqhohys {
+      type uint32 {
+        range "0..127";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQHOHYS";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQHOHYS";
+    }
+    leaf interfreqhoslopeincl {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQHOSLOPEINCL";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQHOSLOPEINCL";
+    }
+    leaf interfreqhoslope {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQHOSLOPE";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQHOSLOPE";
+    }
+    leaf interfreqsrchthincl {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQSRCHTHINCL";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQSRCHTHINCL";
+    }
+    leaf interfreqsrchth {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQSRCHTH";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.INTERFREQSRCHTH";
+    }
+  }
+
+  grouping ran-apidtm-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.";
+    leaf apidtextcha-ri-len {
+      type uint32 {
+        range "0..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.APIDTEXTCHARiLEN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.APIDTEXTCHARiLEN";
+    }
+    leaf apidtextmsgencoding {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.APIDTEXTMSGENCODING";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.APIDTEXTMSGENCODING";
+    }
+    leaf apidtextcha-ri {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.APIDTEXTCHARi";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.APIDTEXTCHARi";
+    }
+  }
+
+  grouping ran-appim-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.";
+    leaf lifetime {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.LIFETIME";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.LIFETIME";
+    }
+    leaf numappirec {
+      type uint32 {
+        range "0..511";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.NUMAPPIREC";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.NUMAPPIREC";
+    }
+    leaf appirec-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIRECNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIRECNumberOfEntries";
+    }
+  }
+
+  grouping appim-appirec-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.Alias";
+    }
+    leaf apassntype {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APASSNTYPE";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APASSNTYPE";
+    }
+    leaf apsidsameasprevious {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APSIDSAMEASPREVIOUS";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APSIDSAMEASPREVIOUS";
+    }
+    leaf apnidsameasprevious {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APNIDSAMEASPREVIOUS";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APNIDSAMEASPREVIOUS";
+    }
+    leaf apbandsameasprevious {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APBANDSAMEASPREVIOUS";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APBANDSAMEASPREVIOUS";
+    }
+    leaf apfreqsameasprevious {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APFREQSAMEASPREVIOUS";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APFREQSAMEASPREVIOUS";
+    }
+    leaf appnrecsameasprevious {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APPNRECSAMEASPREVIOUS";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APPNRECSAMEASPREVIOUS";
+    }
+    leaf apsid {
+      type uint32 {
+        range "0..32767";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APSID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APSID";
+    }
+    leaf apnid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APNID";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APNID";
+    }
+    leaf apband {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APBAND";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APBAND";
+    }
+    leaf apfreq {
+      type uint32 {
+        range "0..2047";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APFREQ";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APFREQ";
+    }
+    leaf appnrectype {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APPNRECTYPE";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APPNRECTYPE";
+    }
+    leaf appnreclen {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APPNRECLEN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APPNRECLEN";
+    }
+    leaf appnrec {
+      type string {
+        length "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APPNREC";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.APPNREC";
+    }
+  }
+
+  grouping ran-access-parameters-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.";
+    leaf nom-pwr {
+      type int32 {
+        range "-7..8";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.NomPwr";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.NomPwr";
+    }
+    leaf init-pwr {
+      type int32 {
+        range "-15..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.InitPwr";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.InitPwr";
+    }
+    leaf pwr-step-indb {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.PwrStepIndb";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.PwrStepIndb";
+    }
+    leaf nom-pwr-ext {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.NomPwrExt";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.NomPwrExt";
+    }
+    leaf apm-auth {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.APMAuth";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.APMAuth";
+    }
+    leaf apm-rand-update-prd {
+      type uint32 {
+        range "16..14400";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.APMRandUpdatePrd";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.APMRandUpdatePrd";
+    }
+    leaf initialpwr {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Initialpwr";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Initialpwr";
+    }
+    leaf pwr-step {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.PwrStep";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.PwrStep";
+    }
+    leaf num-step {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.NumStep";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.NumStep";
+    }
+    leaf max-cap-size {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.MaxCapSize";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.MaxCapSize";
+    }
+    leaf preamble-size {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.PreambleSize";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.PreambleSize";
+    }
+    leaf psist09 {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist09";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist09";
+    }
+    leaf psist10 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist10";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist10";
+    }
+    leaf psist11 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist11";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist11";
+    }
+    leaf psist12 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist12";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist12";
+    }
+    leaf psist13 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist13";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist13";
+    }
+    leaf psist14 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist14";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist14";
+    }
+    leaf psist15 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist15";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Psist15";
+    }
+    leaf msg-psist {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.MsgPsist";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.MsgPsist";
+    }
+    leaf reg-psist {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.RegPsist";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.RegPsist";
+    }
+    leaf probe-pn-ran {
+      type uint32 {
+        range "0..9";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.ProbePNRan";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.ProbePNRan";
+    }
+    leaf acc-tmo {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.AccTmo";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.AccTmo";
+    }
+    leaf probe-bkoff {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.ProbeBkoff";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.ProbeBkoff";
+    }
+    leaf bkoff {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Bkoff";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.Bkoff";
+    }
+    leaf max-req-seq {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.MaxReqSeq";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.MaxReqSeq";
+    }
+    leaf max-rsp-seq {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.MaxRspSeq";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.MaxRspSeq";
+    }
+  }
+
+  grouping ran-extended-system-parameters-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.";
+    leaf prev {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.Prev";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.Prev";
+    }
+    leaf p-min-rev {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.PMinRev";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.PMinRev";
+    }
+    leaf delete-for-tmsi {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.DeleteForTMSI";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.DeleteForTMSI";
+    }
+    leaf use-tmsi {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.UseTMSI";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.UseTMSI";
+    }
+    leaf pref-msid-type {
+      type uint32 {
+        range "0..3";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.PrefMSIDType";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.PrefMSIDType";
+    }
+    leaf mcc {
+      type uint32 {
+        range "0..1023";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.MCC";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.MCC";
+    }
+    leaf imsi1112 {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.IMSI1112";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.IMSI1112";
+    }
+    leaf tmsi-zone-len {
+      type uint32 {
+        range "1..8";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.TMSIZoneLen";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.TMSIZoneLen";
+    }
+    leaf tmsi-zone {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.TMSIZone";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.TMSIZone";
+    }
+    leaf bcast-index {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.BcastIndex";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.BcastIndex";
+    }
+    leaf imsit-supported {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.IMSITSupported";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.IMSITSupported";
+    }
+    leaf soft-slope {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.SoftSlope";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.SoftSlope";
+    }
+    leaf add-intercept {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AddIntercept";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AddIntercept";
+    }
+    leaf drop-intercept {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.DropIntercept";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.DropIntercept";
+    }
+    leaf max-num-alt-so {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.MaxNumAltSo";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.MaxNumAltSo";
+    }
+    leaf reselected-included {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.ReselectedIncluded";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.ReselectedIncluded";
+    }
+    leaf ec-thresh {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.EcThresh";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.EcThresh";
+    }
+    leaf ec-io-thresh {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.EcIoThresh";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.EcIoThresh";
+    }
+    leaf pilot-report {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.PilotReport";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.PilotReport";
+    }
+    leaf nghbr-set-entry-info {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.NghbrSetEntryInfo";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.NghbrSetEntryInfo";
+    }
+    leaf access-ho-order {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccessHOOrder";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccessHOOrder";
+    }
+    leaf nghbr-set-access-info {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.NghbrSetAccessInfo";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.NghbrSetAccessInfo";
+    }
+    leaf access-ho {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccessHO";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccessHO";
+    }
+    leaf access-ho-msg-rsp {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccessHOMsgRsp";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccessHOMsgRsp";
+    }
+    leaf access-probe-ho {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccessProbeHO";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccessProbeHO";
+    }
+    leaf acc-ho-list-upd {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccHOListUpd";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccHOListUpd";
+    }
+    leaf acc-probe-ho-other-msg {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccProbeHOOtherMsg";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.AccProbeHOOtherMsg";
+    }
+    leaf max-num-probe-ho {
+      type uint32 {
+        range "0..3";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.MaxNumProbeHO";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.MaxNumProbeHO";
+    }
+    leaf brdcast-gps-assit {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.BrdcastGPSAssit";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.BrdcastGPSAssit";
+    }
+    leaf qpch-supported {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHSupported";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHSupported";
+    }
+    leaf num-qpch {
+      type uint32 {
+        range "1..3";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.NumQPCH";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.NumQPCH";
+    }
+    leaf qpch-rate {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHRate";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHRate";
+    }
+    leaf qpch-pwr-level-page {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHPwrLevelPage";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHPwrLevelPage";
+    }
+    leaf qpc-hcci-supported {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHcciSupported";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHcciSupported";
+    }
+    leaf qpch-pwr-level-config {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHPwrLevelConfig";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.QPCHPwrLevelConfig";
+    }
+    leaf sdb-supported {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.SDBSupported";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.SDBSupported";
+    }
+    leaf r-lgain-traffic-pilot {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.RLgainTrafficPilot";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.RLgainTrafficPilot";
+    }
+    leaf rvs-pwr-ctrl-delay-incl {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.RvsPwrCtrlDelayIncl";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.RvsPwrCtrlDelayIncl";
+    }
+    leaf rvs-pwr-ctrl-delay {
+      type uint32 {
+        range "0..3";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.RvsPwrCtrlDelay";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.RvsPwrCtrlDelay";
+    }
+  }
+
+  grouping ran-forward-pwr-ctr-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.";
+    leaf fpcfch-init-setpt {
+      type int32 {
+        range "-128..127";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCFCHInitSetpt";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCFCHInitSetpt";
+    }
+    leaf fpc-subchan-gain {
+      type int32 {
+        range "-16..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCSubchanGain";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCSubchanGain";
+    }
+    leaf rl-gain-adj {
+      type int32 {
+        range "-8..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.RLGainAdj";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.RLGainAdj";
+    }
+    leaf fpcfchfer {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCFCHFER";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCFCHFER";
+    }
+    leaf fpcfch-min-setpt {
+      type int32 {
+        range "-128..127";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCFCHMinSetpt";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCFCHMinSetpt";
+    }
+    leaf fpcfch-max-setpt {
+      type int32 {
+        range "-128..127";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCFCHMaxSetpt";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.FPCFCHMaxSetpt";
+    }
+  }
+
+  grouping ran-hard-handoff-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.";
+    leaf handout-enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.HandoutEnable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.HandoutEnable";
+    }
+    leaf ho-pilot-power-thresh {
+      type int32 {
+        range "0..5";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.HOPilotPowerThresh";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.HOPilotPowerThresh";
+    }
+    leaf ho-pilot-duration {
+      type uint32 {
+        range "20..50";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.HOPilotDuration";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.HOPilotDuration";
+    }
+  }
+
+  grouping hard-handoff-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.";
+    leaf tx-ho-required {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.TxHORequired";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.TxHORequired";
+    }
+    leaf rx-ho-command {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.RxHOCommand";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.RxHOCommand";
+    }
+    leaf ho-required-rejected {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.HORequiredRejected";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.HORequiredRejected";
+    }
+    leaf ho-required-unanswered {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.HORequiredUnanswered";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.HORequiredUnanswered";
+    }
+    leaf tx-uhdm {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.TxUHDM";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.TxUHDM";
+    }
+    leaf rx-ns-ack {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.RxNSAck";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.RxNSAck";
+    }
+    leaf ho-failure-count {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.HOFailureCount";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.HOFailureCount";
+    }
+    leaf call-drop-count {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.CallDropCount";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.CallDropCount";
+    }
+    leaf tx-ho-commence {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.TxHOCommence";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.TxHOCommence";
+    }
+    leaf rx-ho-session-clear {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.RxHOSessionClear";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.RxHOSessionClear";
+    }
+    leaf return-on-failure-count {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.ReturnOnFailureCount";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.ReturnOnFailureCount";
+    }
+    leaf one-pilot-report-count {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.OnePilotReportCount";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.OnePilotReportCount";
+    }
+    leaf two-pilot-report-count {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.TwoPilotReportCount";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.TwoPilotReportCount";
+    }
+    leaf three-pilot-report-count {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.ThreePilotReportCount";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.ThreePilotReportCount";
+    }
+  }
+
+  grouping ran-neighbor-list-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.Alias";
+    }
+    leaf pilot-inc {
+      type int32 {
+        range "1..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.PilotInc";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.PilotInc";
+    }
+    leaf one-x-neighbor-index {
+      type int32 {
+        range "0..19";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborIndex";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborIndex";
+    }
+    leaf neighbor-config {
+      type enumeration {
+        enum SameConfig {
+          description
+            "Enum Value - SameConfig";
+        }
+        enum SamePaging {
+          description
+            "Enum Value - SamePaging";
+        }
+        enum DiffPaging {
+          description
+            "Enum Value - DiffPaging";
+        }
+        enum Unknown {
+          description
+            "Enum Value - Unknown";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborConfig";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborConfig";
+    }
+    leaf neighbor-pn {
+      type int32 {
+        range "0..511";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborPN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborPN";
+    }
+    leaf search-priority {
+      type enumeration {
+        enum Low {
+          description
+            "Enum Value - Low";
+        }
+        enum Medium {
+          description
+            "Enum Value - Medium";
+        }
+        enum High {
+          description
+            "Enum Value - High";
+        }
+        enum VeryHigh {
+          description
+            "Enum Value - VeryHigh";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.SearchPriority";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.SearchPriority";
+    }
+    leaf neighbor-band {
+      type enumeration {
+        enum 0 {
+          description
+            "Enum Value - 0";
+        }
+        enum 1 {
+          description
+            "Enum Value - 1";
+        }
+        enum 2 {
+          description
+            "Enum Value - 2";
+        }
+        enum 3 {
+          description
+            "Enum Value - 3";
+        }
+        enum 4 {
+          description
+            "Enum Value - 4";
+        }
+        enum 5 {
+          description
+            "Enum Value - 5";
+        }
+        enum 6 {
+          description
+            "Enum Value - 6";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborBand";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborBand";
+    }
+    leaf neighbor-frequency {
+      type int32 {
+        range "0..2016";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborFrequency";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.NeighborFrequency";
+    }
+    leaf frequency-included {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.FrequencyIncluded";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.FrequencyIncluded";
+    }
+    leaf in-traffic {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.InTraffic";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.InTraffic";
+    }
+    leaf overhead-msg {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OverheadMsg";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OverheadMsg";
+    }
+    leaf base-identifier {
+      type int32;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.BaseIdentifier";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.BaseIdentifier";
+    }
+    leaf air-interface {
+      type enumeration {
+        enum OneX {
+          description
+            "Enum Value - OneX";
+        }
+        enum IS95 {
+          description
+            "Enum Value - IS95";
+        }
+        enum HRPD {
+          description
+            "Enum Value - HRPD";
+        }
+        enum Other {
+          description
+            "Enum Value - Other";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.AirInterface";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.AirInterface";
+    }
+    leaf hand-out-capable {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.HandOutCapable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.HandOutCapable";
+    }
+    leaf one-x-neighbor-longitude {
+      type string {
+        length "min..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborLongitude";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborLongitude";
+    }
+    leaf one-x-neighbor-latitude {
+      type string {
+        length "min..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborLatitude";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborLatitude";
+    }
+    leaf one-x-neighbor-msc-id {
+      type uint32 {
+        range "0..16777215";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborMSCId";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborMSCId";
+    }
+    leaf one-x-neighbor-ios-cell-id {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborIOSCellId";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.OneXNeighborIOSCellId";
+    }
+    leaf force-in-overhead {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.ForceInOverhead";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.ForceInOverhead";
+    }
+    leaf included-in-overhead {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.IncludedInOverhead";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.IncludedInOverhead";
+    }
+  }
+
+  grouping ran-network-listen-mode-config-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.";
+    leaf rfcnfl-margin {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.RFCNFLMargin";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.RFCNFLMargin";
+    }
+    leaf fap-coverage-target {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.FAPCoverageTarget";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.FAPCoverageTarget";
+    }
+    leaf fap-beacon-coverage-target {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.FAPBeaconCoverageTarget";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.FAPBeaconCoverageTarget";
+    }
+    leaf max-coverage-edge-pilot-strength {
+      type int32 {
+        range "-300..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.MaxCoverageEdgePilotStrength";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.MaxCoverageEdgePilotStrength";
+    }
+    leaf max-allowable-pilot-strength-degradation {
+      type int32 {
+        range "0..150";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.MaxAllowablePilotStrengthDegradation";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.MaxAllowablePilotStrengthDegradation";
+    }
+    leaf rfcnfl-to-protect {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.RFCNFLToProtect";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.RFCNFLToProtect";
+    }
+    leaf fap-allowed-adj-chan-coverage-hole {
+      type uint32 {
+        range "30..150";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.FAPAllowedAdjChanCoverageHole";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.FAPAllowedAdjChanCoverageHole";
+    }
+    leaf acir {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.ACIR";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.ACIR";
+    }
+  }
+
+  grouping ran-power-control-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.";
+    leaf one-xpcfpc-incl {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCFPCIncl";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCFPCIncl";
+    }
+    leaf one-xpcfpcfch-min-setpt {
+      type int32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCFPCFCHMinSetpt";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCFPCFCHMinSetpt";
+    }
+    leaf one-xpcfpcfch-max-setpt {
+      type int32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCFPCFCHMaxSetpt";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCFPCFCHMaxSetpt";
+    }
+    leaf one-xpcrpc-incl {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCRPCIncl";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCRPCIncl";
+    }
+    leaf one-xpcfch-chan-adj-gain {
+      type int32 {
+        range "-48..48";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCFCHChanAdjGain";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCFCHChanAdjGain";
+    }
+    leaf one-xpc-pwr-rep-thresh {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCPwrRepThresh";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCPwrRepThresh";
+    }
+    leaf one-xpc-pwr-rep-frames {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCPwrRepFrames";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCPwrRepFrames";
+    }
+    leaf one-x-pwr-thresh-enable {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPwrThreshEnable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPwrThreshEnable";
+    }
+    leaf one-xpc-pwr-period-enable {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCPwrPeriodEnable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCPwrPeriodEnable";
+    }
+    leaf one-xpc-pwr-rep-delay {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCPwrRepDelay";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.OneXPCPwrRepDelay";
+    }
+  }
+
+  grouping one-x-ran-rf-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.";
+    leaf rfcnfl {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.RFCNFL";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.RFCNFL";
+    }
+    leaf rfcnfl-band-in-use {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.RFCNFLBandInUse";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.RFCNFLBandInUse";
+    }
+    leaf rfcnfl-in-use {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.RFCNFLInUse";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.RFCNFLInUse";
+    }
+    leaf pilot-pn {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.PilotPN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.PilotPN";
+    }
+    leaf pilot-pn-in-use {
+      type uint32 {
+        range "0..511";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.PilotPNInUse";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.PilotPNInUse";
+    }
+    leaf max-fap-tx-power {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.MaxFAPTxPower";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.MaxFAPTxPower";
+    }
+    leaf max-fap-tx-power-in-use {
+      type int32 {
+        range "-400..200";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.MaxFAPTxPowerInUse";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.MaxFAPTxPowerInUse";
+    }
+    leaf pch-pwr-percentage {
+      type uint32 {
+        range "1000..1000000";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.PchPwrPercentage";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.PchPwrPercentage";
+    }
+    leaf pilot-pwr-percentage {
+      type uint32 {
+        range "1000..1000000";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.PilotPwrPercentage";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.PilotPwrPercentage";
+    }
+    leaf sync-pwr-percentage {
+      type uint32 {
+        range "1000..1000000";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.SyncPwrPercentage";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.SyncPwrPercentage";
+    }
+  }
+
+  grouping ran-system-parameters-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.";
+    leaf reg-zone {
+      type uint32 {
+        range "0..4095";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.RegZone";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.RegZone";
+    }
+    leaf total-zones {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.TotalZones";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.TotalZones";
+    }
+    leaf zone-timer {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.ZoneTimer";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.ZoneTimer";
+    }
+    leaf reg-period {
+      type uint32 {
+        range "29..85";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.RegPeriod";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.RegPeriod";
+    }
+    leaf srch-win-a {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.SrchWinA";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.SrchWinA";
+    }
+    leaf srch-win-n {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.SrchWinN";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.SrchWinN";
+    }
+    leaf srch-win-r {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.SrchWinR";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.SrchWinR";
+    }
+    leaf nghbr-max-age {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.NghbrMaxAge";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.NghbrMaxAge";
+    }
+    leaf pwr-rep-thresh {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrRepThresh";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrRepThresh";
+    }
+    leaf pwr-rep-frames {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrRepFrames";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrRepFrames";
+    }
+    leaf pwr-thresh-enable {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrThreshEnable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrThreshEnable";
+    }
+    leaf pwr-period-enable {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrPeriodEnable";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrPeriodEnable";
+    }
+    leaf pwr-rep-delay {
+      type uint32 {
+        range "0..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrRepDelay";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.PwrRepDelay";
+    }
+    leaf rescan {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.Rescan";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.Rescan";
+    }
+    leaf tadd {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.Tadd";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.Tadd";
+    }
+    leaf tdrop {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.Tdrop";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.Tdrop";
+    }
+    leaf tcomp {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.Tcomp";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.Tcomp";
+    }
+    leaf t-tdrop {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.TTdrop";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.TTdrop";
+    }
+    leaf in-traffic-tadd {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.InTrafficTadd";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.InTrafficTadd";
+    }
+    leaf in-traffic-tdrop {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.InTrafficTdrop";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.InTrafficTdrop";
+    }
+    leaf in-traffic-tcomp {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.InTrafficTcomp";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.InTrafficTcomp";
+    }
+    leaf in-traffic-ttdrop {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.InTrafficTtdrop";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.InTrafficTtdrop";
+    }
+  }
+
+  grouping one-x-redirect-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.Redirect.";
+    leaf redirect-channel-number {
+      type uint32 {
+        range "0..2047";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Redirect.RedirectChannelNumber";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Redirect.RedirectChannelNumber";
+    }
+    leaf redirect-band-class {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Redirect.RedirectBandClass";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Redirect.RedirectBandClass";
+    }
+  }
+
+  grouping one-x-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.";
+    leaf registration-attempts {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RegistrationAttempts";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RegistrationAttempts";
+    }
+    leaf registration-fails {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RegistrationFails";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RegistrationFails";
+    }
+    leaf registrations-blocked {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RegistrationsBlocked";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RegistrationsBlocked";
+    }
+    leaf page-attempts {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.PageAttempts";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.PageAttempts";
+    }
+    leaf page-fails {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.PageFails";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.PageFails";
+    }
+    leaf voice-call-attempts {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.VoiceCallAttempts";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.VoiceCallAttempts";
+    }
+    leaf voice-call-failures {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.VoiceCallFailures";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.VoiceCallFailures";
+    }
+    leaf voice-calls-blocked {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.VoiceCallsBlocked";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.VoiceCallsBlocked";
+    }
+    leaf voice-calls-dropped {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.VoiceCallsDropped";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.VoiceCallsDropped";
+    }
+    leaf data-call-attempts {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.DataCallAttempts";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.DataCallAttempts";
+    }
+    leaf data-call-failures {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.DataCallFailures";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.DataCallFailures";
+    }
+    leaf data-calls-blocked {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.DataCallsBlocked";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.DataCallsBlocked";
+    }
+    leaf data-calls-dropped {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.DataCallsDropped";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.DataCallsDropped";
+    }
+    leaf average-voice-call {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.AverageVoiceCall";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.AverageVoiceCall";
+    }
+    leaf average-data-call {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.AverageDataCall";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.AverageDataCall";
+    }
+    leaf average-session-in-sec {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.AverageSessionInSec";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.AverageSessionInSec";
+    }
+    leaf total-voice-calls {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.TotalVoiceCalls";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.TotalVoiceCalls";
+    }
+    leaf total-data-calls {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.TotalDataCalls";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.TotalDataCalls";
+    }
+    leaf fwd-voice-packet-drop-percentage {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.FwdVoicePacketDropPercentage";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.FwdVoicePacketDropPercentage";
+    }
+    leaf rev-voice-packet-drop-percentage {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RevVoicePacketDropPercentage";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RevVoicePacketDropPercentage";
+    }
+    leaf fwd-avg-data-rate {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.FwdAvgDataRate";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.FwdAvgDataRate";
+    }
+    leaf rev-avg-data-rate {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RevAvgDataRate";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.RevAvgDataRate";
+    }
+    leaf bc-index-zero-to-one-transitions {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.BcIndexZeroToOneTransitions";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.BcIndexZeroToOneTransitions";
+    }
+    leaf bc-index-one-to-zero-transitions {
+      type uint32 {
+        range "0..4294967295";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.BcIndexOneToZeroTransitions";
+      reference
+        "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.BcIndexOneToZeroTransitions";
+    }
+  }
+
+  grouping cell-config-lte-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.";
+    leaf tunnel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.TunnelNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.TunnelNumberOfEntries";
+    }
+  }
+
+  grouping lte-epc-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.EPC.";
+    leaf allowed-ciphering-algorithm-list {
+      type enumeration {
+        enum EEA0 {
+          description
+            "Enum Value - EEA0";
+        }
+        enum 128-EEA1 {
+          description
+            "Enum Value - 128-EEA1";
+        }
+        enum 128-EEA2 {
+          description
+            "Enum Value - 128-EEA2";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.AllowedCipheringAlgorithmList";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.AllowedCipheringAlgorithmList";
+    }
+    leaf allowed-integrity-protection-algorithm-list {
+      type enumeration {
+        enum 128-EIA1 {
+          description
+            "Enum Value - 128-EIA1";
+        }
+        enum 128-EIA2 {
+          description
+            "Enum Value - 128-EIA2";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.AllowedIntegrityProtectionAlgorithmList";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.AllowedIntegrityProtectionAlgorithmList";
+    }
+    leaf tac {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.TAC";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.TAC";
+    }
+    leaf eaid {
+      type uint32 {
+        range "0..16777216";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.EAID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.EAID";
+    }
+    leaf max-plmn-list-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.MaxPLMNListEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.MaxPLMNListEntries";
+    }
+    leaf plmn-list-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNListNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNListNumberOfEntries";
+    }
+    leaf max-qo-s-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.MaxQoSEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.MaxQoSEntries";
+    }
+    leaf qo-s-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.QoSNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.QoSNumberOfEntries";
+    }
+  }
+
+  grouping ho-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.";
+    leaf toe-nb-att {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToeNBAtt";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToeNBAtt";
+    }
+    leaf toe-nb-succ {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToeNBSucc";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToeNBSucc";
+    }
+    leaf toe-nb-fail {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToeNBFail";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToeNBFail";
+    }
+    leaf frome-nb-att {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.FromeNBAtt";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.FromeNBAtt";
+    }
+    leaf frome-nb-succ {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.FromeNBSucc";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.FromeNBSucc";
+    }
+    leaf frome-nb-fail {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.FromeNBFail";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.FromeNBFail";
+    }
+    leaf to-utran-att {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToUtranAtt";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToUtranAtt";
+    }
+    leaf to-utran-succ {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToUtranSucc";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToUtranSucc";
+    }
+    leaf to-utran-fail {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToUtranFail";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToUtranFail";
+    }
+    leaf to-geran-att {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToGeranAtt";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToGeranAtt";
+    }
+    leaf to-geran-succ {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToGeranSucc";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToGeranSucc";
+    }
+    leaf to-geran-fail {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToGeranFail";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.ToGeranFail";
+    }
+  }
+
+  grouping epc-plmn-list-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.Alias";
+    }
+    leaf is-primary {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.IsPrimary";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.IsPrimary";
+    }
+    leaf plmnid {
+      type string {
+        length "min..6";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.PLMNID";
+    }
+    leaf cell-reserved-for-operator-use {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.CellReservedForOperatorUse";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.CellReservedForOperatorUse";
+    }
+  }
+
+  grouping epc-qo-s-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Alias";
+    }
+    leaf qci {
+      type uint32 {
+        range "1..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.QCI";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.QCI";
+    }
+    leaf type {
+      type enumeration {
+        enum GBR {
+          description
+            "Enum Value - GBR";
+        }
+        enum Non-GBR {
+          description
+            "Enum Value - Non-GBR";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Type";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Type";
+    }
+    leaf priority {
+      type uint32 {
+        range "1..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Priority";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.Priority";
+    }
+    leaf packet-delay-budget {
+      type uint32 {
+        range "50 | 100 | 150 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | 1000 | 1500 | 2000";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.PacketDelayBudget";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.PacketDelayBudget";
+    }
+  }
+
+  grouping lte-energy-savings-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.EnergySavings.";
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.Enable";
+    }
+    leaf state {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.State";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.State";
+    }
+    leaf not-allowed-time-period-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriodNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriodNumberOfEntries";
+    }
+  }
+
+  grouping energy-savings-activation-candidate-cells-load-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.EnergySavings.ActivationCandidateCellsLoad.";
+    leaf threshold {
+      type uint32 {
+        range "min..100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.ActivationCandidateCellsLoad.Threshold";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.ActivationCandidateCellsLoad.Threshold";
+    }
+    leaf time-duration {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.ActivationCandidateCellsLoad.TimeDuration";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.ActivationCandidateCellsLoad.TimeDuration";
+    }
+  }
+
+  grouping energy-savings-deactivation-candidate-cells-load-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.EnergySavings.DeactivationCandidateCellsLoad.";
+    leaf threshold {
+      type uint32 {
+        range "min..100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.DeactivationCandidateCellsLoad.Threshold";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.DeactivationCandidateCellsLoad.Threshold";
+    }
+    leaf time-duration {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.DeactivationCandidateCellsLoad.TimeDuration";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.DeactivationCandidateCellsLoad.TimeDuration";
+    }
+  }
+
+  grouping energy-savings-not-allowed-time-period-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.Enable";
+    }
+    leaf start-time {
+      type string;
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.StartTime";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.StartTime";
+    }
+    leaf end-time {
+      type string;
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.EndTime";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.EndTime";
+    }
+    leaf days-of-week {
+      type enumeration {
+        enum Monday {
+          description
+            "Enum Value - Monday";
+        }
+        enum Tuesday {
+          description
+            "Enum Value - Tuesday";
+        }
+        enum Wednesday {
+          description
+            "Enum Value - Wednesday";
+        }
+        enum Thursday {
+          description
+            "Enum Value - Thursday";
+        }
+        enum Friday {
+          description
+            "Enum Value - Friday";
+        }
+        enum Saturday {
+          description
+            "Enum Value - Saturday";
+        }
+        enum Sunday {
+          description
+            "Enum Value - Sunday";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.DaysOfWeek";
+      reference
+        "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.DaysOfWeek";
+    }
+  }
+
+  grouping csg-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.";
+    leaf mean-nbr-usr {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.MeanNbrUsr";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.MeanNbrUsr";
+    }
+    leaf att-inbound-mobility {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.AttInboundMobility";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.AttInboundMobility";
+    }
+    leaf succ-inbound-mobility {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.SuccInboundMobility";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.SuccInboundMobility";
+    }
+    leaf failed-inbound-mobility {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.FailedInboundMobility";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.FailedInboundMobility";
+    }
+  }
+
+  grouping ran-cell-restriction-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.";
+    leaf cell-barred {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.CellBarred";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.CellBarred";
+    }
+    leaf cell-reserved-for-operator-use {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.CellReservedForOperatorUse";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.CellReservedForOperatorUse";
+    }
+    leaf barring-for-emergency {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.BarringForEmergency";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.BarringForEmergency";
+    }
+  }
+
+  grouping ran-common-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Common.";
+    leaf cell-identity {
+      type uint32 {
+        range "0..268435455";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Common.CellIdentity";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Common.CellIdentity";
+    }
+  }
+
+  grouping drb-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.";
+    leaf pdcp-sdu-bitrate-dl {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduBitrateDl";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduBitrateDl";
+    }
+    leaf pdcp-sdu-bitrate-ul {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduBitrateUl";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduBitrateUl";
+    }
+    leaf pdcp-sdu-bitrate-dl-max {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduBitrateDlMax";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduBitrateDlMax";
+    }
+    leaf pdcp-sdu-bitrate-ul-max {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduBitrateUlMax";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduBitrateUlMax";
+    }
+    leaf pdcp-sdu-delay-dl {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduDelayDl";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduDelayDl";
+    }
+    leaf pdcp-sdu-drop-rate-dl {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduDropRateDl";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduDropRateDl";
+    }
+    leaf pdcp-sdu-air-loss-rate-dl {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduAirLossRateDl";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduAirLossRateDl";
+    }
+    leaf pdcp-sdu-loss-rate-ul {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduLossRateUl";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.PdcpSduLossRateUl";
+    }
+    leaf ue-active-dl {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.UEActiveDl";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.UEActiveDl";
+    }
+    leaf ue-active-ul {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.UEActiveUl";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.UEActiveUl";
+    }
+  }
+
+  grouping erab-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.";
+    leaf estab-init-att-nbr {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabInitAttNbr";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabInitAttNbr";
+    }
+    leaf estab-init-succ-nbr {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabInitSuccNbr";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabInitSuccNbr";
+    }
+    leaf estab-init-fail-nbr {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabInitFailNbr";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabInitFailNbr";
+    }
+    leaf estab-att-nbr {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabAttNbr";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabAttNbr";
+    }
+    leaf estab-succ-nbr {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabSuccNbr";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabSuccNbr";
+    }
+    leaf estab-fail-nbr {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabFailNbr";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.EstabFailNbr";
+    }
+    leaf rel-enb-nbr-qci {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.RelEnbNbrQCI";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.RelEnbNbrQCI";
+    }
+    leaf rel-enb-nbr-cause {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.RelEnbNbrCause";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.RelEnbNbrCause";
+    }
+    leaf lgw-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGWNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGWNumberOfEntries";
+    }
+  }
+
+  grouping stats-lgw-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf correlation-id {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.CorrelationID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.CorrelationID";
+    }
+    leaf estab-direct-path-lgw-att-nbr {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.EstabDirectPathLGWAttNbr";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.EstabDirectPathLGWAttNbr";
+    }
+    leaf estab-direct-path-lgw-succ-nbr {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.EstabDirectPathLGWSuccNbr";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.EstabDirectPathLGWSuccNbr";
+    }
+    leaf estab-direct-path-lgw-fail-nbr {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.EstabDirectPathLGWFailNbr";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.EstabDirectPathLGWFailNbr";
+    }
+  }
+
+  grouping mac-drx-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.";
+    leaf drx-enabled {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXEnabled";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXEnabled";
+    }
+    leaf on-duration-timer {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.OnDurationTimer";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.OnDurationTimer";
+    }
+    leaf drx-inactivity-timer {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXInactivityTimer";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXInactivityTimer";
+    }
+    leaf drx-retransmission-timer {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXRetransmissionTimer";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXRetransmissionTimer";
+    }
+    leaf long-drx-cycle {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.LongDRXCycle";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.LongDRXCycle";
+    }
+    leaf drx-start-offset {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXStartOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXStartOffset";
+    }
+    leaf short-drx-cycle {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.ShortDRXCycle";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.ShortDRXCycle";
+    }
+    leaf drx-short-cycle-timer {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXShortCycleTimer";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.DRXShortCycleTimer";
+    }
+  }
+
+  grouping mac-rach-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.";
+    leaf number-of-ra-preambles {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.NumberOfRaPreambles";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.NumberOfRaPreambles";
+    }
+    leaf size-of-ra-group-a {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.SizeOfRaGroupA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.SizeOfRaGroupA";
+    }
+    leaf message-size-group-a {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.MessageSizeGroupA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.MessageSizeGroupA";
+    }
+    leaf message-power-offset-group-b {
+      type int32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.MessagePowerOffsetGroupB";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.MessagePowerOffsetGroupB";
+    }
+    leaf power-ramping-step {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.PowerRampingStep";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.PowerRampingStep";
+    }
+    leaf preamble-initial-received-target-power {
+      type int32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.PreambleInitialReceivedTargetPower";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.PreambleInitialReceivedTargetPower";
+    }
+    leaf preamble-trans-max {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.PreambleTransMax";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.PreambleTransMax";
+    }
+    leaf response-window-size {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.ResponseWindowSize";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.ResponseWindowSize";
+    }
+    leaf contention-resolution-timer {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.ContentionResolutionTimer";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.ContentionResolutionTimer";
+    }
+    leaf max-harq-msg3-tx {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.MaxHARQMsg3Tx";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.MaxHARQMsg3Tx";
+    }
+  }
+
+  grouping mac-ulsch-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.";
+    leaf max-harq-tx {
+      type uint32 {
+        range "1..8 | 10 | 12 | 16 | 20 | 24 | 28";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.MaxHARQTx";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.MaxHARQTx";
+    }
+    leaf periodic-bsr-timer {
+      type uint32 {
+        range "0 | 5 | 10 | 16 | 20 | 32 | 40 | 64 | 80 | 128 | 160 | 320 | 640 | 1280 | 2560";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.PeriodicBSRTimer";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.PeriodicBSRTimer";
+    }
+    leaf retx-bsr-timer {
+      type uint32 {
+        range "320 | 640 | 1280 | 2560 | 5120 | 10240";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.RetxBSRTimer";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.RetxBSRTimer";
+    }
+    leaf tti-bundling {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.TTIBundling";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.TTIBundling";
+    }
+  }
+
+  grouping conn-mode-eutra-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.";
+    leaf filter-coefficient-rsrp {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.FilterCoefficientRSRP";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.FilterCoefficientRSRP";
+    }
+    leaf filter-coefficient-rsrq {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.FilterCoefficientRSRQ";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.FilterCoefficientRSRQ";
+    }
+    leaf a1-threshold-rsrp {
+      type uint32 {
+        range "0..97";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A1ThresholdRSRP";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A1ThresholdRSRP";
+    }
+    leaf a1-threshold-rsrq {
+      type uint32 {
+        range "0..34";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A1ThresholdRSRQ";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A1ThresholdRSRQ";
+    }
+    leaf a2-threshold-rsrp {
+      type uint32 {
+        range "0..97";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A2ThresholdRSRP";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A2ThresholdRSRP";
+    }
+    leaf a2-threshold-rsrq {
+      type uint32 {
+        range "0..34";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A2ThresholdRSRQ";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A2ThresholdRSRQ";
+    }
+    leaf a3-offset {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A3Offset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A3Offset";
+    }
+    leaf report-on-leave {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportOnLeave";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportOnLeave";
+    }
+    leaf a4-threshold-rsrp {
+      type uint32 {
+        range "0..97";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A4ThresholdRSRP";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A4ThresholdRSRP";
+    }
+    leaf a4-threshold-rsrq {
+      type uint32 {
+        range "0..34";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A4ThresholdRSRQ";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A4ThresholdRSRQ";
+    }
+    leaf a5-threshold1-rsrp {
+      type uint32 {
+        range "0..97";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A5Threshold1RSRP";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A5Threshold1RSRP";
+    }
+    leaf a5-threshold1-rsrq {
+      type uint32 {
+        range "0..34";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A5Threshold1RSRQ";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A5Threshold1RSRQ";
+    }
+    leaf a5-threshold2-rsrp {
+      type uint32 {
+        range "0..97";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A5Threshold2RSRP";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A5Threshold2RSRP";
+    }
+    leaf a5-threshold2-rsrq {
+      type uint32 {
+        range "0..34";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A5Threshold2RSRQ";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.A5Threshold2RSRQ";
+    }
+    leaf hysteresis {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.Hysteresis";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.Hysteresis";
+    }
+    leaf time-to-trigger {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.TimeToTrigger";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.TimeToTrigger";
+    }
+    leaf trigger-quantity {
+      type enumeration {
+        enum RSRP {
+          description
+            "Enum Value - RSRP";
+        }
+        enum RSRQ {
+          description
+            "Enum Value - RSRQ";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.TriggerQuantity";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.TriggerQuantity";
+    }
+    leaf report-quantity {
+      type enumeration {
+        enum SameAsTriggerQuantity {
+          description
+            "Enum Value - SameAsTriggerQuantity";
+        }
+        enum Both {
+          description
+            "Enum Value - Both";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportQuantity";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportQuantity";
+    }
+    leaf max-report-cells {
+      type uint32 {
+        range "1..8";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.MaxReportCells";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.MaxReportCells";
+    }
+    leaf report-interval {
+      type uint32 {
+        range "120 | 240 | 480 | 640 | 1024 | 2048 | 5120 | 10240 | 60000 | 360000 | 720000 | 1800000 | 3600000";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportInterval";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportInterval";
+    }
+    leaf report-amount {
+      type uint32 {
+        range "0..2 | 4 | 8 | 16 | 32 | 64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportAmount";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.ReportAmount";
+    }
+  }
+
+  grouping conn-mode-irat-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.";
+    leaf qoffsett-utra {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.QoffsettUTRA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.QoffsettUTRA";
+    }
+    leaf filter-coefficient-utra {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.FilterCoefficientUTRA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.FilterCoefficientUTRA";
+    }
+    leaf meas-quantity-utrafdd {
+      type enumeration {
+        enum CPICH-RSCP {
+          description
+            "Enum Value - CPICH-RSCP";
+        }
+        enum CPICH-EcN0 {
+          description
+            "Enum Value - CPICH-EcN0";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.MeasQuantityUTRAFDD";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.MeasQuantityUTRAFDD";
+    }
+    leaf b1-threshold-utrarscp {
+      type int32 {
+        range "-5..91";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B1ThresholdUTRARSCP";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B1ThresholdUTRARSCP";
+    }
+    leaf b1-threshold-utra-ec-n0 {
+      type uint32 {
+        range "0..49";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B1ThresholdUTRAEcN0";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B1ThresholdUTRAEcN0";
+    }
+    leaf qoffset-geran {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.QoffsetGERAN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.QoffsetGERAN";
+    }
+    leaf filter-coefficient-geran {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.FilterCoefficientGERAN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.FilterCoefficientGERAN";
+    }
+    leaf b1-threshold-geran {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B1ThresholdGERAN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B1ThresholdGERAN";
+    }
+    leaf qoffset-cdma2000 {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.QoffsetCDMA2000";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.QoffsetCDMA2000";
+    }
+    leaf meas-quantity-cdma2000 {
+      type enumeration {
+        enum PilotStrength {
+          description
+            "Enum Value - PilotStrength";
+        }
+        enum PilotPnPhaseAndPilotStrength {
+          description
+            "Enum Value - PilotPnPhaseAndPilotStrength";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.MeasQuantityCDMA2000";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.MeasQuantityCDMA2000";
+    }
+    leaf b1-threshold-cdma2000 {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B1ThresholdCDMA2000";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B1ThresholdCDMA2000";
+    }
+    leaf b2-threshold2-utrarscp {
+      type int32 {
+        range "-5..91";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B2Threshold2UTRARSCP";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B2Threshold2UTRARSCP";
+    }
+    leaf b2-threshold2-utra-ec-n0 {
+      type uint32 {
+        range "0..49";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B2Threshold2UTRAEcN0";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B2Threshold2UTRAEcN0";
+    }
+    leaf b2-threshold2-geran {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B2Threshold2GERAN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B2Threshold2GERAN";
+    }
+    leaf b2-threshold2-cdma2000 {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B2Threshold2CDMA2000";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.B2Threshold2CDMA2000";
+    }
+    leaf hysteresis {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.Hysteresis";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.Hysteresis";
+    }
+    leaf time-to-trigger {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.TimeToTrigger";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.TimeToTrigger";
+    }
+    leaf max-report-cells {
+      type uint32 {
+        range "1..8";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.MaxReportCells";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.MaxReportCells";
+    }
+    leaf report-interval {
+      type uint32 {
+        range "120 | 240 | 480 | 640 | 1024 | 2048 | 5120 | 10240 | 60000 | 360000 | 720000 | 1800000 | 3600000";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.ReportInterval";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.ReportInterval";
+    }
+    leaf report-amount {
+      type uint32 {
+        range "0..2 | 4 | 8 | 16 | 32 | 64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.ReportAmount";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.ReportAmount";
+    }
+  }
+
+  grouping idle-mode-common-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.";
+    leaf qhyst {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.Qhyst";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.Qhyst";
+    }
+    leaf q-hyst-sf-medium {
+      type int32 {
+        range "-6 | -4 | -2 | 0";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.QHystSFMedium";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.QHystSFMedium";
+    }
+    leaf q-hyst-sf-high {
+      type int32 {
+        range "-6 | -4 | -2 | 0";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.QHystSFHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.QHystSFHigh";
+    }
+    leaf t-evaluation {
+      type uint32 {
+        range "30 | 60 | 120 | 180 | 240";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.TEvaluation";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.TEvaluation";
+    }
+    leaf t-hyst-normal {
+      type uint32 {
+        range "30 | 60 | 120 | 180 | 240";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.THystNormal";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.THystNormal";
+    }
+    leaf n-cell-change-medium {
+      type uint32 {
+        range "1..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.NCellChangeMedium";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.NCellChangeMedium";
+    }
+    leaf n-cell-change-high {
+      type uint32 {
+        range "1..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.NCellChangeHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.NCellChangeHigh";
+    }
+  }
+
+  grouping irat-cdma2000-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.";
+    leaf search-window-size {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.SearchWindowSize";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.SearchWindowSize";
+    }
+    leaf t-reselection-cdma2000 {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.TReselectionCDMA2000";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.TReselectionCDMA2000";
+    }
+    leaf t-reselection-cdma2000-sf-medium {
+      type uint32 {
+        range "25 | 50 | 75 | 100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.TReselectionCDMA2000SFMedium";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.TReselectionCDMA2000SFMedium";
+    }
+    leaf t-reselection-cdma2000-sf-high {
+      type uint32 {
+        range "25 | 50 | 75 | 100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.TReselectionCDMA2000SFHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.TReselectionCDMA2000SFHigh";
+    }
+    leaf max-cdma2000-band-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.MaxCDMA2000BandEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.MaxCDMA2000BandEntries";
+    }
+    leaf cdma2000-band-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000BandNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000BandNumberOfEntries";
+    }
+  }
+
+  grouping cdma2000-cdma2000-band-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.Alias";
+    }
+    leaf band-class {
+      type uint32 {
+        range "0..17";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.BandClass";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.BandClass";
+    }
+    leaf cell-reselection-priority {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.CellReselectionPriority";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.CellReselectionPriority";
+    }
+    leaf thresh-x-high {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.ThreshXHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.ThreshXHigh";
+    }
+    leaf thresh-x-low {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.ThreshXLow";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.ThreshXLow";
+    }
+  }
+
+  grouping irat-geran-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.";
+    leaf t-reselection-geran {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.TReselectionGERAN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.TReselectionGERAN";
+    }
+    leaf t-reselection-geransf-medium {
+      type uint32 {
+        range "25 | 50 | 75 | 100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.TReselectionGERANSFMedium";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.TReselectionGERANSFMedium";
+    }
+    leaf t-reselection-geransf-high {
+      type uint32 {
+        range "25 | 50 | 75 | 100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.TReselectionGERANSFHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.TReselectionGERANSFHigh";
+    }
+    leaf max-geran-freq-group-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.MaxGERANFreqGroupEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.MaxGERANFreqGroupEntries";
+    }
+    leaf geran-freq-group-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroupNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroupNumberOfEntries";
+    }
+  }
+
+  grouping geran-geran-freq-group-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.Alias";
+    }
+    leaf band-indicator {
+      type enumeration {
+        enum GSM850 {
+          description
+            "Enum Value - GSM850";
+        }
+        enum GSM900 {
+          description
+            "Enum Value - GSM900";
+        }
+        enum DCS1800 {
+          description
+            "Enum Value - DCS1800";
+        }
+        enum PCS1900 {
+          description
+            "Enum Value - PCS1900";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.BandIndicator";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.BandIndicator";
+    }
+    leaf bccharfcn {
+      type uint32 {
+        range "0..1023";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.BCCHARFCN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.BCCHARFCN";
+    }
+    leaf q-rx-lev-min {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.QRxLevMin";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.QRxLevMin";
+    }
+    leaf cell-reselection-priority {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.CellReselectionPriority";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.CellReselectionPriority";
+    }
+    leaf thresh-x-high {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.ThreshXHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.ThreshXHigh";
+    }
+    leaf thresh-x-low {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.ThreshXLow";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.ThreshXLow";
+    }
+  }
+
+  grouping irat-utra-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.";
+    leaf t-reselection-utra {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.TReselectionUTRA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.TReselectionUTRA";
+    }
+    leaf t-reselection-utrasf-medium {
+      type uint32 {
+        range "25 | 50 | 75 | 100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.TReselectionUTRASFMedium";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.TReselectionUTRASFMedium";
+    }
+    leaf t-reselection-utrasf-high {
+      type uint32 {
+        range "25 | 50 | 75 | 100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.TReselectionUTRASFHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.TReselectionUTRASFHigh";
+    }
+    leaf max-utranfdd-freq-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.MaxUTRANFDDFreqEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.MaxUTRANFDDFreqEntries";
+    }
+    leaf utranfdd-freq-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreqNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreqNumberOfEntries";
+    }
+  }
+
+  grouping utra-utranfdd-freq-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.Alias";
+    }
+    leaf utra-carrier-arfcn {
+      type uint32 {
+        range "0..16383";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.UTRACarrierARFCN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.UTRACarrierARFCN";
+    }
+    leaf q-rx-lev-min {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.QRxLevMin";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.QRxLevMin";
+    }
+    leaf q-qual-min {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.QQualMin";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.QQualMin";
+    }
+    leaf cell-reselection-priority {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.CellReselectionPriority";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.CellReselectionPriority";
+    }
+    leaf thresh-x-high {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.ThreshXHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.ThreshXHigh";
+    }
+    leaf thresh-x-low {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.ThreshXLow";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.ThreshXLow";
+    }
+    leaf p-max-utra {
+      type int32 {
+        range "-50..33";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.PMaxUTRA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.PMaxUTRA";
+    }
+  }
+
+  grouping idle-mode-inter-freq-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.";
+    leaf max-carrier-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.MaxCarrierEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.MaxCarrierEntries";
+    }
+    leaf carrier-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.CarrierNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.CarrierNumberOfEntries";
+    }
+  }
+
+  grouping inter-freq-carrier-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.Alias";
+    }
+    leaf eutra-carrier-arfcn {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.EUTRACarrierARFCN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.EUTRACarrierARFCN";
+    }
+    leaf q-rx-lev-min-si-b5 {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.QRxLevMinSIB5";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.QRxLevMinSIB5";
+    }
+    leaf q-offset-freq {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.QOffsetFreq";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.QOffsetFreq";
+    }
+    leaf t-reselection-eutra {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.TReselectionEUTRA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.TReselectionEUTRA";
+    }
+    leaf cell-reselection-priority {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.CellReselectionPriority";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.CellReselectionPriority";
+    }
+    leaf thresh-x-high {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.ThreshXHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.ThreshXHigh";
+    }
+    leaf thresh-x-low {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.ThreshXLow";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.ThreshXLow";
+    }
+    leaf p-max {
+      type int32 {
+        range "-30..33";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.PMax";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.PMax";
+    }
+    leaf t-reselection-eutrasf-medium {
+      type uint32 {
+        range "25 | 50 | 75 | 100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.TReselectionEUTRASFMedium";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.TReselectionEUTRASFMedium";
+    }
+    leaf t-reselection-eutrasf-high {
+      type uint32 {
+        range "25 | 50 | 75 | 100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.TReselectionEUTRASFHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.TReselectionEUTRASFHigh";
+    }
+  }
+
+  grouping idle-mode-intra-freq-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.";
+    leaf q-rx-lev-min-si-b1 {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.QRxLevMinSIB1";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.QRxLevMinSIB1";
+    }
+    leaf q-rx-lev-min-si-b3 {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.QRxLevMinSIB3";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.QRxLevMinSIB3";
+    }
+    leaf q-rx-lev-min-offset {
+      type uint32 {
+        range "1..8";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.QRxLevMinOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.QRxLevMinOffset";
+    }
+    leaf s-intra-search {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.SIntraSearch";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.SIntraSearch";
+    }
+    leaf t-reselection-eutra {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.TReselectionEUTRA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.TReselectionEUTRA";
+    }
+    leaf s-non-intra-search {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.SNonIntraSearch";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.SNonIntraSearch";
+    }
+    leaf cell-reselection-priority {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.CellReselectionPriority";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.CellReselectionPriority";
+    }
+    leaf p-max {
+      type int32 {
+        range "-30..33";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.PMax";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.PMax";
+    }
+    leaf thresh-serving-low {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.ThreshServingLow";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.ThreshServingLow";
+    }
+    leaf t-reselection-eutrasf-medium {
+      type uint32 {
+        range "25 | 50 | 75 | 100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.TReselectionEUTRASFMedium";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.TReselectionEUTRASFMedium";
+    }
+    leaf t-reselection-eutrasf-high {
+      type uint32 {
+        range "25 | 50 | 75 | 100";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.TReselectionEUTRASFHigh";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.TReselectionEUTRASFHigh";
+    }
+  }
+
+  grouping lte-ran-neighbor-list-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborList.";
+    leaf max-lte-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.MaxLTECellEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.MaxLTECellEntries";
+    }
+    leaf lte-cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECellNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECellNumberOfEntries";
+    }
+  }
+
+  grouping neighbor-list-inter-rat-cell-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.";
+    leaf max-umts-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.MaxUMTSEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.MaxUMTSEntries";
+    }
+    leaf max-gsm-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.MaxGSMEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.MaxGSMEntries";
+    }
+    leaf max-cdma2000-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.MaxCDMA2000Entries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.MaxCDMA2000Entries";
+    }
+    leaf umts-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTSNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTSNumberOfEntries";
+    }
+    leaf gsm-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSMNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSMNumberOfEntries";
+    }
+    leaf cdma2000-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000NumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000NumberOfEntries";
+    }
+  }
+
+  grouping inter-rat-cell-cdma2000-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.Alias";
+    }
+    leaf must-include {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.MustInclude";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.MustInclude";
+    }
+    leaf band-class {
+      type uint32 {
+        range "0..17";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.BandClass";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.BandClass";
+    }
+    leaf arfcn {
+      type uint32 {
+        range "0..2047";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.ARFCN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.ARFCN";
+    }
+    leaf pn-offset {
+      type uint32 {
+        range "0..511";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.PNOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.PNOffset";
+    }
+    leaf type {
+      type enumeration {
+        enum 1xRTT {
+          description
+            "Enum Value - 1xRTT";
+        }
+        enum HRPD {
+          description
+            "Enum Value - HRPD";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.Type";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.Type";
+    }
+    leaf cid {
+      type string {
+        length "min..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.CID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.CID";
+    }
+  }
+
+  grouping inter-rat-cell-gsm-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.Alias";
+    }
+    leaf must-include {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.MustInclude";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.MustInclude";
+    }
+    leaf plmnid {
+      type string {
+        length "min..6";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.PLMNID";
+    }
+    leaf lac {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.LAC";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.LAC";
+    }
+    leaf bsic {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.BSIC";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.BSIC";
+    }
+    leaf ci {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.CI";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.CI";
+    }
+    leaf band-indicator {
+      type enumeration {
+        enum GSM850 {
+          description
+            "Enum Value - GSM850";
+        }
+        enum GSM900 {
+          description
+            "Enum Value - GSM900";
+        }
+        enum DCS1800 {
+          description
+            "Enum Value - DCS1800";
+        }
+        enum PCS1900 {
+          description
+            "Enum Value - PCS1900";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.BandIndicator";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.BandIndicator";
+    }
+    leaf bccharfcn {
+      type uint32 {
+        range "0..1023";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.BCCHARFCN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.BCCHARFCN";
+    }
+  }
+
+  grouping inter-rat-cell-umts-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.Alias";
+    }
+    leaf must-include {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.MustInclude";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.MustInclude";
+    }
+    leaf plmnid {
+      type string {
+        length "min..6";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.PLMNID";
+    }
+    leaf rncid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.RNCID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.RNCID";
+    }
+    leaf cid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.CID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.CID";
+    }
+    leaf lac {
+      type uint32 {
+        range "1..65533 | 65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.LAC";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.LAC";
+    }
+    leaf rac {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.RAC";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.RAC";
+    }
+    leaf ura {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.URA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.URA";
+    }
+    leaf uarfcnul {
+      type uint32 {
+        range "0..16383";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.UARFCNUL";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.UARFCNUL";
+    }
+    leaf uarfcndl {
+      type uint32 {
+        range "0..16383";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.UARFCNDL";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.UARFCNDL";
+    }
+    leaf pcpich-scrambling-code {
+      type uint32 {
+        range "0..511";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.PCPICHScramblingCode";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.PCPICHScramblingCode";
+    }
+    leaf pcpich-tx-power {
+      type int32 {
+        range "-100..500";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.PCPICHTxPower";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.PCPICHTxPower";
+    }
+  }
+
+  grouping neighbor-list-lte-cell-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.Alias";
+    }
+    leaf must-include {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.MustInclude";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.MustInclude";
+    }
+    leaf plmnid {
+      type string {
+        length "min..6";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.PLMNID";
+    }
+    leaf cid {
+      type uint32 {
+        range "0..268435455";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.CID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.CID";
+    }
+    leaf eutra-carrier-arfcn {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.EUTRACarrierARFCN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.EUTRACarrierARFCN";
+    }
+    leaf phy-cell-id {
+      type uint32 {
+        range "0..503";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.PhyCellID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.PhyCellID";
+    }
+    leaf q-offset {
+      type int32 {
+        range "-24..-8 | -6..6 | 8..24";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.QOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.QOffset";
+    }
+    leaf cio {
+      type int32 {
+        range "-24..-8 | -6..6 | 8..24";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.CIO";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.CIO";
+    }
+    leaf rs-tx-power {
+      type int32 {
+        range "-60..50";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.RSTxPower";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.RSTxPower";
+    }
+    leaf blacklisted {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.Blacklisted";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.Blacklisted";
+    }
+  }
+
+  grouping ran-neighbor-list-in-use-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.";
+    leaf max-lte-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.MaxLTECellEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.MaxLTECellEntries";
+    }
+    leaf lte-cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECellNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECellNumberOfEntries";
+    }
+  }
+
+  grouping neighbor-list-in-use-inter-rat-cell-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.";
+    leaf max-umts-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.MaxUMTSEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.MaxUMTSEntries";
+    }
+    leaf max-gsm-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.MaxGSMEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.MaxGSMEntries";
+    }
+    leaf max-cdma2000-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.MaxCDMA2000Entries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.MaxCDMA2000Entries";
+    }
+    leaf umts-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTSNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTSNumberOfEntries";
+    }
+    leaf gsm-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSMNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSMNumberOfEntries";
+    }
+    leaf cdma2000-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000NumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000NumberOfEntries";
+    }
+  }
+
+  grouping neighbor-list-in-use-inter-rat-cell-cdma2000-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf band-class {
+      type uint32 {
+        range "0..17";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.BandClass";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.BandClass";
+    }
+    leaf arfcn {
+      type uint32 {
+        range "0..2047";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.ARFCN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.ARFCN";
+    }
+    leaf pn-offset {
+      type uint32 {
+        range "0..511";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.PNOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.PNOffset";
+    }
+    leaf type {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.Type";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.Type";
+    }
+    leaf cid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.CID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.CID";
+    }
+  }
+
+  grouping neighbor-list-in-use-inter-rat-cell-gsm-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf plmnid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.PLMNID";
+    }
+    leaf lac {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.LAC";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.LAC";
+    }
+    leaf bsic {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BSIC";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BSIC";
+    }
+    leaf ci {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.CI";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.CI";
+    }
+    leaf band-indicator {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BandIndicator";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BandIndicator";
+    }
+    leaf bccharfcn {
+      type uint32 {
+        range "0..1023";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BCCHARFCN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BCCHARFCN";
+    }
+  }
+
+  grouping neighbor-list-in-use-inter-rat-cell-umts-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf plmnid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.PLMNID";
+    }
+    leaf rncid {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.RNCID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.RNCID";
+    }
+    leaf cid {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.CID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.CID";
+    }
+    leaf lac {
+      type uint32 {
+        range "1..65533 | 65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.LAC";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.LAC";
+    }
+    leaf rac {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.RAC";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.RAC";
+    }
+    leaf ura {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.URA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.URA";
+    }
+    leaf uarfcnul {
+      type uint32 {
+        range "0..16383";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.UARFCNUL";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.UARFCNUL";
+    }
+    leaf uarfcndl {
+      type uint32 {
+        range "0..16383";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.UARFCNDL";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.UARFCNDL";
+    }
+    leaf pcpich-scrambling-code {
+      type uint32 {
+        range "0..511";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.PCPICHScramblingCode";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.PCPICHScramblingCode";
+    }
+    leaf pcpich-tx-power {
+      type int32 {
+        range "-100..500";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.PCPICHTxPower";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.PCPICHTxPower";
+    }
+  }
+
+  grouping neighbor-list-in-use-lte-cell-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf plmnid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.PLMNID";
+    }
+    leaf cid {
+      type uint32 {
+        range "0..268435455";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.CID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.CID";
+    }
+    leaf eutra-carrier-arfcn {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.EUTRACarrierARFCN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.EUTRACarrierARFCN";
+    }
+    leaf phy-cell-id {
+      type uint32 {
+        range "0..503";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.PhyCellID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.PhyCellID";
+    }
+    leaf q-offset {
+      type int32 {
+        range "-24..-8 | -6..6 | 8..24";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.QOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.QOffset";
+    }
+    leaf cio {
+      type int32 {
+        range "-24..-8 | -6..6 | 8..24";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.CIO";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.CIO";
+    }
+    leaf rs-tx-power {
+      type int32 {
+        range "-60..50";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.RSTxPower";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.RSTxPower";
+    }
+    leaf blacklisted {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.Blacklisted";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.Blacklisted";
+    }
+  }
+
+  grouping phy-antenna-info-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.AntennaInfo.";
+    leaf antenna-ports-count {
+      type uint32 {
+        range "1 | 2 | 4";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.AntennaInfo.AntennaPortsCount";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.AntennaInfo.AntennaPortsCount";
+    }
+  }
+
+  grouping phy-mbsfn-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.";
+    leaf neigh-cell-config {
+      type uint32 {
+        range "0..3";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.NeighCellConfig";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.NeighCellConfig";
+    }
+    leaf max-sf-config-list-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.MaxSFConfigListEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.MaxSFConfigListEntries";
+    }
+    leaf sf-config-list-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigListNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigListNumberOfEntries";
+    }
+  }
+
+  grouping mbsfn-sf-config-list-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.Alias";
+    }
+    leaf sync-stratum-id {
+      type uint32 {
+        range "1..8";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.SyncStratumID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.SyncStratumID";
+    }
+    leaf radio-frame-allocation-period {
+      type uint32 {
+        range "1..2 | 4 | 8 | 16 | 32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.RadioFrameAllocationPeriod";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.RadioFrameAllocationPeriod";
+    }
+    leaf radioframe-allocation-offset {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.RadioframeAllocationOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.RadioframeAllocationOffset";
+    }
+    leaf radio-frame-allocation-size {
+      type uint32 {
+        range "1 | 4";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.RadioFrameAllocationSize";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.RadioFrameAllocationSize";
+    }
+    leaf sub-frame-allocations {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.SubFrameAllocations";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.SubFrameAllocations";
+    }
+  }
+
+  grouping phy-pdsch-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.PDSCH.";
+    leaf pb {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PDSCH.Pb";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PDSCH.Pb";
+    }
+    leaf pa {
+      type int32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PDSCH.Pa";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PDSCH.Pa";
+    }
+  }
+
+  grouping phy-prach-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.";
+    leaf root-sequence-index {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.RootSequenceIndex";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.RootSequenceIndex";
+    }
+    leaf configuration-index {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.ConfigurationIndex";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.ConfigurationIndex";
+    }
+    leaf high-speed-flag {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.HighSpeedFlag";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.HighSpeedFlag";
+    }
+    leaf zero-correlation-zone-config {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.ZeroCorrelationZoneConfig";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.ZeroCorrelationZoneConfig";
+    }
+    leaf freq-offset {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.FreqOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.FreqOffset";
+    }
+  }
+
+  grouping phy-prs-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.";
+    leaf num-prs-resource-blocks {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.NumPRSResourceBlocks";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.NumPRSResourceBlocks";
+    }
+    leaf prs-configuration-index {
+      type uint32 {
+        range "0..4095";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.PRSConfigurationIndex";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.PRSConfigurationIndex";
+    }
+    leaf num-consecutive-prs-subfames {
+      type uint32 {
+        range "1..2 | 4 | 6";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.NumConsecutivePRSSubfames";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.NumConsecutivePRSSubfames";
+    }
+  }
+
+  grouping phy-pucch-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.";
+    leaf delta-pucch-shift {
+      type enumeration {
+        enum ds1 {
+          description
+            "Enum Value - ds1";
+        }
+        enum ds2 {
+          description
+            "Enum Value - ds2";
+        }
+        enum ds3 {
+          description
+            "Enum Value - ds3";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.DeltaPUCCHShift";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.DeltaPUCCHShift";
+    }
+    leaf nrbcqi {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.NRBCQI";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.NRBCQI";
+    }
+    leaf ncsan {
+      type uint32 {
+        range "0..7";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.NCSAN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.NCSAN";
+    }
+    leaf n1-pucchan {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.N1PUCCHAN";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.N1PUCCHAN";
+    }
+    leaf cqipucch-resource-index {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.CQIPUCCHResourceIndex";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.CQIPUCCHResourceIndex";
+    }
+    leaf k {
+      type uint32 {
+        range "1..4";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.K";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.K";
+    }
+  }
+
+  grouping phy-pusch-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.";
+    leaf nsb {
+      type uint32 {
+        range "1..4";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.NSB";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.NSB";
+    }
+    leaf hopping-mode {
+      type enumeration {
+        enum InterSubFrame {
+          description
+            "Enum Value - InterSubFrame";
+        }
+        enum IntraAndInterSubFrame {
+          description
+            "Enum Value - IntraAndInterSubFrame";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.HoppingMode";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.HoppingMode";
+    }
+    leaf hopping-offset {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.HoppingOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.HoppingOffset";
+    }
+    leaf enable64-qam {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.Enable64QAM";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.Enable64QAM";
+    }
+  }
+
+  grouping pusch-ulrs-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.";
+    leaf group-hopping-enabled {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.GroupHoppingEnabled";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.GroupHoppingEnabled";
+    }
+    leaf group-assignment-pusch {
+      type uint32 {
+        range "0..29";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.GroupAssignmentPUSCH";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.GroupAssignmentPUSCH";
+    }
+    leaf sequence-hopping-enabled {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.SequenceHoppingEnabled";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.SequenceHoppingEnabled";
+    }
+    leaf cyclic-shift {
+      type uint32 {
+        range "0..7";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.CyclicShift";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.CyclicShift";
+    }
+  }
+
+  grouping phy-srs-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.";
+    leaf srs-enabled {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.SRSEnabled";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.SRSEnabled";
+    }
+    leaf srs-bandwidth-config {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.SRSBandwidthConfig";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.SRSBandwidthConfig";
+    }
+    leaf srs-max-up-pts {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.SRSMaxUpPTS";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.SRSMaxUpPTS";
+    }
+    leaf ack-nack-srs-simultaneous-transmission {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.AckNackSRSSimultaneousTransmission";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.AckNackSRSSimultaneousTransmission";
+    }
+  }
+
+  grouping phy-tdd-frame-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.TDDFrame.";
+    leaf sub-frame-assignment {
+      type uint32 {
+        range "0..6";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.TDDFrame.SubFrameAssignment";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.TDDFrame.SubFrameAssignment";
+    }
+    leaf special-subframe-patterns {
+      type uint32 {
+        range "0..8";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.TDDFrame.SpecialSubframePatterns";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.TDDFrame.SpecialSubframePatterns";
+    }
+  }
+
+  grouping phy-ul-power-control-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.";
+    leaf p0-nominal-pusch {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.P0NominalPUSCH";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.P0NominalPUSCH";
+    }
+    leaf alpha {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.Alpha";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.Alpha";
+    }
+    leaf p0-nominal-pucch {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.P0NominalPUCCH";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.P0NominalPUCCH";
+    }
+    leaf delta-fpucch-format1 {
+      type int32 {
+        range "-2 | 0 | 2";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat1";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat1";
+    }
+    leaf delta-fpucch-format1b {
+      type uint32 {
+        range "1 | 3 | 5";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat1b";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat1b";
+    }
+    leaf delta-fpucch-format2 {
+      type int32 {
+        range "-2 | 0..2";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat2";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat2";
+    }
+    leaf delta-fpucch-format2a {
+      type int32 {
+        range "-2 | 0 | 2";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat2a";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat2a";
+    }
+    leaf delta-fpucch-format2b {
+      type int32 {
+        range "-2 | 0 | 2";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat2b";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaFPUCCHFormat2b";
+    }
+    leaf delta-preamble-msg3 {
+      type int32 {
+        range "-1..6";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaPreambleMsg3";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.DeltaPreambleMsg3";
+    }
+  }
+
+  grouping lte-ran-rf-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.RF.";
+    leaf earfcndl {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.EARFCNDL";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.EARFCNDL";
+    }
+    leaf earfcnul {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.EARFCNUL";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.EARFCNUL";
+    }
+    leaf freq-band-indicator {
+      type uint32 {
+        range "1..40";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.FreqBandIndicator";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.FreqBandIndicator";
+    }
+    leaf dl-bandwidth {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.DLBandwidth";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.DLBandwidth";
+    }
+    leaf ul-bandwidth {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.ULBandwidth";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.ULBandwidth";
+    }
+    leaf reference-signal-power {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.ReferenceSignalPower";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.ReferenceSignalPower";
+    }
+    leaf phy-cell-id {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.PhyCellID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.PhyCellID";
+    }
+    leaf psch-power-offset {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.PSCHPowerOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.PSCHPowerOffset";
+    }
+    leaf ssch-power-offset {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.SSCHPowerOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.SSCHPowerOffset";
+    }
+    leaf pbch-power-offset {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.PBCHPowerOffset";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RF.PBCHPowerOffset";
+    }
+  }
+
+  grouping rlc-sr-b1-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.";
+    leaf default-configuration {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.DefaultConfiguration";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.DefaultConfiguration";
+    }
+    leaf t-poll-retransmit {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.TPollRetransmit";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.TPollRetransmit";
+    }
+    leaf poll-pdu {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.PollPDU";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.PollPDU";
+    }
+    leaf poll-byte {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.PollByte";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.PollByte";
+    }
+    leaf max-retx-threshold {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.MaxRetxThreshold";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.MaxRetxThreshold";
+    }
+    leaf t-reordering {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.TReordering";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.TReordering";
+    }
+    leaf t-status-prohibit {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.TStatusProhibit";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.TStatusProhibit";
+    }
+  }
+
+  grouping rlc-sr-b2-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.";
+    leaf default-configuration {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.DefaultConfiguration";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.DefaultConfiguration";
+    }
+    leaf t-poll-retransmit {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.TPollRetransmit";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.TPollRetransmit";
+    }
+    leaf poll-pdu {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.PollPDU";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.PollPDU";
+    }
+    leaf poll-byte {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.PollByte";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.PollByte";
+    }
+    leaf max-retx-threshold {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.MaxRetxThreshold";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.MaxRetxThreshold";
+    }
+    leaf t-reordering {
+      type string {
+        length "min..128";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.TReordering";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.TReordering";
+    }
+    leaf t-status-prohibit {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.TStatusProhibit";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.TStatusProhibit";
+    }
+  }
+
+  grouping rrc-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.RRC.Stats.";
+    leaf att-conn-estab {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRC.Stats.AttConnEstab";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRC.Stats.AttConnEstab";
+    }
+    leaf fail-conn-estab {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRC.Stats.FailConnEstab";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRC.Stats.FailConnEstab";
+    }
+    leaf succ-conn-estab {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRC.Stats.SuccConnEstab";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRC.Stats.SuccConnEstab";
+    }
+  }
+
+  grouping ran-rrc-timers-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.";
+    leaf t300 {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T300";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T300";
+    }
+    leaf t301 {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T301";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T301";
+    }
+    leaf t302 {
+      type uint32 {
+        range "100 | 200 | 300 | 400 | 600 | 1000 | 1500 | 2000";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T302";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T302";
+    }
+    leaf t304-eutra {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T304EUTRA";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T304EUTRA";
+    }
+    leaf t304-irat {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T304IRAT";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T304IRAT";
+    }
+    leaf t310 {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T310";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T310";
+    }
+    leaf t311 {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T311";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T311";
+    }
+    leaf t320 {
+      type uint32 {
+        range "5 | 10 | 20 | 30 | 60 | 120 | 180";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T320";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.T320";
+    }
+    leaf n310 {
+      type uint32 {
+        range "1..4 | 6 | 8 | 10 | 20";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.N310";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.N310";
+    }
+    leaf n311 {
+      type uint32 {
+        range "1..6 | 8 | 10";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.N311";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.N311";
+    }
+  }
+
+  grouping rru-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.RRU.Stats.";
+    leaf prb-tot-dl {
+      type uint32 {
+        range "0..100";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRU.Stats.PrbTotDl";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRU.Stats.PrbTotDl";
+    }
+    leaf prb-tot-ul {
+      type uint32 {
+        range "0..100";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.RRU.Stats.PrbTotUl";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.RRU.Stats.PrbTotUl";
+    }
+  }
+
+  grouping ran-s1-ap-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.S1AP.";
+    leaf t-reloc-prep {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.S1AP.TRelocPrep";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.S1AP.TRelocPrep";
+    }
+    leaf t-reloc-overall {
+      type string {
+        length "min..512";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.S1AP.TRelocOverall";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.S1AP.TRelocOverall";
+    }
+  }
+
+  grouping ran-s1-u-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.RAN.S1U.";
+    leaf gtpu-echo-interval {
+      type uint32 {
+        range "0..60";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.RAN.S1U.GTPUEchoInterval";
+      reference
+        "FAPService.{i}.CellConfig.LTE.RAN.S1U.GTPUEchoInterval";
+    }
+  }
+
+  grouping lte-tunnel-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.LTE.Tunnel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.LTE.Tunnel.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.LTE.Tunnel.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.Tunnel.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.LTE.Tunnel.{i}.Alias";
+    }
+    leaf tunnel-ref {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.Tunnel.{i}.TunnelRef";
+      reference
+        "FAPService.{i}.CellConfig.LTE.Tunnel.{i}.TunnelRef";
+    }
+    leaf plmnid {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.LTE.Tunnel.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.LTE.Tunnel.{i}.PLMNID";
+    }
+  }
+
+  grouping cell-config-umts-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.";
+    leaf tunnel-instance {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.TunnelInstance";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.TunnelInstance";
+    }
+  }
+
+  grouping umts-cn-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.CN.";
+    leaf plmn-type {
+      type enumeration {
+        enum GSM-MAP {
+          description
+            "Enum Value - GSM-MAP";
+        }
+        enum ANSI-41 {
+          description
+            "Enum Value - ANSI-41";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PLMNType";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PLMNType";
+    }
+    leaf plmnid {
+      type string {
+        length "min..6";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PLMNID";
+    }
+    leaf equiv-plmnid {
+      type string {
+        length "min..6";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.EquivPLMNID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.EquivPLMNID";
+    }
+    leaf sac {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.SAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.SAC";
+    }
+    leaf broadcast-sac {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.BroadcastSAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.BroadcastSAC";
+    }
+    leaf lacrac {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.LACRAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.LACRAC";
+    }
+    leaf lac-in-use {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.LACInUse";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.LACInUse";
+    }
+    leaf rac-in-use {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.RACInUse";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.RACInUse";
+    }
+  }
+
+  grouping cn-cs-domain-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.CN.CSDomain.";
+    leaf t3212 {
+      type uint32 {
+        range "0..91800";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.T3212";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.T3212";
+    }
+    leaf imsi-attach-detach-enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.IMSIAttachDetachEnable";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.IMSIAttachDetachEnable";
+    }
+  }
+
+  grouping hho-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.";
+    leaf att3-g-macro-to-hnb-csho {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.Att3GMacroToHnbCSHO";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.Att3GMacroToHnbCSHO";
+    }
+    leaf succ3-g-macro-to-hnb-csho {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.Succ3GMacroToHnbCSHO";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.Succ3GMacroToHnbCSHO";
+    }
+    leaf att2-g-macro-to-hnb-csho {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.Att2GMacroToHnbCSHO";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.Att2GMacroToHnbCSHO";
+    }
+    leaf succ2-g-macro-to-hnb-csho {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.Succ2GMacroToHnbCSHO";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.Succ2GMacroToHnbCSHO";
+    }
+  }
+
+  grouping rab-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.";
+    leaf att-estab-cs {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.AttEstabCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.AttEstabCS";
+    }
+    leaf fail-estab-cs {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.FailEstabCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.FailEstabCS";
+    }
+    leaf succ-estab-cs {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.SuccEstabCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.SuccEstabCS";
+    }
+    leaf rel-drop-cs {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.RelDropCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.RelDropCS";
+    }
+  }
+
+  grouping cn-hho-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.CN.HHO.Stats.";
+    leaf succ-hnb-umts-intra-freq {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.HHO.Stats.SuccHnbUmtsIntraFreq";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.HHO.Stats.SuccHnbUmtsIntraFreq";
+    }
+    leaf att-hnb-umts-intra-freq {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.HHO.Stats.AttHnbUmtsIntraFreq";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.HHO.Stats.AttHnbUmtsIntraFreq";
+    }
+    leaf att-hnb-umts-inter-freq {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.HHO.Stats.AttHnbUmtsInterFreq";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.HHO.Stats.AttHnbUmtsInterFreq";
+    }
+  }
+
+  grouping cn-ps-domain-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.CN.PSDomain.";
+    leaf network-mode-operation-combined {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.NetworkModeOperationCombined";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.NetworkModeOperationCombined";
+    }
+  }
+
+  grouping ps-domain-rab-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.";
+    leaf att-estab-ps {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.AttEstabPS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.AttEstabPS";
+    }
+    leaf succ-estab-ps {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.SuccEstabPS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.SuccEstabPS";
+    }
+    leaf fail-estab-ps {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.FailEstabPS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.FailEstabPS";
+    }
+    leaf rel-drop-ps {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.RelDropPS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.RelDropPS";
+    }
+    leaf ul-num-user-bits-edch {
+      type uint64;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.ULNumUserBitsEDCH";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.ULNumUserBitsEDCH";
+    }
+    leaf ul-num-user-bits64-k {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.ULNumUserBits64K";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.ULNumUserBits64K";
+    }
+    leaf ul-num-user-bits128-k {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.ULNumUserBits128K";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.ULNumUserBits128K";
+    }
+    leaf ul-num-user-bits384-k {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.ULNumUserBits384K";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.ULNumUserBits384K";
+    }
+    leaf dl-num-user-bits-hsdpa {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.DLNumUserBitsHSDPA";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.DLNumUserBitsHSDPA";
+    }
+    leaf dl-num-user-bits64-k {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.DLNumUserBits64K";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.DLNumUserBits64K";
+    }
+    leaf dl-num-user-bits128-k {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.DLNumUserBits128K";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.DLNumUserBits128K";
+    }
+    leaf dl-num-user-bits384-k {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.DLNumUserBits384K";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.DLNumUserBits384K";
+    }
+    leaf lgw-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGWNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGWNumberOfEntries";
+    }
+  }
+
+  grouping rab-stats-lgw-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf correlation-id {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.CorrelationID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.CorrelationID";
+    }
+    leaf estab-direct-path-lgw-att-nbr {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.EstabDirectPathLGWAttNbr";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.EstabDirectPathLGWAttNbr";
+    }
+    leaf estab-direct-path-lgw-succ-nbr {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.EstabDirectPathLGWSuccNbr";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.EstabDirectPathLGWSuccNbr";
+    }
+    leaf estab-direct-path-lgw-fail-nbr {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.EstabDirectPathLGWFailNbr";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.EstabDirectPathLGWFailNbr";
+    }
+  }
+
+  grouping umts-rab-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAB.";
+    leaf rab-succ-estab-cs {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABSuccEstabCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABSuccEstabCS";
+    }
+    leaf rab-fail-estab-cs {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABFailEstabCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABFailEstabCS";
+    }
+    leaf rab-succ-estab-ps {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABSuccEstabPS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABSuccEstabPS";
+    }
+    leaf rab-fail-estab-ps {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABFailEstabPS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABFailEstabPS";
+    }
+    leaf rabcs-setup-time-mean {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABCSSetupTimeMean";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABCSSetupTimeMean";
+    }
+    leaf rabcs-setup-time-max {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABCSSetupTimeMax";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABCSSetupTimeMax";
+    }
+    leaf rabps-setup-time-mean {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABPSSetupTimeMean";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABPSSetupTimeMean";
+    }
+    leaf rabps-setup-time-max {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABPSSetupTimeMax";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAB.RABPSSetupTimeMax";
+    }
+    leaf fail-ho {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAB.FailHO";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAB.FailHO";
+    }
+    leaf succ-ho {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAB.SuccHO";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAB.SuccHO";
+    }
+  }
+
+  grouping umts-ran-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.";
+    leaf ura-list {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.URAList";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.URAList";
+    }
+    leaf ura-in-use {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.URAInUse";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.URAInUse";
+    }
+    leaf rncid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RNCID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RNCID";
+    }
+    leaf cell-id {
+      type uint32 {
+        range "min..268435455";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellID";
+    }
+    leaf t-rat-c {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.TRatC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.TRatC";
+    }
+    leaf t-raf-c {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.TRafC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.TRafC";
+    }
+    leaf n-raf-c {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NRafC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NRafC";
+    }
+    leaf tig-or {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.TigOR";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.TigOR";
+    }
+    leaf tin-tr {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.TinTR";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.TinTR";
+    }
+    leaf t-data-fwd {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.TDataFwd";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.TDataFwd";
+    }
+    leaf t-reloc-prep {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.TRelocPrep";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.TRelocPrep";
+    }
+    leaf t-reloc-overall {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.TRelocOverall";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.TRelocOverall";
+    }
+    leaf hnbid-realm {
+      type string {
+        length "min..182";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.HNBIDRealm";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.HNBIDRealm";
+    }
+    leaf hs-flag {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.HSFlag";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.HSFlag";
+    }
+    leaf hs-enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.HSEnable";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.HSEnable";
+    }
+    leaf num-of-hspdsc-hs {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NumOfHSPDSCHs";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NumOfHSPDSCHs";
+    }
+    leaf num-of-hsscc-hs {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NumOfHSSCCHs";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NumOfHSSCCHs";
+    }
+  }
+
+  grouping umts-ran-csg-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.CSG.";
+    leaf csg-indicator {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGIndicator";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGIndicator";
+    }
+    leaf uarfcndl-list {
+      type uint32;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CSG.UARFCNDLList";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CSG.UARFCNDLList";
+    }
+  }
+
+  grouping csg-csgpsc-split-info-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.";
+    leaf start-psc-range1-coefficient {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.StartPSCRange1Coefficient";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.StartPSCRange1Coefficient";
+    }
+    leaf number-of-ps-cs {
+      type enumeration {
+        enum 5 {
+          description
+            "Enum Value - 5";
+        }
+        enum 10 {
+          description
+            "Enum Value - 10";
+        }
+        enum 15 {
+          description
+            "Enum Value - 15";
+        }
+        enum 20 {
+          description
+            "Enum Value - 20";
+        }
+        enum 30 {
+          description
+            "Enum Value - 30";
+        }
+        enum 40 {
+          description
+            "Enum Value - 40";
+        }
+        enum 50 {
+          description
+            "Enum Value - 50";
+        }
+        enum 64 {
+          description
+            "Enum Value - 64";
+        }
+        enum 80 {
+          description
+            "Enum Value - 80";
+        }
+        enum 120 {
+          description
+            "Enum Value - 120";
+        }
+        enum 160 {
+          description
+            "Enum Value - 160";
+        }
+        enum 256 {
+          description
+            "Enum Value - 256";
+        }
+        enum alltherest {
+          description
+            "Enum Value - alltherest";
+        }
+        enum spare3 {
+          description
+            "Enum Value - spare3";
+        }
+        enum spare2 {
+          description
+            "Enum Value - spare2";
+        }
+        enum spare1 {
+          description
+            "Enum Value - spare1";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.NumberOfPSCs";
+    }
+    leaf psc-range2-offset {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.PSCRange2Offset";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.PSCRange2Offset";
+    }
+  }
+
+  grouping umts-ran-cell-restriction-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.";
+    leaf cell-barred {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.CellBarred";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.CellBarred";
+    }
+    leaf intra-freq-cell-reselection-indicator {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.IntraFreqCellReselectionIndicator";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.IntraFreqCellReselectionIndicator";
+    }
+    leaf t-barred {
+      type uint32 {
+        range "10 | 20 | 40 | 80 | 160 | 320 | 640 | 1280";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.TBarred";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.TBarred";
+    }
+    leaf access-class-barred-list-cs {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.AccessClassBarredListCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.AccessClassBarredListCS";
+    }
+    leaf access-class-barred-list-ps {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.AccessClassBarredListPS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.AccessClassBarredListPS";
+    }
+    leaf cell-reserved-for-operator-use {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.CellReservedForOperatorUse";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.CellReservedForOperatorUse";
+    }
+  }
+
+  grouping ran-cell-selection-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.";
+    leaf quality-measure-cpich {
+      type enumeration {
+        enum Ec/No {
+          description
+            "Enum Value - Ec/No";
+        }
+        enum RSCP {
+          description
+            "Enum Value - RSCP";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QualityMeasureCPICH";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QualityMeasureCPICH";
+    }
+    leaf qqual-min {
+      type int32 {
+        range "-24..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QqualMin";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QqualMin";
+    }
+    leaf qqual-min-offset {
+      type uint32 {
+        range "1..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QqualMinOffset";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QqualMinOffset";
+    }
+    leaf q-rx-lev-min {
+      type int32 {
+        range "-115..-25";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QRxLevMin";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QRxLevMin";
+    }
+    leaf delta-q-rx-lev-min {
+      type int32 {
+        range "-4 | -2";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.DeltaQRxLevMin";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.DeltaQRxLevMin";
+    }
+    leaf q-rx-lev-min-offset {
+      type uint32 {
+        range "2 | 4 | 6 | 8 | 10 | 12 | 14 | 16";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QRxLevMinOffset";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QRxLevMinOffset";
+    }
+    leaf q-hyst1s {
+      type uint32 {
+        range "0..40";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QHyst1s";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QHyst1s";
+    }
+    leaf q-hyst2s {
+      type uint32 {
+        range "0..40";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QHyst2s";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QHyst2s";
+    }
+    leaf t-reselections {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TReselections";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TReselections";
+    }
+    leaf s-intrasearch {
+      type int32 {
+        range "-32..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SIntrasearch";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SIntrasearch";
+    }
+    leaf s-intersearch {
+      type int32 {
+        range "-32..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SIntersearch";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SIntersearch";
+    }
+    leaf s-search-hcs {
+      type int32 {
+        range "-105..91";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SSearchHCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SSearchHCS";
+    }
+    leaf s-search-rat {
+      type int32 {
+        range "-32..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SSearchRAT";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SSearchRAT";
+    }
+    leaf shcsrat {
+      type int32 {
+        range "-105..91";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SHCSRAT";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SHCSRAT";
+    }
+    leaf s-limit-search-rat {
+      type int32 {
+        range "-32..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SLimitSearchRAT";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.SLimitSearchRAT";
+    }
+    leaf non-hcstcr-max {
+      type enumeration {
+        enum "not used" {
+          description
+            "Enum Value - not used";
+        }
+        enum 30 {
+          description
+            "Enum Value - 30";
+        }
+        enum 60 {
+          description
+            "Enum Value - 60";
+        }
+        enum 120 {
+          description
+            "Enum Value - 120";
+        }
+        enum 180 {
+          description
+            "Enum Value - 180";
+        }
+        enum 240 {
+          description
+            "Enum Value - 240";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMax";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMax";
+    }
+    leaf non-hcsncr {
+      type uint32 {
+        range "1..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSNCR";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSNCR";
+    }
+    leaf non-hcstcr-max-hyst {
+      type enumeration {
+        enum "not used" {
+          description
+            "Enum Value - not used";
+        }
+        enum 10 {
+          description
+            "Enum Value - 10";
+        }
+        enum 20 {
+          description
+            "Enum Value - 20";
+        }
+        enum 30 {
+          description
+            "Enum Value - 30";
+        }
+        enum 40 {
+          description
+            "Enum Value - 40";
+        }
+        enum 50 {
+          description
+            "Enum Value - 50";
+        }
+        enum 60 {
+          description
+            "Enum Value - 60";
+        }
+        enum 70 {
+          description
+            "Enum Value - 70";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMaxHyst";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NonHCSTCRMaxHyst";
+    }
+    leaf qhcs {
+      type uint32 {
+        range "0..99";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QHCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.QHCS";
+    }
+    leaf use-of-hcs {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.UseOfHCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.UseOfHCS";
+    }
+    leaf hcs-prio {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.HCSPrio";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.HCSPrio";
+    }
+    leaf tcr-max {
+      type enumeration {
+        enum "not used" {
+          description
+            "Enum Value - not used";
+        }
+        enum 30 {
+          description
+            "Enum Value - 30";
+        }
+        enum 60 {
+          description
+            "Enum Value - 60";
+        }
+        enum 120 {
+          description
+            "Enum Value - 120";
+        }
+        enum 180 {
+          description
+            "Enum Value - 180";
+        }
+        enum 240 {
+          description
+            "Enum Value - 240";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMax";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMax";
+    }
+    leaf ncr {
+      type uint32 {
+        range "1..16";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NCR";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.NCR";
+    }
+    leaf tcr-max-hyst {
+      type enumeration {
+        enum "not used" {
+          description
+            "Enum Value - not used";
+        }
+        enum 10 {
+          description
+            "Enum Value - 10";
+        }
+        enum 20 {
+          description
+            "Enum Value - 20";
+        }
+        enum 30 {
+          description
+            "Enum Value - 30";
+        }
+        enum 40 {
+          description
+            "Enum Value - 40";
+        }
+        enum 50 {
+          description
+            "Enum Value - 50";
+        }
+        enum 60 {
+          description
+            "Enum Value - 60";
+        }
+        enum 70 {
+          description
+            "Enum Value - 70";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMaxHyst";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.TCRMaxHyst";
+    }
+    leaf ue-tx-pwr-max-rach {
+      type int32 {
+        range "-50..33";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.UETxPwrMaxRACH";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.UETxPwrMaxRACH";
+    }
+  }
+
+  grouping ran-drx-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.DRX.";
+    leaf drx-cycle-length-coefficient-cs {
+      type uint32 {
+        range "6..9";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.DRX.DRXCycleLengthCoefficientCS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.DRX.DRXCycleLengthCoefficientCS";
+    }
+    leaf drx-cycle-length-coefficient-ps {
+      type uint32 {
+        range "6..9";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.DRX.DRXCycleLengthCoefficientPS";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.DRX.DRXCycleLengthCoefficientPS";
+    }
+    leaf utrandrx-cycle-length-coefficient {
+      type uint32 {
+        range "3..9";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.DRX.UTRANDRXCycleLengthCoefficient";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.DRX.UTRANDRXCycleLengthCoefficient";
+    }
+  }
+
+  grouping ran-inter-freq-meas-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.";
+    leaf measurement-quantity {
+      type enumeration {
+        enum "CPICH Ec/No" {
+          description
+            "Enum Value - CPICH Ec/No";
+        }
+        enum "CPICH RSCP" {
+          description
+            "Enum Value - CPICH RSCP";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.MeasurementQuantity";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.MeasurementQuantity";
+    }
+    leaf filter-coefficient {
+      type uint32 {
+        range "0..9 | 11 | 13 | 15 | 17 | 19";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.FilterCoefficient";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.FilterCoefficient";
+    }
+    leaf inter-frequency-event-identity {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.InterFrequencyEventIdentity";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.InterFrequencyEventIdentity";
+    }
+    leaf weighting-factor-event2a {
+      type uint32 {
+        range "0..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.WeightingFactorEvent2a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.WeightingFactorEvent2a";
+    }
+    leaf weighting-factor-event2b {
+      type uint32 {
+        range "0..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.WeightingFactorEvent2b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.WeightingFactorEvent2b";
+    }
+    leaf weighting-factor-event2d {
+      type uint32 {
+        range "0..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.WeightingFactorEvent2d";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.WeightingFactorEvent2d";
+    }
+    leaf weighting-factor-event2f {
+      type uint32 {
+        range "0..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.WeightingFactorEvent2f";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.WeightingFactorEvent2f";
+    }
+    leaf hysteresis-event2a {
+      type uint32 {
+        range "0..29";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.HysteresisEvent2a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.HysteresisEvent2a";
+    }
+    leaf hysteresis-event2b {
+      type uint32 {
+        range "0..29";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.HysteresisEvent2b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.HysteresisEvent2b";
+    }
+    leaf hysteresis-event2d {
+      type uint32 {
+        range "0..29";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.HysteresisEvent2d";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.HysteresisEvent2d";
+    }
+    leaf hysteresis-event2f {
+      type uint32 {
+        range "0..29";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.HysteresisEvent2f";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.HysteresisEvent2f";
+    }
+    leaf time-to-trigger-event2a {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.TimeToTriggerEvent2a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.TimeToTriggerEvent2a";
+    }
+    leaf time-to-trigger-event2b {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.TimeToTriggerEvent2b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.TimeToTriggerEvent2b";
+    }
+    leaf time-to-trigger-event2d {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.TimeToTriggerEvent2d";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.TimeToTriggerEvent2d";
+    }
+    leaf time-to-trigger-event2f {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.TimeToTriggerEvent2f";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.TimeToTriggerEvent2f";
+    }
+    leaf threshold-used-frequency-event2b {
+      type int32 {
+        range "-120..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.ThresholdUsedFrequencyEvent2b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.ThresholdUsedFrequencyEvent2b";
+    }
+    leaf threshold-used-frequency-event2d {
+      type int32 {
+        range "-120..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.ThresholdUsedFrequencyEvent2d";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.ThresholdUsedFrequencyEvent2d";
+    }
+    leaf threshold-used-frequency-event2f {
+      type int32 {
+        range "-120..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.ThresholdUsedFrequencyEvent2f";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.ThresholdUsedFrequencyEvent2f";
+    }
+    leaf instance-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.InstanceNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.InstanceNumberOfEntries";
+    }
+  }
+
+  grouping inter-freq-meas-instance-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.Alias";
+    }
+    leaf intra-frequency-event-identity {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.IntraFrequencyEventIdentity";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.IntraFrequencyEventIdentity";
+    }
+    leaf event-description {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.EventDescription";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.EventDescription";
+    }
+    leaf measurement-quantity {
+      type enumeration {
+        enum "CPICH Ec/No" {
+          description
+            "Enum Value - CPICH Ec/No";
+        }
+        enum "CPICH RSCP" {
+          description
+            "Enum Value - CPICH RSCP";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.MeasurementQuantity";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.MeasurementQuantity";
+    }
+    leaf filter-coefficient {
+      type uint32 {
+        range "0..9 | 11 | 13 | 15 | 17 | 19";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.FilterCoefficient";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.FilterCoefficient";
+    }
+    leaf weighting-factor {
+      type uint32 {
+        range "0..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.WeightingFactor";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.WeightingFactor";
+    }
+    leaf hysteresis {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.Hysteresis";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.Hysteresis";
+    }
+    leaf time-to-trigger {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.TimeToTrigger";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.TimeToTrigger";
+    }
+    leaf threshold-used-frequency {
+      type int32 {
+        range "-120..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.ThresholdUsedFrequency";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.ThresholdUsedFrequency";
+    }
+    leaf threshold-non-used-frequency {
+      type int32 {
+        range "-120..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.ThresholdNonUsedFrequency";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.ThresholdNonUsedFrequency";
+    }
+  }
+
+  grouping ran-inter-rat-meas-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.";
+    leaf gsm-filter-coefficient {
+      type uint32 {
+        range "0..9 | 11 | 13 | 15 | 17 | 19";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.GSMFilterCoefficient";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.GSMFilterCoefficient";
+    }
+    leaf bsic-verification-required {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.BSICVerificationRequired";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.BSICVerificationRequired";
+    }
+    leaf weighting-factor {
+      type uint32 {
+        range "0..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.WeightingFactor";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.WeightingFactor";
+    }
+    leaf hysteresis {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Hysteresis";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Hysteresis";
+    }
+    leaf time-to-trigger {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.TimeToTrigger";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.TimeToTrigger";
+    }
+    leaf threshold-own-system {
+      type int32 {
+        range "-115..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.ThresholdOwnSystem";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.ThresholdOwnSystem";
+    }
+    leaf threshold-other-system {
+      type int32 {
+        range "-115..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.ThresholdOtherSystem";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.ThresholdOtherSystem";
+    }
+    leaf instance-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.InstanceNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.InstanceNumberOfEntries";
+    }
+  }
+
+  grouping inter-rat-meas-instance-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.Alias";
+    }
+    leaf inter-rat-event-identity {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.InterRATEventIdentity";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.InterRATEventIdentity";
+    }
+    leaf event-description {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.EventDescription";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.EventDescription";
+    }
+    leaf filter-coefficient {
+      type uint32 {
+        range "0..9 | 11 | 13 | 15 | 17 | 19";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.FilterCoefficient";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.FilterCoefficient";
+    }
+    leaf bsic-verification-required {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.BSICVerificationRequired";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.BSICVerificationRequired";
+    }
+    leaf weighting-factor {
+      type uint32 {
+        range "0..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.WeightingFactor";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.WeightingFactor";
+    }
+    leaf hysteresis {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.Hysteresis";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.Hysteresis";
+    }
+    leaf time-to-trigger {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.TimeToTrigger";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.TimeToTrigger";
+    }
+    leaf threshold-own-system {
+      type int32 {
+        range "-115..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.ThresholdOwnSystem";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.ThresholdOwnSystem";
+    }
+    leaf threshold-other-system {
+      type int32 {
+        range "-115..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.ThresholdOtherSystem";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.ThresholdOtherSystem";
+    }
+  }
+
+  grouping ran-intra-freq-meas-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.";
+    leaf measurement-quantity {
+      type enumeration {
+        enum "CPICH Ec/No" {
+          description
+            "Enum Value - CPICH Ec/No";
+        }
+        enum "CPICH RSCP" {
+          description
+            "Enum Value - CPICH RSCP";
+        }
+        enum Pathloss {
+          description
+            "Enum Value - Pathloss";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.MeasurementQuantity";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.MeasurementQuantity";
+    }
+    leaf filter-coefficient {
+      type uint32 {
+        range "0..9 | 11 | 13 | 15 | 17 | 19";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.FilterCoefficient";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.FilterCoefficient";
+    }
+    leaf intra-frequency-event-identity {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.IntraFrequencyEventIdentity";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.IntraFrequencyEventIdentity";
+    }
+    leaf triggering-condition2-event1a {
+      type enumeration {
+        enum Active {
+          description
+            "Enum Value - Active";
+        }
+        enum Monitored {
+          description
+            "Enum Value - Monitored";
+        }
+        enum "Active and Monitored" {
+          description
+            "Enum Value - Active and Monitored";
+        }
+        enum Detected {
+          description
+            "Enum Value - Detected";
+        }
+        enum "Detected and Monitored" {
+          description
+            "Enum Value - Detected and Monitored";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition2Event1a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition2Event1a";
+    }
+    leaf triggering-condition1-event1b {
+      type enumeration {
+        enum Active {
+          description
+            "Enum Value - Active";
+        }
+        enum Monitored {
+          description
+            "Enum Value - Monitored";
+        }
+        enum "Active and Monitored" {
+          description
+            "Enum Value - Active and Monitored";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition1Event1b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition1Event1b";
+    }
+    leaf triggering-condition2-event1e {
+      type enumeration {
+        enum Active {
+          description
+            "Enum Value - Active";
+        }
+        enum Monitored {
+          description
+            "Enum Value - Monitored";
+        }
+        enum "Active and Monitored" {
+          description
+            "Enum Value - Active and Monitored";
+        }
+        enum Detected {
+          description
+            "Enum Value - Detected";
+        }
+        enum "Detected and Monitored" {
+          description
+            "Enum Value - Detected and Monitored";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition2Event1e";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition2Event1e";
+    }
+    leaf triggering-condition1-event1f {
+      type enumeration {
+        enum Active {
+          description
+            "Enum Value - Active";
+        }
+        enum Monitored {
+          description
+            "Enum Value - Monitored";
+        }
+        enum "Active and Monitored" {
+          description
+            "Enum Value - Active and Monitored";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition1Event1f";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TriggeringCondition1Event1f";
+    }
+    leaf reporting-range-event1a {
+      type uint32 {
+        range "0..29";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingRangeEvent1a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingRangeEvent1a";
+    }
+    leaf reporting-range-event1b {
+      type uint32 {
+        range "0..29";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingRangeEvent1b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingRangeEvent1b";
+    }
+    leaf weighting-factor-event1a {
+      type uint32 {
+        range "0..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.WeightingFactorEvent1a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.WeightingFactorEvent1a";
+    }
+    leaf weighting-factor-event1b {
+      type uint32 {
+        range "0..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.WeightingFactorEvent1b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.WeightingFactorEvent1b";
+    }
+    leaf report-deactivation-threshold-event1a {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportDeactivationThresholdEvent1a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportDeactivationThresholdEvent1a";
+    }
+    leaf reporting-amount-event1a {
+      type int32 {
+        range "-1 | 1..2 | 4 | 8 | 16 | 32 | 64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingAmountEvent1a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingAmountEvent1a";
+    }
+    leaf reporting-amount-event1c {
+      type int32 {
+        range "-1 | 1..2 | 4 | 8 | 16 | 32 | 64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingAmountEvent1c";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingAmountEvent1c";
+    }
+    leaf reporting-interval-event1a {
+      type uint32 {
+        range "0 | 250 | 500 | 1000 | 2000 | 4000 | 8000 | 16000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingIntervalEvent1a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingIntervalEvent1a";
+    }
+    leaf reporting-interval-event1c {
+      type uint32 {
+        range "0 | 250 | 500 | 1000 | 2000 | 4000 | 8000 | 16000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingIntervalEvent1c";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReportingIntervalEvent1c";
+    }
+    leaf hysteresis-event1a {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1a";
+    }
+    leaf hysteresis-event1b {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1b";
+    }
+    leaf hysteresis-event1c {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1c";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1c";
+    }
+    leaf hysteresis-event1d {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1d";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1d";
+    }
+    leaf hysteresis-event1e {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1e";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1e";
+    }
+    leaf hysteresis-event1f {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1f";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.HysteresisEvent1f";
+    }
+    leaf time-to-trigger-event1a {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1a";
+    }
+    leaf time-to-trigger-event1b {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1b";
+    }
+    leaf time-to-trigger-event1c {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1c";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1c";
+    }
+    leaf time-to-trigger-event1d {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1d";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1d";
+    }
+    leaf time-to-trigger-event1e {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1e";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1e";
+    }
+    leaf time-to-trigger-event1f {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1f";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.TimeToTriggerEvent1f";
+    }
+    leaf threshold-used-frequency-event1e {
+      type int32 {
+        range "-120..165";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ThresholdUsedFrequencyEvent1e";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ThresholdUsedFrequencyEvent1e";
+    }
+    leaf threshold-used-frequency-event1f {
+      type int32 {
+        range "-120..165";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ThresholdUsedFrequencyEvent1f";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ThresholdUsedFrequencyEvent1f";
+    }
+    leaf replacement-activation-threshold-event1c {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReplacementActivationThresholdEvent1c";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.ReplacementActivationThresholdEvent1c";
+    }
+    leaf instance-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.InstanceNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.InstanceNumberOfEntries";
+    }
+  }
+
+  grouping intra-freq-meas-instance-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.Alias";
+    }
+    leaf intra-frequency-event-identity {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.IntraFrequencyEventIdentity";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.IntraFrequencyEventIdentity";
+    }
+    leaf event-description {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.EventDescription";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.EventDescription";
+    }
+    leaf measurement-quantity {
+      type enumeration {
+        enum "CPICH Ec/No" {
+          description
+            "Enum Value - CPICH Ec/No";
+        }
+        enum "CPICH RSCP" {
+          description
+            "Enum Value - CPICH RSCP";
+        }
+        enum Pathloss {
+          description
+            "Enum Value - Pathloss";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.MeasurementQuantity";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.MeasurementQuantity";
+    }
+    leaf filter-coefficient {
+      type uint32 {
+        range "0..9 | 11 | 13 | 15 | 17 | 19";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.FilterCoefficient";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.FilterCoefficient";
+    }
+    leaf triggering-condition {
+      type enumeration {
+        enum Active {
+          description
+            "Enum Value - Active";
+        }
+        enum Monitored {
+          description
+            "Enum Value - Monitored";
+        }
+        enum "Active and Monitored" {
+          description
+            "Enum Value - Active and Monitored";
+        }
+        enum Detected {
+          description
+            "Enum Value - Detected";
+        }
+        enum "Detected and Monitored" {
+          description
+            "Enum Value - Detected and Monitored";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.TriggeringCondition";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.TriggeringCondition";
+    }
+    leaf reporting-range {
+      type uint32 {
+        range "0..29";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReportingRange";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReportingRange";
+    }
+    leaf weighting-factor {
+      type uint32 {
+        range "0..20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.WeightingFactor";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.WeightingFactor";
+    }
+    leaf report-deactivation-threshold {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReportDeactivationThreshold";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReportDeactivationThreshold";
+    }
+    leaf reporting-amount {
+      type int32 {
+        range "-1 | 1..2 | 4 | 8 | 16 | 32 | 64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReportingAmount";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReportingAmount";
+    }
+    leaf reporting-interval {
+      type uint32 {
+        range "0 | 250 | 500 | 1000 | 2000 | 4000 | 8000 | 16000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReportingInterval";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReportingInterval";
+    }
+    leaf hysteresis {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.Hysteresis";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.Hysteresis";
+    }
+    leaf time-to-trigger {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.TimeToTrigger";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.TimeToTrigger";
+    }
+    leaf threshold-used-frequency {
+      type int32 {
+        range "-120..165";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ThresholdUsedFrequency";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ThresholdUsedFrequency";
+    }
+    leaf replacement-activation-threshold {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReplacementActivationThreshold";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.ReplacementActivationThreshold";
+    }
+  }
+
+  grouping umts-ran-neighbor-list-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.";
+    leaf max-intra-freq-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.MaxIntraFreqCellEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.MaxIntraFreqCellEntries";
+    }
+    leaf max-inter-freq-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.MaxInterFreqCellEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.MaxInterFreqCellEntries";
+    }
+    leaf intra-freq-cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCellNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCellNumberOfEntries";
+    }
+    leaf inter-freq-cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCellNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCellNumberOfEntries";
+    }
+  }
+
+  grouping neighbor-list-inter-freq-cell-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.Alias";
+    }
+    leaf must-include {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.MustInclude";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.MustInclude";
+    }
+    leaf plmnid {
+      type string {
+        length "min..6";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.PLMNID";
+    }
+    leaf rncid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.RNCID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.RNCID";
+    }
+    leaf cid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.CID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.CID";
+    }
+    leaf lac {
+      type uint32 {
+        range "1..65533 | 65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.LAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.LAC";
+    }
+    leaf rac {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.RAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.RAC";
+    }
+    leaf ura {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.URA";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.URA";
+    }
+    leaf uarfcnul {
+      type uint32 {
+        range "0..16383";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.UARFCNUL";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.UARFCNUL";
+    }
+    leaf uarfcndl {
+      type uint32 {
+        range "0..16383";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.UARFCNDL";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.UARFCNDL";
+    }
+    leaf pcpich-scrambling-code {
+      type uint32 {
+        range "0..511";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.PCPICHScramblingCode";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.PCPICHScramblingCode";
+    }
+    leaf pcpich-tx-power {
+      type int32 {
+        range "-100..500";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.PCPICHTxPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.PCPICHTxPower";
+    }
+  }
+
+  grouping ran-neighbor-list-inter-rat-cell-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.";
+    leaf max-gsm-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.MaxGSMEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.MaxGSMEntries";
+    }
+    leaf gsm-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSMNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSMNumberOfEntries";
+    }
+  }
+
+  grouping neighbor-list-inter-rat-cell-gsm-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.Alias";
+    }
+    leaf must-include {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.MustInclude";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.MustInclude";
+    }
+    leaf plmnid {
+      type string {
+        length "min..6";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.PLMNID";
+    }
+    leaf lac {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.LAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.LAC";
+    }
+    leaf bsic {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.BSIC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.BSIC";
+    }
+    leaf ci {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.CI";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.CI";
+    }
+    leaf band-indicator {
+      type enumeration {
+        enum "GSM 850" {
+          description
+            "Enum Value - GSM 850";
+        }
+        enum "GSM 900" {
+          description
+            "Enum Value - GSM 900";
+        }
+        enum "DCS 1800" {
+          description
+            "Enum Value - DCS 1800";
+        }
+        enum "PCS 1900" {
+          description
+            "Enum Value - PCS 1900";
+        }
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.BandIndicator";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.BandIndicator";
+    }
+    leaf bccharfcn {
+      type uint32 {
+        range "0..1023";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.BCCHARFCN";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.BCCHARFCN";
+    }
+  }
+
+  grouping neighbor-list-intra-freq-cell-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.Enable";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.Alias";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.Alias";
+    }
+    leaf must-include {
+      type boolean;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.MustInclude";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.MustInclude";
+    }
+    leaf plmnid {
+      type string {
+        length "min..6";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.PLMNID";
+    }
+    leaf rncid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.RNCID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.RNCID";
+    }
+    leaf cid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.CID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.CID";
+    }
+    leaf lac {
+      type uint32 {
+        range "1..65533 | 65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.LAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.LAC";
+    }
+    leaf rac {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.RAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.RAC";
+    }
+    leaf ura {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.URA";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.URA";
+    }
+    leaf pcpich-scrambling-code {
+      type uint32 {
+        range "0..511";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.PCPICHScramblingCode";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.PCPICHScramblingCode";
+    }
+    leaf pcpich-tx-power {
+      type int32 {
+        range "-100..500";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.PCPICHTxPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.PCPICHTxPower";
+    }
+    leaf collocated-inter-freq-cell {
+      type uint32 {
+        range "0..268435455";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.CollocatedInterFreqCell";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.CollocatedInterFreqCell";
+    }
+    leaf max-tx-power {
+      type int32 {
+        range "-300..600";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.MaxTxPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.MaxTxPower";
+    }
+    leaf max-dpc-htx-power {
+      type int32 {
+        range "-400..500";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.MaxDPCHtxPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.MaxDPCHtxPower";
+    }
+  }
+
+  grouping umts-ran-neighbor-list-in-use-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.";
+    leaf max-intra-freq-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.MaxIntraFreqCellEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.MaxIntraFreqCellEntries";
+    }
+    leaf max-inter-freq-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.MaxInterFreqCellEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.MaxInterFreqCellEntries";
+    }
+    leaf intra-freq-cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCellNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCellNumberOfEntries";
+    }
+    leaf inter-freq-cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCellNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCellNumberOfEntries";
+    }
+  }
+
+  grouping neighbor-list-in-use-inter-freq-cell-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf plmnid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.PLMNID";
+    }
+    leaf rncid {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.RNCID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.RNCID";
+    }
+    leaf cid {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.CID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.CID";
+    }
+    leaf lac {
+      type uint32 {
+        range "1..65533 | 65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.LAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.LAC";
+    }
+    leaf rac {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.RAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.RAC";
+    }
+    leaf ura {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.URA";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.URA";
+    }
+    leaf uarfcnul {
+      type uint32 {
+        range "0..16383";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.UARFCNUL";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.UARFCNUL";
+    }
+    leaf uarfcndl {
+      type uint32 {
+        range "0..16383";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.UARFCNDL";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.UARFCNDL";
+    }
+    leaf pcpich-scrambling-code {
+      type uint32 {
+        range "0..511";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.PCPICHScramblingCode";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.PCPICHScramblingCode";
+    }
+  }
+
+  grouping ran-neighbor-list-in-use-inter-rat-cell-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.";
+    leaf max-gsm-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.MaxGSMEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.MaxGSMEntries";
+    }
+    leaf gsm-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSMNumberOfEntries";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSMNumberOfEntries";
+    }
+  }
+
+  grouping ran-neighbor-list-in-use-inter-rat-cell-gsm-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf plmnid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.PLMNID";
+    }
+    leaf lac {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.LAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.LAC";
+    }
+    leaf bsic {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BSIC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BSIC";
+    }
+    leaf ci {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.CI";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.CI";
+    }
+    leaf band-indicator {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BandIndicator";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BandIndicator";
+    }
+    leaf bccharfcn {
+      type uint32 {
+        range "0..1023";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BCCHARFCN";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.BCCHARFCN";
+    }
+  }
+
+  grouping neighbor-list-in-use-intra-freq-cell-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf plmnid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.PLMNID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.PLMNID";
+    }
+    leaf rncid {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.RNCID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.RNCID";
+    }
+    leaf cid {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.CID";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.CID";
+    }
+    leaf lac {
+      type uint32 {
+        range "1..65533 | 65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.LAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.LAC";
+    }
+    leaf rac {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.RAC";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.RAC";
+    }
+    leaf ura {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.URA";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.URA";
+    }
+    leaf pcpich-scrambling-code {
+      type uint32 {
+        range "0..511";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.PCPICHScramblingCode";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.PCPICHScramblingCode";
+    }
+  }
+
+  grouping umts-ran-power-control-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.";
+    leaf constant-value {
+      type int32 {
+        range "-35..-10";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.ConstantValue";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.ConstantValue";
+    }
+    leaf power-ramp-step-up {
+      type uint32 {
+        range "1..8";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.PowerRampStepUp";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.PowerRampStepUp";
+    }
+    leaf preamble-retrans-max {
+      type uint32 {
+        range "1..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.PreambleRetransMax";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.PreambleRetransMax";
+    }
+    leaf persistence-scale-factor {
+      type uint32 {
+        range "2..9";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.PersistenceScaleFactor";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.PersistenceScaleFactor";
+    }
+    leaf m-max {
+      type uint32 {
+        range "1..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.MMax";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.MMax";
+    }
+    leaf nb01-min {
+      type uint32 {
+        range "0..50";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.NB01Min";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.NB01Min";
+    }
+    leaf nb01-max {
+      type uint32 {
+        range "0..50";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.NB01Max";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.NB01Max";
+    }
+  }
+
+  grouping umts-ran-rf-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.RF.";
+    leaf uarfcndl {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.UARFCNDL";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.UARFCNDL";
+    }
+    leaf uarfcndl-in-use {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.UARFCNDLInUse";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.UARFCNDLInUse";
+    }
+    leaf uarfcnul-in-use {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.UARFCNULInUse";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.UARFCNULInUse";
+    }
+    leaf uarfcndl-to-protect {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.UARFCNDLToProtect";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.UARFCNDLToProtect";
+    }
+    leaf primary-scrambling-code {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PrimaryScramblingCode";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PrimaryScramblingCode";
+    }
+    leaf primary-scrambling-code-in-use {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PrimaryScramblingCodeInUse";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PrimaryScramblingCodeInUse";
+    }
+    leaf max-fap-tx-power-expanded {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxFAPTxPowerExpanded";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxFAPTxPowerExpanded";
+    }
+    leaf max-fap-tx-power-in-use-expanded {
+      type int32 {
+        range "-300..200";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxFAPTxPowerInUseExpanded";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxFAPTxPowerInUseExpanded";
+    }
+    leaf max-ul-tx-power {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxULTxPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxULTxPower";
+    }
+    leaf max-ul-tx-power-in-use {
+      type int32 {
+        range "-50..33";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxULTxPowerInUse";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxULTxPowerInUse";
+    }
+    leaf pcpich-power {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PCPICHPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PCPICHPower";
+    }
+    leaf pcpich-power-in-use {
+      type int32 {
+        range "-100..200";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PCPICHPowerInUse";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PCPICHPowerInUse";
+    }
+    leaf power-offset-pilot-dpdch {
+      type uint32 {
+        range "0..24";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PowerOffsetPilotDPDCH";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PowerOffsetPilotDPDCH";
+    }
+    leaf fap-coverage-target {
+      type uint32 {
+        range "50..150";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.FAPCoverageTarget";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.FAPCoverageTarget";
+    }
+    leaf fap-quality-target-ec-io {
+      type int32 {
+        range "-200..0";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.FAPQualityTargetEcIo";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.FAPQualityTargetEcIo";
+    }
+    leaf psch-power {
+      type int32 {
+        range "-350..150";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PSCHPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PSCHPower";
+    }
+    leaf ssch-power {
+      type int32 {
+        range "-350..150";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.SSCHPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.SSCHPower";
+    }
+    leaf pich-power {
+      type int32 {
+        range "-10..5";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PICHPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PICHPower";
+    }
+    leaf pch-power {
+      type int32 {
+        range "-350..150";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PCHPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.PCHPower";
+    }
+    leaf fach-power {
+      type int32 {
+        range "-350..150";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.FACHPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.FACHPower";
+    }
+    leaf bch-power {
+      type int32 {
+        range "-350..150";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.BCHPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.BCHPower";
+    }
+    leaf aich-power {
+      type int32 {
+        range "-22..5";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.AICHPower";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.AICHPower";
+    }
+    leaf ctch-allocation-period {
+      type uint32 {
+        range "1..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.CTCHAllocationPeriod";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.CTCHAllocationPeriod";
+    }
+    leaf cbs-frame-offset {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.CBSFrameOffset";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.CBSFrameOffset";
+    }
+    leaf max-tti {
+      type uint32 {
+        range "1..255";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxTTI";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.MaxTTI";
+    }
+    leaf noise-rise-limit-lower-value {
+      type uint32 {
+        range "0..500";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.NoiseRiseLimitLowerValue";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.NoiseRiseLimitLowerValue";
+    }
+    leaf noise-rise-limit-upper-value {
+      type uint32 {
+        range "0..500";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.NoiseRiseLimitUpperValue";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.NoiseRiseLimitUpperValue";
+    }
+    leaf noise-rise-limit-in-use {
+      type uint32 {
+        range "0..500";
+      }
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.NoiseRiseLimitInUse";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RF.NoiseRiseLimitInUse";
+    }
+  }
+
+  grouping ran-rrc-stats-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.RRC.Stats.";
+    leaf att-conn-estab {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRC.Stats.AttConnEstab";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRC.Stats.AttConnEstab";
+    }
+    leaf fail-conn-estab {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRC.Stats.FailConnEstab";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRC.Stats.FailConnEstab";
+    }
+    leaf succ-conn-estab {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRC.Stats.SuccConnEstab";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRC.Stats.SuccConnEstab";
+    }
+  }
+
+  grouping umts-ran-rrc-timers-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.";
+    leaf t300 {
+      type uint32 {
+        range "100..8000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T300";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T300";
+    }
+    leaf t301 {
+      type uint32 {
+        range "100..8000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T301";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T301";
+    }
+    leaf t302 {
+      type uint32 {
+        range "100..8000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T302";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T302";
+    }
+    leaf t304 {
+      type uint32 {
+        range "100 | 200 | 400 | 1000 | 2000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T304";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T304";
+    }
+    leaf t305 {
+      type int32 {
+        range "-1 | 5 | 10 | 30 | 60 | 120 | 360 | 720";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T305";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T305";
+    }
+    leaf t307 {
+      type uint32 {
+        range "5 | 10 | 15 | 20 | 30 | 40 | 50";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T307";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T307";
+    }
+    leaf t308 {
+      type uint32 {
+        range "40 | 80 | 160 | 320";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T308";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T308";
+    }
+    leaf t309 {
+      type uint32 {
+        range "1..8";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T309";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T309";
+    }
+    leaf t310 {
+      type uint32 {
+        range "40 | 80 | 120 | 160 | 200 | 240 | 280 | 320";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T310";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T310";
+    }
+    leaf t311 {
+      type uint32 {
+        range "250 | 500 | 750 | 1000 | 1250 | 1500 | 1750 | 2000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T311";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T311";
+    }
+    leaf t312 {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T312";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T312";
+    }
+    leaf t313 {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T313";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T313";
+    }
+    leaf t314 {
+      type uint32 {
+        range "0 | 2 | 4 | 6 | 8 | 12 | 16 | 20";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T314";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T314";
+    }
+    leaf t315 {
+      type uint32 {
+        range "0 | 10 | 30 | 60 | 180 | 600 | 1200 | 1800";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T315";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T315";
+    }
+    leaf t316 {
+      type int32 {
+        range "-1 | 0 | 10 | 20 | 30 | 40 | 50";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T316";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T316";
+    }
+    leaf t317 {
+      type uint32 {
+        range "0 | 10 | 30 | 60 | 180 | 600 | 1200 | 1800";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T317";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.T317";
+    }
+    leaf n300 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N300";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N300";
+    }
+    leaf n301 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N301";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N301";
+    }
+    leaf n302 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N302";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N302";
+    }
+    leaf n304 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N304";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N304";
+    }
+    leaf n310 {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N310";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N310";
+    }
+    leaf n312 {
+      type uint32 {
+        range "1..1000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N312";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N312";
+    }
+    leaf n313 {
+      type uint32 {
+        range "1 | 2 | 4 | 10 | 20 | 50 | 100 | 200";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N313";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N313";
+    }
+    leaf n315 {
+      type uint32 {
+        range "1..1000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N315";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.N315";
+    }
+    leaf wait-time {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.WaitTime";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.WaitTime";
+    }
+  }
+
+  grouping ran-ue-internal-meas-g {
+    description
+      "Grouping object for FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.";
+    leaf filter-coefficient {
+      type uint32 {
+        range "0..9 | 11 | 13 | 15 | 17 | 19";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.FilterCoefficient";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.FilterCoefficient";
+    }
+    leaf ue-tx-pwr-threshold-event6a {
+      type int32 {
+        range "-50..33";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.UETxPwrThresholdEvent6a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.UETxPwrThresholdEvent6a";
+    }
+    leaf time-to-trigger-event6a {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.TimeToTriggerEvent6a";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.TimeToTriggerEvent6a";
+    }
+    leaf ue-tx-pwr-threshold-event6b {
+      type int32 {
+        range "-50..33";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.UETxPwrThresholdEvent6b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.UETxPwrThresholdEvent6b";
+    }
+    leaf time-to-trigger-event6b {
+      type uint32 {
+        range "0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 | 160 | 200 | 240 | 320 | 640 | 1280 | 2560 | 5000";
+      }
+      description
+        "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.TimeToTriggerEvent6b";
+      reference
+        "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.TimeToTriggerEvent6b";
+    }
+  }
+
+  grouping fap-service-fap-control-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.";
+    leaf self-config-events {
+      type enumeration {
+        enum InitialREM {
+          description
+            "Enum Value - InitialREM";
+        }
+      }
+      description
+        "FAPService.{i}.FAPControl.SelfConfigEvents";
+      reference
+        "FAPService.{i}.FAPControl.SelfConfigEvents";
+    }
+    leaf enclosure-tampering-detected {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.EnclosureTamperingDetected";
+      reference
+        "FAPService.{i}.FAPControl.EnclosureTamperingDetected";
+    }
+  }
+
+  grouping fap-control-cdma2000-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.";
+    leaf home-domain {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HomeDomain";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HomeDomain";
+    }
+    leaf remote-ip-access-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.RemoteIPAccessEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.RemoteIPAccessEnable";
+    }
+    leaf pm-config {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.PMConfig";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.PMConfig";
+    }
+  }
+
+  grouping cdma2000-gateway-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.Gateway.";
+    leaf sec-gw-server1 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.Gateway.SecGWServer1";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.Gateway.SecGWServer1";
+    }
+    leaf sec-gw-server2 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.Gateway.SecGWServer2";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.Gateway.SecGWServer2";
+    }
+    leaf sec-gw-server3 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.Gateway.SecGWServer3";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.Gateway.SecGWServer3";
+    }
+    leaf sec-gw-switchover-count {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.Gateway.SecGWSwitchoverCount";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.Gateway.SecGWSwitchoverCount";
+    }
+  }
+
+  grouping fap-control-cdma2000-hrpd-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.HRPD.";
+    leaf op-state {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.OpState";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.OpState";
+    }
+    leaf admin-state {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.AdminState";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.AdminState";
+    }
+    leaf rf-tx-status {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.RFTxStatus";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.RFTxStatus";
+    }
+    leaf a13-session-transfer-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13SessionTransferEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13SessionTransferEnable";
+    }
+    leaf local-ip-access-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.LocalIPAccessEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.LocalIPAccessEnable";
+    }
+  }
+
+  grouping hrpd-a13-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.";
+    leaf color-code-to-uati104-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104NumberOfEntries";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104NumberOfEntries";
+    }
+    leaf hrpd-subnet-to-ip-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIPNumberOfEntries";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIPNumberOfEntries";
+    }
+  }
+
+  grouping a13-color-code-to-uati104-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.Enable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.Alias";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.Alias";
+    }
+    leaf color-code {
+      type uint32 {
+        range "0..256";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.ColorCode";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.ColorCode";
+    }
+    leaf uati104 {
+      type string {
+        length "0..13";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.UATI104";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.UATI104";
+    }
+  }
+
+  grouping a13-hrpd-subnet-to-ip-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.Enable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.Alias";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.Alias";
+    }
+    leaf hrpd-subnet-length {
+      type uint32 {
+        range "1..104";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.HRPDSubnetLength";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.HRPDSubnetLength";
+    }
+    leaf hrpd-subnet {
+      type string {
+        length "0..13";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.HRPDSubnet";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.HRPDSubnet";
+    }
+    leaf a13-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.A13IPAddress";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.A13IPAddress";
+    }
+  }
+
+  grouping cdma2000-hrpd-self-config-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.";
+    leaf rfcnfl-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.RFCNFLSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.RFCNFLSelfConfigEnable";
+    }
+    leaf pilot-pn-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.PilotPNSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.PilotPNSelfConfigEnable";
+    }
+    leaf max-fap-tx-power-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.MaxFAPTxPowerSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.MaxFAPTxPowerSelfConfigEnable";
+    }
+    leaf max-hrpd-beacon-tx-power-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.MaxHRPDBeaconTxPowerSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.MaxHRPDBeaconTxPowerSelfConfigEnable";
+    }
+  }
+
+  grouping fap-control-cdma2000-one-x-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.OneX.";
+    leaf admin-state {
+      type enumeration {
+        enum Lock {
+          description
+            "Enum Value - Lock";
+        }
+        enum Unlock {
+          description
+            "Enum Value - Unlock";
+        }
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.AdminState";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.AdminState";
+    }
+    leaf op-state {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.OpState";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.OpState";
+    }
+    leaf rf-tx-status {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.RFTxStatus";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.RFTxStatus";
+    }
+    leaf daylight {
+      type int32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.Daylight";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.Daylight";
+    }
+    leaf max-p-rev {
+      type int32 {
+        range "6..9";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.MaxPRev";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.MaxPRev";
+    }
+    leaf reregister {
+      type uint32;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.Reregister";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.Reregister";
+    }
+    leaf emergency-session-period {
+      type uint32 {
+        range "15..1800";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.EmergencySessionPeriod";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.EmergencySessionPeriod";
+    }
+    leaf location-area-code {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.LocationAreaCode";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.LocationAreaCode";
+    }
+    leaf msc-id {
+      type uint32;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.MSCId";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.MSCId";
+    }
+    leaf active-handin-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinEnable";
+    }
+  }
+
+  grouping one-x-active-handin-measurement-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.";
+    leaf active-handin-measurement-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.ActiveHandinMeasurementEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.ActiveHandinMeasurementEnable";
+    }
+    leaf active-hand-in-measurement-duration {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.ActiveHandInMeasurementDuration";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.ActiveHandInMeasurementDuration";
+    }
+    leaf measurement-report-threshold {
+      type int32 {
+        range "-150..0";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.MeasurementReportThreshold";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.MeasurementReportThreshold";
+    }
+  }
+
+  grouping cdma2000-one-x-self-config-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.";
+    leaf rfcnfl-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.RFCNFLSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.RFCNFLSelfConfigEnable";
+    }
+    leaf pilot-pn-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.PilotPNSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.PilotPNSelfConfigEnable";
+    }
+    leaf max-fap-tx-power-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.MaxFAPTxPowerSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.MaxFAPTxPowerSelfConfigEnable";
+    }
+    leaf max-fap-beacon-tx-power-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.MaxFAPBeaconTxPowerSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.MaxFAPBeaconTxPowerSelfConfigEnable";
+    }
+  }
+
+  grouping cdma2000-time-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.CDMA2000.Time.";
+    leaf local-time-zone {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.Time.LocalTimeZone";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.Time.LocalTimeZone";
+    }
+    leaf current-local-time {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.Time.CurrentLocalTime";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.Time.CurrentLocalTime";
+    }
+    leaf leap-seconds {
+      type int32 {
+        range "0..255";
+      }
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.Time.LeapSeconds";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.Time.LeapSeconds";
+    }
+    leaf daylight-savings-used {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.CDMA2000.Time.DaylightSavingsUsed";
+      reference
+        "FAPService.{i}.FAPControl.CDMA2000.Time.DaylightSavingsUsed";
+    }
+  }
+
+  grouping fap-control-lte-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.LTE.";
+    leaf op-state {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.LTE.OpState";
+      reference
+        "FAPService.{i}.FAPControl.LTE.OpState";
+    }
+    leaf admin-state {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.LTE.AdminState";
+      reference
+        "FAPService.{i}.FAPControl.LTE.AdminState";
+    }
+    leaf rf-tx-status {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.LTE.RFTxStatus";
+      reference
+        "FAPService.{i}.FAPControl.LTE.RFTxStatus";
+    }
+    leaf pm-config {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.FAPControl.LTE.PMConfig";
+      reference
+        "FAPService.{i}.FAPControl.LTE.PMConfig";
+    }
+  }
+
+  grouping lte-gateway-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.LTE.Gateway.";
+    leaf sec-gw-server1 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.LTE.Gateway.SecGWServer1";
+      reference
+        "FAPService.{i}.FAPControl.LTE.Gateway.SecGWServer1";
+    }
+    leaf sec-gw-server2 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.LTE.Gateway.SecGWServer2";
+      reference
+        "FAPService.{i}.FAPControl.LTE.Gateway.SecGWServer2";
+    }
+    leaf sec-gw-server3 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.LTE.Gateway.SecGWServer3";
+      reference
+        "FAPService.{i}.FAPControl.LTE.Gateway.SecGWServer3";
+    }
+    leaf s1-sig-link-server-list {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.FAPControl.LTE.Gateway.S1SigLinkServerList";
+      reference
+        "FAPService.{i}.FAPControl.LTE.Gateway.S1SigLinkServerList";
+    }
+    leaf s1-connection-mode {
+      type enumeration {
+        enum One {
+          description
+            "Enum Value - One";
+        }
+        enum All {
+          description
+            "Enum Value - All";
+        }
+      }
+      description
+        "FAPService.{i}.FAPControl.LTE.Gateway.S1ConnectionMode";
+      reference
+        "FAPService.{i}.FAPControl.LTE.Gateway.S1ConnectionMode";
+    }
+    leaf s1-sig-link-port {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "FAPService.{i}.FAPControl.LTE.Gateway.S1SigLinkPort";
+      reference
+        "FAPService.{i}.FAPControl.LTE.Gateway.S1SigLinkPort";
+    }
+  }
+
+  grouping fap-control-umts-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.UMTS.";
+    leaf op-state {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.UMTS.OpState";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.OpState";
+    }
+    leaf admin-state {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.AdminState";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.AdminState";
+    }
+    leaf rf-tx-status {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.FAPControl.UMTS.RFTxStatus";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.RFTxStatus";
+    }
+    leaf pm-config {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.FAPControl.UMTS.PMConfig";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.PMConfig";
+    }
+  }
+
+  grouping umts-gateway-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.UMTS.Gateway.";
+    leaf sec-gw-server1 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.UMTS.Gateway.SecGWServer1";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.Gateway.SecGWServer1";
+    }
+    leaf sec-gw-server2 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.UMTS.Gateway.SecGWServer2";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.Gateway.SecGWServer2";
+    }
+    leaf sec-gw-server3 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.UMTS.Gateway.SecGWServer3";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.Gateway.SecGWServer3";
+    }
+    leaf fapgw-server1 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.UMTS.Gateway.FAPGWServer1";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.Gateway.FAPGWServer1";
+    }
+    leaf fapgw-server2 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.UMTS.Gateway.FAPGWServer2";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.Gateway.FAPGWServer2";
+    }
+    leaf fapgw-server3 {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.FAPControl.UMTS.Gateway.FAPGWServer3";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.Gateway.FAPGWServer3";
+    }
+    leaf fapgw-port {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "FAPService.{i}.FAPControl.UMTS.Gateway.FAPGWPort";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.Gateway.FAPGWPort";
+    }
+  }
+
+  grouping fap-control-umts-self-config-g {
+    description
+      "Grouping object for FAPService.{i}.FAPControl.UMTS.SelfConfig.";
+    leaf uarfcn-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.UARFCNSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.UARFCNSelfConfigEnable";
+    }
+    leaf primary-scrambling-code-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.PrimaryScramblingCodeSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.PrimaryScramblingCodeSelfConfigEnable";
+    }
+    leaf max-fap-tx-power-expanded-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.MaxFAPTxPowerExpandedSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.MaxFAPTxPowerExpandedSelfConfigEnable";
+    }
+    leaf pcpich-power-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.PCPICHPowerSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.PCPICHPowerSelfConfigEnable";
+    }
+    leaf max-ul-tx-power-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.MaxULTxPowerSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.MaxULTxPowerSelfConfigEnable";
+    }
+    leaf lacracura-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.LACRACURASelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.LACRACURASelfConfigEnable";
+    }
+    leaf neighbor-list-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.NeighborListSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.NeighborListSelfConfigEnable";
+    }
+    leaf cell-re-selection-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.CellReSelectionSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.CellReSelectionSelfConfigEnable";
+    }
+    leaf intra-freq-meas-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.IntraFreqMeasSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.IntraFreqMeasSelfConfigEnable";
+    }
+    leaf inter-freq-meas-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.InterFreqMeasSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.InterFreqMeasSelfConfigEnable";
+    }
+    leaf inter-rat-meas-self-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.InterRATMeasSelfConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.InterRATMeasSelfConfigEnable";
+    }
+    leaf ue-internal-meas-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.UEInternalMeasConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.UEInternalMeasConfigEnable";
+    }
+    leaf noise-rise-limit-config-enable {
+      type boolean;
+      description
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.NoiseRiseLimitConfigEnable";
+      reference
+        "FAPService.{i}.FAPControl.UMTS.SelfConfig.NoiseRiseLimitConfigEnable";
+    }
+  }
+
+  grouping rem-cdma2000-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.";
+    leaf in-service-handling {
+      type enumeration {
+        enum Immediate {
+          description
+            "Enum Value - Immediate";
+        }
+        enum Delayed {
+          description
+            "Enum Value - Delayed";
+        }
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.InServiceHandling";
+      reference
+        "FAPService.{i}.REM.CDMA2000.InServiceHandling";
+    }
+    leaf scan-on-boot {
+      type boolean;
+      description
+        "FAPService.{i}.REM.CDMA2000.ScanOnBoot";
+      reference
+        "FAPService.{i}.REM.CDMA2000.ScanOnBoot";
+    }
+    leaf scan-now {
+      type boolean;
+      description
+        "FAPService.{i}.REM.CDMA2000.ScanNow";
+      reference
+        "FAPService.{i}.REM.CDMA2000.ScanNow";
+    }
+    leaf return-timer {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.ReturnTimer";
+      reference
+        "FAPService.{i}.REM.CDMA2000.ReturnTimer";
+    }
+    leaf scan-periodically {
+      type boolean;
+      description
+        "FAPService.{i}.REM.CDMA2000.ScanPeriodically";
+      reference
+        "FAPService.{i}.REM.CDMA2000.ScanPeriodically";
+    }
+    leaf periodic-interval {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.PeriodicInterval";
+      reference
+        "FAPService.{i}.REM.CDMA2000.PeriodicInterval";
+    }
+    leaf periodic-time {
+      type string;
+      description
+        "FAPService.{i}.REM.CDMA2000.PeriodicTime";
+      reference
+        "FAPService.{i}.REM.CDMA2000.PeriodicTime";
+    }
+    leaf report-overheads {
+      type enumeration {
+        enum All {
+          description
+            "Enum Value - All";
+        }
+        enum OneX {
+          description
+            "Enum Value - OneX";
+        }
+        enum HRPD {
+          description
+            "Enum Value - HRPD";
+        }
+        enum None {
+          description
+            "Enum Value - None";
+        }
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.ReportOverheads";
+      reference
+        "FAPService.{i}.REM.CDMA2000.ReportOverheads";
+    }
+    leaf scan-timeout {
+      type uint32;
+      description
+        "FAPService.{i}.REM.CDMA2000.ScanTimeout";
+      reference
+        "FAPService.{i}.REM.CDMA2000.ScanTimeout";
+    }
+    leaf scan-status {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.ScanStatus";
+      reference
+        "FAPService.{i}.REM.CDMA2000.ScanStatus";
+    }
+    leaf error-details {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.ErrorDetails";
+      reference
+        "FAPService.{i}.REM.CDMA2000.ErrorDetails";
+    }
+    leaf last-scan-time {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.LastScanTime";
+      reference
+        "FAPService.{i}.REM.CDMA2000.LastScanTime";
+    }
+  }
+
+  grouping rem-cdma2000-hrpd-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.HRPD.";
+    leaf max-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.MaxCellEntries";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.MaxCellEntries";
+    }
+    leaf cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.CellNumberOfEntries";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.CellNumberOfEntries";
+    }
+    leaf max-channel-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.MaxChannelEntries";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.MaxChannelEntries";
+    }
+    leaf channel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.ChannelNumberOfEntries";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.ChannelNumberOfEntries";
+    }
+  }
+
+  grouping cell-control-channel-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.";
+    leaf color-code {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.ColorCode";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.ColorCode";
+    }
+    leaf sector-id {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.SectorID";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.SectorID";
+    }
+    leaf subnet-mask {
+      type int32 {
+        range "0..104";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.SubnetMask";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.SubnetMask";
+    }
+    leaf country-code {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.CountryCode";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.CountryCode";
+    }
+    leaf latitude {
+      type int32 {
+        range "-1296000..1296000";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.Latitude";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.Latitude";
+    }
+    leaf longitude {
+      type int32 {
+        range "-2592000..2592000";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.Longitude";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.Longitude";
+    }
+  }
+
+  grouping cell-rf-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.";
+    leaf band {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.Band";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.Band";
+    }
+    leaf rfcnfl {
+      type uint32 {
+        range "0..2016";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.RFCNFL";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.RFCNFL";
+    }
+    leaf io {
+      type int32 {
+        range "-105..-25";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.Io";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.Io";
+    }
+    leaf p-ilot-pn {
+      type uint32 {
+        range "0..511";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.PIlotPN";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.PIlotPN";
+    }
+    leaf p-ilot-pn-phase {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.PIlotPNPhase";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.PIlotPNPhase";
+    }
+    leaf pilot-strength-ecp {
+      type int32 {
+        range "-130..-25";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.PilotStrengthEcp";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.PilotStrengthEcp";
+    }
+    leaf pilot-strength-ecp-io {
+      type int32 {
+        range "-25..0";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.PilotStrengthEcpIo";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.PilotStrengthEcpIo";
+    }
+    leaf overheads-available {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.OverheadsAvailable";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.OverheadsAvailable";
+    }
+  }
+
+  grouping hrpd-channel-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.Enable";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.Alias";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.Alias";
+    }
+    leaf sniffing-band-class {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.SniffingBandClass";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.SniffingBandClass";
+    }
+    leaf sniffing-channel-number {
+      type uint32 {
+        range "0..2016";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.SniffingChannelNumber";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.SniffingChannelNumber";
+    }
+    leaf pn-list {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.PNList";
+      reference
+        "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.PNList";
+    }
+  }
+
+  grouping cdma2000-macro-timing-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.MacroTiming.";
+    leaf admin-state {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.AdminState";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.AdminState";
+    }
+    leaf tracking-channel-number {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.TrackingChannelNumber";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.TrackingChannelNumber";
+    }
+    leaf tracking-band-class {
+      type uint32 {
+        range "0..31";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.TrackingBandClass";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.TrackingBandClass";
+    }
+    leaf tracking-pn-offset {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.TrackingPNOffset";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.TrackingPNOffset";
+    }
+    leaf timing-source {
+      type uint32 {
+        range "0..1";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.TimingSource";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.TimingSource";
+    }
+    leaf channel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.ChannelNumberOfEntries";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.ChannelNumberOfEntries";
+    }
+  }
+
+  grouping macro-timing-channel-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.Enable";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.Alias";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.Alias";
+    }
+    leaf air-interface-type {
+      type uint32 {
+        range "0..1";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.AirInterfaceType";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.AirInterfaceType";
+    }
+    leaf band-class {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.BandClass";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.BandClass";
+    }
+    leaf channel-number {
+      type uint32;
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.ChannelNumber";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.ChannelNumber";
+    }
+    leaf priority {
+      type uint32;
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.Priority";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.Priority";
+    }
+    leaf pn-list {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.PNList";
+      reference
+        "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.PNList";
+    }
+  }
+
+  grouping rem-cdma2000-one-x-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.OneX.";
+    leaf max-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.MaxCellEntries";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.MaxCellEntries";
+    }
+    leaf cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.CellNumberOfEntries";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.CellNumberOfEntries";
+    }
+    leaf max-channel-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.MaxChannelEntries";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.MaxChannelEntries";
+    }
+    leaf channel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.ChannelNumberOfEntries";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.ChannelNumberOfEntries";
+    }
+  }
+
+  grouping one-x-cell-control-channel-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.";
+    leaf sid {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.SID";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.SID";
+    }
+    leaf nid {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.NID";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.NID";
+    }
+    leaf regzone {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.REGZONE";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.REGZONE";
+    }
+    leaf baselat {
+      type int32 {
+        range "-2147483648..2147483647";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.BASELAT";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.BASELAT";
+    }
+    leaf baselong {
+      type int32 {
+        range "-2147483648..2147483647";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.BASELONG";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.BASELONG";
+    }
+    leaf mcc {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.MCC";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.MCC";
+    }
+    leaf mncimsi1112 {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.MNCIMSI1112";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.MNCIMSI1112";
+    }
+    leaf baseid {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.BASEID";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.BASEID";
+    }
+    leaf apid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.APID";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.APID";
+    }
+    leaf apidmask {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.APIDMASK";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.APIDMASK";
+    }
+    leaf apidtext {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.APIDTEXT";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.APIDTEXT";
+    }
+  }
+
+  grouping one-x-cell-rf-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.";
+    leaf band {
+      type int32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.Band";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.Band";
+    }
+    leaf rfcnfl {
+      type uint32 {
+        range "0..2016";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.RFCNFL";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.RFCNFL";
+    }
+    leaf io {
+      type int32 {
+        range "-105..-25";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.Io";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.Io";
+    }
+    leaf p-ilot-pn {
+      type uint32 {
+        range "0..511";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.PIlotPN";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.PIlotPN";
+    }
+    leaf p-ilot-pn-phase {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.PIlotPNPhase";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.PIlotPNPhase";
+    }
+    leaf pilot-strength-ecp {
+      type int32 {
+        range "-130..-25";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.PilotStrengthEcp";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.PilotStrengthEcp";
+    }
+    leaf pilot-strength-ecp-io {
+      type int32 {
+        range "-25..0";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.PilotStrengthEcpIo";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.PilotStrengthEcpIo";
+    }
+    leaf overheads-available {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.OverheadsAvailable";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.OverheadsAvailable";
+    }
+  }
+
+  grouping one-x-channel-g {
+    description
+      "Grouping object for FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.Enable";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.Alias";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.Alias";
+    }
+    leaf sniffing-band-class {
+      type uint32 {
+        range "0..31";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.SniffingBandClass";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.SniffingBandClass";
+    }
+    leaf sniffing-channel-number {
+      type uint32 {
+        range "0..2016";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.SniffingChannelNumber";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.SniffingChannelNumber";
+    }
+    leaf pn-list {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.PNList";
+      reference
+        "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.PNList";
+    }
+  }
+
+  grouping rem-lte-g {
+    description
+      "Grouping object for FAPService.{i}.REM.LTE.";
+    leaf in-service-handling {
+      type enumeration {
+        enum Immediate {
+          description
+            "Enum Value - Immediate";
+        }
+        enum Delayed {
+          description
+            "Enum Value - Delayed";
+        }
+      }
+      description
+        "FAPService.{i}.REM.LTE.InServiceHandling";
+      reference
+        "FAPService.{i}.REM.LTE.InServiceHandling";
+    }
+    leaf scan-on-boot {
+      type boolean;
+      description
+        "FAPService.{i}.REM.LTE.ScanOnBoot";
+      reference
+        "FAPService.{i}.REM.LTE.ScanOnBoot";
+    }
+    leaf scan-periodically {
+      type boolean;
+      description
+        "FAPService.{i}.REM.LTE.ScanPeriodically";
+      reference
+        "FAPService.{i}.REM.LTE.ScanPeriodically";
+    }
+    leaf periodic-interval {
+      type uint32;
+      description
+        "FAPService.{i}.REM.LTE.PeriodicInterval";
+      reference
+        "FAPService.{i}.REM.LTE.PeriodicInterval";
+    }
+    leaf periodic-time {
+      type string;
+      description
+        "FAPService.{i}.REM.LTE.PeriodicTime";
+      reference
+        "FAPService.{i}.REM.LTE.PeriodicTime";
+    }
+    leaf remplmn-list {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.REM.LTE.REMPLMNList";
+      reference
+        "FAPService.{i}.REM.LTE.REMPLMNList";
+    }
+    leaf rem-band-list {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.REM.LTE.REMBandList";
+      reference
+        "FAPService.{i}.REM.LTE.REMBandList";
+    }
+    leaf eutra-carrier-arfcndl-list {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.REM.LTE.EUTRACarrierARFCNDLList";
+      reference
+        "FAPService.{i}.REM.LTE.EUTRACarrierARFCNDLList";
+    }
+    leaf scan-timeout {
+      type uint32;
+      description
+        "FAPService.{i}.REM.LTE.ScanTimeout";
+      reference
+        "FAPService.{i}.REM.LTE.ScanTimeout";
+    }
+    leaf scan-status {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.ScanStatus";
+      reference
+        "FAPService.{i}.REM.LTE.ScanStatus";
+    }
+    leaf error-details {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.ErrorDetails";
+      reference
+        "FAPService.{i}.REM.LTE.ErrorDetails";
+    }
+    leaf last-scan-time {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.LastScanTime";
+      reference
+        "FAPService.{i}.REM.LTE.LastScanTime";
+    }
+    leaf max-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.MaxCellEntries";
+      reference
+        "FAPService.{i}.REM.LTE.MaxCellEntries";
+    }
+    leaf cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.CellNumberOfEntries";
+      reference
+        "FAPService.{i}.REM.LTE.CellNumberOfEntries";
+    }
+    leaf max-carrier-meas-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.MaxCarrierMeasEntries";
+      reference
+        "FAPService.{i}.REM.LTE.MaxCarrierMeasEntries";
+    }
+    leaf carrier-meas-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.CarrierMeasNumberOfEntries";
+      reference
+        "FAPService.{i}.REM.LTE.CarrierMeasNumberOfEntries";
+    }
+  }
+
+  grouping lte-carrier-meas-g {
+    description
+      "Grouping object for FAPService.{i}.REM.LTE.CarrierMeas.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.REM.LTE.CarrierMeas.{i}.Enable";
+      reference
+        "FAPService.{i}.REM.LTE.CarrierMeas.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.REM.LTE.CarrierMeas.{i}.Alias";
+      reference
+        "FAPService.{i}.REM.LTE.CarrierMeas.{i}.Alias";
+    }
+    leaf carrier-arfcndl {
+      type int32 {
+        range "min..65535";
+      }
+      description
+        "FAPService.{i}.REM.LTE.CarrierMeas.{i}.CarrierARFCNDL";
+      reference
+        "FAPService.{i}.REM.LTE.CarrierMeas.{i}.CarrierARFCNDL";
+    }
+    leaf carrier-ch-width {
+      type int32 {
+        range "min..750";
+      }
+      description
+        "FAPService.{i}.REM.LTE.CarrierMeas.{i}.CarrierChWidth";
+      reference
+        "FAPService.{i}.REM.LTE.CarrierMeas.{i}.CarrierChWidth";
+    }
+    leaf carrier-rssi {
+      type int32 {
+        range "-100..-25";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.CarrierMeas.{i}.CarrierRSSI";
+      reference
+        "FAPService.{i}.REM.LTE.CarrierMeas.{i}.CarrierRSSI";
+    }
+  }
+
+  grouping cell-bcch-g {
+    description
+      "Grouping object for FAPService.{i}.REM.LTE.Cell.{i}.BCCH.";
+    leaf dl-bandwidth {
+      type uint32 {
+        range "6 | 15 | 25 | 50 | 75 | 100";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.DLBandwidth";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.DLBandwidth";
+    }
+    leaf ul-bandwidth {
+      type uint32 {
+        range "6 | 15 | 25 | 50 | 75 | 100";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.ULBandwidth";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.ULBandwidth";
+    }
+    leaf rs-tx-power {
+      type int32 {
+        range "-60..50";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.RSTxPower";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.RSTxPower";
+    }
+    leaf tac {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.TAC";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.TAC";
+    }
+    leaf cell-id {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.CellID";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.CellID";
+    }
+    leaf cell-barred {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.CellBarred";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.CellBarred";
+    }
+    leaf csg-indication {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.CSGIndication";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.CSGIndication";
+    }
+    leaf csg-identity {
+      type uint32 {
+        range "0..134217727";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.CSGIdentity";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.CSGIdentity";
+    }
+    leaf max-plmn-list-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.MaxPLMNListEntries";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.MaxPLMNListEntries";
+    }
+    leaf plmn-list-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNListNumberOfEntries";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNListNumberOfEntries";
+    }
+  }
+
+  grouping bcch-plmn-list-g {
+    description
+      "Grouping object for FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNList.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf plmnid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNList.{i}.PLMNID";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNList.{i}.PLMNID";
+    }
+    leaf cell-reserved-for-operator-use {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNList.{i}.CellReservedForOperatorUse";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNList.{i}.CellReservedForOperatorUse";
+    }
+  }
+
+  grouping lte-cell-rf-g {
+    description
+      "Grouping object for FAPService.{i}.REM.LTE.Cell.{i}.RF.";
+    leaf eutra-carrier-arfcn {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.RF.EUTRACarrierARFCN";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.RF.EUTRACarrierARFCN";
+    }
+    leaf phy-cell-id {
+      type uint32 {
+        range "0..503";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.RF.PhyCellID";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.RF.PhyCellID";
+    }
+    leaf rsrp {
+      type int32 {
+        range "-140..-44";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.RF.RSRP";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.RF.RSRP";
+    }
+    leaf rsrq {
+      type int32 {
+        range "-240..0";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.RF.RSRQ";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.RF.RSRQ";
+    }
+    leaf rssi {
+      type int32 {
+        range "-110..-19";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.LTE.Cell.{i}.RF.RSSI";
+      reference
+        "FAPService.{i}.REM.LTE.Cell.{i}.RF.RSSI";
+    }
+  }
+
+  grouping umts-gsm-g {
+    description
+      "Grouping object for FAPService.{i}.REM.UMTS.GSM.";
+    leaf in-service-handling {
+      type enumeration {
+        enum Immediate {
+          description
+            "Enum Value - Immediate";
+        }
+        enum Delayed {
+          description
+            "Enum Value - Delayed";
+        }
+      }
+      description
+        "FAPService.{i}.REM.UMTS.GSM.InServiceHandling";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.InServiceHandling";
+    }
+    leaf scan-on-boot {
+      type boolean;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.ScanOnBoot";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.ScanOnBoot";
+    }
+    leaf scan-periodically {
+      type boolean;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.ScanPeriodically";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.ScanPeriodically";
+    }
+    leaf periodic-interval {
+      type uint32;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.PeriodicInterval";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.PeriodicInterval";
+    }
+    leaf periodic-time {
+      type string;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.PeriodicTime";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.PeriodicTime";
+    }
+    leaf remplmn-list {
+      type string {
+        length "min..6";
+      }
+      description
+        "FAPService.{i}.REM.UMTS.GSM.REMPLMNList";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.REMPLMNList";
+    }
+    leaf rem-band-list {
+      type enumeration {
+        enum T-GSM380 {
+          description
+            "Enum Value - T-GSM380";
+        }
+        enum T-GSM410 {
+          description
+            "Enum Value - T-GSM410";
+        }
+        enum GSM450 {
+          description
+            "Enum Value - GSM450";
+        }
+        enum GSM480 {
+          description
+            "Enum Value - GSM480";
+        }
+        enum GSM710 {
+          description
+            "Enum Value - GSM710";
+        }
+        enum GSM750 {
+          description
+            "Enum Value - GSM750";
+        }
+        enum T-GSM810 {
+          description
+            "Enum Value - T-GSM810";
+        }
+        enum GSM850 {
+          description
+            "Enum Value - GSM850";
+        }
+        enum P-GSM900 {
+          description
+            "Enum Value - P-GSM900";
+        }
+        enum E-GSM900 {
+          description
+            "Enum Value - E-GSM900";
+        }
+        enum R-GSM900 {
+          description
+            "Enum Value - R-GSM900";
+        }
+        enum T-GSM900 {
+          description
+            "Enum Value - T-GSM900";
+        }
+        enum DCS1800 {
+          description
+            "Enum Value - DCS1800";
+        }
+        enum PCS1900 {
+          description
+            "Enum Value - PCS1900";
+        }
+      }
+      description
+        "FAPService.{i}.REM.UMTS.GSM.REMBandList";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.REMBandList";
+    }
+    leaf arfcn-list {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.REM.UMTS.GSM.ARFCNList";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.ARFCNList";
+    }
+    leaf scan-timeout {
+      type uint32;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.ScanTimeout";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.ScanTimeout";
+    }
+    leaf scan-status {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.ScanStatus";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.ScanStatus";
+    }
+    leaf error-details {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.ErrorDetails";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.ErrorDetails";
+    }
+    leaf last-scan-time {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.LastScanTime";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.LastScanTime";
+    }
+    leaf max-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.MaxCellEntries";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.MaxCellEntries";
+    }
+    leaf cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.CellNumberOfEntries";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.CellNumberOfEntries";
+    }
+  }
+
+  grouping gsm-cell-g {
+    description
+      "Grouping object for FAPService.{i}.REM.UMTS.GSM.Cell.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf band-indicator {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.BandIndicator";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.BandIndicator";
+    }
+    leaf arfcn {
+      type uint32 {
+        range "0..1023";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.ARFCN";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.ARFCN";
+    }
+    leaf bsic {
+      type uint32 {
+        range "0..63";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.BSIC";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.BSIC";
+    }
+    leaf plmnid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.PLMNID";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.PLMNID";
+    }
+    leaf lac {
+      type uint32 {
+        range "1..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.LAC";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.LAC";
+    }
+    leaf rac {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.RAC";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.RAC";
+    }
+    leaf ci {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.CI";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.CI";
+    }
+    leaf rssi {
+      type int32 {
+        range "-110..48";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.RSSI";
+      reference
+        "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.RSSI";
+    }
+  }
+
+  grouping umts-wcdma-g {
+    description
+      "Grouping object for FAPService.{i}.REM.UMTS.WCDMA.";
+    leaf in-service-handling {
+      type enumeration {
+        enum Immediate {
+          description
+            "Enum Value - Immediate";
+        }
+        enum Delayed {
+          description
+            "Enum Value - Delayed";
+        }
+      }
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.InServiceHandling";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.InServiceHandling";
+    }
+    leaf scan-on-boot {
+      type boolean;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.ScanOnBoot";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.ScanOnBoot";
+    }
+    leaf scan-periodically {
+      type boolean;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.ScanPeriodically";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.ScanPeriodically";
+    }
+    leaf periodic-interval {
+      type uint32;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.PeriodicInterval";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.PeriodicInterval";
+    }
+    leaf periodic-time {
+      type string;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.PeriodicTime";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.PeriodicTime";
+    }
+    leaf remplmn-list {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.REMPLMNList";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.REMPLMNList";
+    }
+    leaf rem-band-list {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.REMBandList";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.REMBandList";
+    }
+    leaf uarfcndl-list {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.UARFCNDLList";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.UARFCNDLList";
+    }
+    leaf scan-timeout {
+      type uint32;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.ScanTimeout";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.ScanTimeout";
+    }
+    leaf scan-status {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.ScanStatus";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.ScanStatus";
+    }
+    leaf error-details {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.ErrorDetails";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.ErrorDetails";
+    }
+    leaf last-scan-time {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.LastScanTime";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.LastScanTime";
+    }
+    leaf max-cell-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.MaxCellEntries";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.MaxCellEntries";
+    }
+    leaf cell-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.CellNumberOfEntries";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.CellNumberOfEntries";
+    }
+  }
+
+  grouping wcdma-cell-bcch-g {
+    description
+      "Grouping object for FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.";
+    leaf plmn-type {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.PLMNType";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.PLMNType";
+    }
+    leaf plmnid {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.PLMNID";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.PLMNID";
+    }
+    leaf lac {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.LAC";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.LAC";
+    }
+    leaf rac {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.RAC";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.RAC";
+    }
+    leaf cell-id {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CellID";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CellID";
+    }
+    leaf pcpich-tx-power {
+      type int32 {
+        range "-10..50";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.PCPICHTxPower";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.PCPICHTxPower";
+    }
+    leaf csg-indicator {
+      type boolean;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGIndicator";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGIndicator";
+    }
+    leaf csgid {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGID";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGID";
+    }
+    leaf uarfcndl-list {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.UARFCNDLList";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.UARFCNDLList";
+    }
+  }
+
+  grouping bcch-csgpsc-split-info-g {
+    description
+      "Grouping object for FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.";
+    leaf start-psc-range1-coefficient {
+      type uint32 {
+        range "0..63";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.StartPSCRange1Coefficient";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.StartPSCRange1Coefficient";
+    }
+    leaf number-of-ps-cs {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.NumberOfPSCs";
+    }
+    leaf psc-range2-offset {
+      type uint32 {
+        range "0..63";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.PSCRange2Offset";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.PSCRange2Offset";
+    }
+  }
+
+  grouping bcch-reference-position-g {
+    description
+      "Grouping object for FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.";
+    leaf latitude {
+      type int32 {
+        range "-90000000..90000000";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.Latitude";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.Latitude";
+    }
+    leaf longitude {
+      type int32 {
+        range "-180000000..180000000";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.Longitude";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.Longitude";
+    }
+    leaf uncertainty-semi-major {
+      type uint32 {
+        range "0..127";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.UncertaintySemiMajor";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.UncertaintySemiMajor";
+    }
+    leaf uncertainty-semi-minor {
+      type uint32 {
+        range "0..127";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.UncertaintySemiMinor";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.UncertaintySemiMinor";
+    }
+    leaf orientation-of-major-axis {
+      type uint32 {
+        range "0..89";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.OrientationOfMajorAxis";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.OrientationOfMajorAxis";
+    }
+    leaf confidence {
+      type uint32 {
+        range "0..100";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.Confidence";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.Confidence";
+    }
+  }
+
+  grouping wcdma-cell-rf-g {
+    description
+      "Grouping object for FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.";
+    leaf uarfcndl {
+      type uint32 {
+        range "0..16383";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.UARFCNDL";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.UARFCNDL";
+    }
+    leaf cpichrscp {
+      type int32 {
+        range "-120..-25";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.CPICHRSCP";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.CPICHRSCP";
+    }
+    leaf cpich-ec-no {
+      type int32 {
+        range "-48..0";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.CPICHEcNo";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.CPICHEcNo";
+    }
+    leaf rssi {
+      type int32 {
+        range "-100..-25";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.RSSI";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.RSSI";
+    }
+    leaf primary-scrambling-code {
+      type uint32 {
+        range "0..511";
+      }
+      config false;
+      description
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.PrimaryScramblingCode";
+      reference
+        "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.PrimaryScramblingCode";
+    }
+  }
+
+  grouping transport-packet-g {
+    description
+      "Grouping object for FAPService.{i}.Transport.Packet.";
+    leaf echo-interval {
+      type uint32;
+      description
+        "FAPService.{i}.Transport.Packet.EchoInterval";
+      reference
+        "FAPService.{i}.Transport.Packet.EchoInterval";
+    }
+    leaf sent-packets {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.Packet.SentPackets";
+      reference
+        "FAPService.{i}.Transport.Packet.SentPackets";
+    }
+    leaf rcv-packets {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.Packet.RcvPackets";
+      reference
+        "FAPService.{i}.Transport.Packet.RcvPackets";
+    }
+  }
+
+  grouping transport-real-time-g {
+    description
+      "Grouping object for FAPService.{i}.Transport.RealTime.";
+    leaf rtcp-enable {
+      type boolean;
+      description
+        "FAPService.{i}.Transport.RealTime.RTCPEnable";
+      reference
+        "FAPService.{i}.Transport.RealTime.RTCPEnable";
+    }
+    leaf sent-packets {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.SentPackets";
+      reference
+        "FAPService.{i}.Transport.RealTime.SentPackets";
+    }
+    leaf rcv-packets {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.RcvPackets";
+      reference
+        "FAPService.{i}.Transport.RealTime.RcvPackets";
+    }
+    leaf bytes-sent {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.BytesSent";
+      reference
+        "FAPService.{i}.Transport.RealTime.BytesSent";
+    }
+    leaf bytes-received {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.BytesReceived";
+      reference
+        "FAPService.{i}.Transport.RealTime.BytesReceived";
+    }
+  }
+
+  grouping real-time-perf-g {
+    description
+      "Grouping object for FAPService.{i}.Transport.RealTime.Perf.";
+    leaf lost-rcv-packets {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.Perf.LostRcvPackets";
+      reference
+        "FAPService.{i}.Transport.RealTime.Perf.LostRcvPackets";
+    }
+    leaf lost-far-end-packets {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.Perf.LostFarEndPackets";
+      reference
+        "FAPService.{i}.Transport.RealTime.Perf.LostFarEndPackets";
+    }
+    leaf overruns {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.Perf.Overruns";
+      reference
+        "FAPService.{i}.Transport.RealTime.Perf.Overruns";
+    }
+    leaf underruns {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.Perf.Underruns";
+      reference
+        "FAPService.{i}.Transport.RealTime.Perf.Underruns";
+    }
+    leaf mean-rtt {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.Perf.MeanRTT";
+      reference
+        "FAPService.{i}.Transport.RealTime.Perf.MeanRTT";
+    }
+    leaf max-rtt {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.Perf.MaxRTT";
+      reference
+        "FAPService.{i}.Transport.RealTime.Perf.MaxRTT";
+    }
+    leaf mean-receive-jitter {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.Perf.MeanReceiveJitter";
+      reference
+        "FAPService.{i}.Transport.RealTime.Perf.MeanReceiveJitter";
+    }
+    leaf max-receive-jitter {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.Perf.MaxReceiveJitter";
+      reference
+        "FAPService.{i}.Transport.RealTime.Perf.MaxReceiveJitter";
+    }
+    leaf mean-far-end-jitter {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.Perf.MeanFarEndJitter";
+      reference
+        "FAPService.{i}.Transport.RealTime.Perf.MeanFarEndJitter";
+    }
+    leaf max-far-end-jitter {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.RealTime.Perf.MaxFarEndJitter";
+      reference
+        "FAPService.{i}.Transport.RealTime.Perf.MaxFarEndJitter";
+    }
+  }
+
+  grouping transport-sctp-g {
+    description
+      "Grouping object for FAPService.{i}.Transport.SCTP.";
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.Transport.SCTP.Enable";
+      reference
+        "FAPService.{i}.Transport.SCTP.Enable";
+    }
+    leaf hb-interval {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "FAPService.{i}.Transport.SCTP.HBInterval";
+      reference
+        "FAPService.{i}.Transport.SCTP.HBInterval";
+    }
+    leaf max-association-retransmits {
+      type uint32;
+      description
+        "FAPService.{i}.Transport.SCTP.MaxAssociationRetransmits";
+      reference
+        "FAPService.{i}.Transport.SCTP.MaxAssociationRetransmits";
+    }
+    leaf max-init-retransmits {
+      type uint32;
+      description
+        "FAPService.{i}.Transport.SCTP.MaxInitRetransmits";
+      reference
+        "FAPService.{i}.Transport.SCTP.MaxInitRetransmits";
+    }
+    leaf max-path-retransmits {
+      type uint32;
+      description
+        "FAPService.{i}.Transport.SCTP.MaxPathRetransmits";
+      reference
+        "FAPService.{i}.Transport.SCTP.MaxPathRetransmits";
+    }
+    leaf rto-initial {
+      type uint32;
+      description
+        "FAPService.{i}.Transport.SCTP.RTOInitial";
+      reference
+        "FAPService.{i}.Transport.SCTP.RTOInitial";
+    }
+    leaf rto-max {
+      type uint32;
+      description
+        "FAPService.{i}.Transport.SCTP.RTOMax";
+      reference
+        "FAPService.{i}.Transport.SCTP.RTOMax";
+    }
+    leaf rto-min {
+      type uint32;
+      description
+        "FAPService.{i}.Transport.SCTP.RTOMin";
+      reference
+        "FAPService.{i}.Transport.SCTP.RTOMin";
+    }
+    leaf val-cookie-life {
+      type uint32;
+      description
+        "FAPService.{i}.Transport.SCTP.ValCookieLife";
+      reference
+        "FAPService.{i}.Transport.SCTP.ValCookieLife";
+    }
+    leaf out-of-blues {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.OutOfBlues";
+      reference
+        "FAPService.{i}.Transport.SCTP.OutOfBlues";
+    }
+    leaf checksum-errors {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.ChecksumErrors";
+      reference
+        "FAPService.{i}.Transport.SCTP.ChecksumErrors";
+    }
+    leaf out-ctrl-chunks {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.OutCtrlChunks";
+      reference
+        "FAPService.{i}.Transport.SCTP.OutCtrlChunks";
+    }
+    leaf out-order-chunks {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.OutOrderChunks";
+      reference
+        "FAPService.{i}.Transport.SCTP.OutOrderChunks";
+    }
+    leaf out-unorder-chunks {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.OutUnorderChunks";
+      reference
+        "FAPService.{i}.Transport.SCTP.OutUnorderChunks";
+    }
+    leaf in-ctrl-chunks {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.InCtrlChunks";
+      reference
+        "FAPService.{i}.Transport.SCTP.InCtrlChunks";
+    }
+    leaf in-order-chunks {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.InOrderChunks";
+      reference
+        "FAPService.{i}.Transport.SCTP.InOrderChunks";
+    }
+    leaf in-unorder-chunks {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.InUnorderChunks";
+      reference
+        "FAPService.{i}.Transport.SCTP.InUnorderChunks";
+    }
+    leaf frag-usr-msgs {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.FragUsrMsgs";
+      reference
+        "FAPService.{i}.Transport.SCTP.FragUsrMsgs";
+    }
+    leaf reasm-usr-msgs {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.ReasmUsrMsgs";
+      reference
+        "FAPService.{i}.Transport.SCTP.ReasmUsrMsgs";
+    }
+    leaf out-sctp-packs {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.OutSCTPPacks";
+      reference
+        "FAPService.{i}.Transport.SCTP.OutSCTPPacks";
+    }
+    leaf in-sctp-packs {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.InSCTPPacks";
+      reference
+        "FAPService.{i}.Transport.SCTP.InSCTPPacks";
+    }
+    leaf discontinuity {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.Discontinuity";
+      reference
+        "FAPService.{i}.Transport.SCTP.Discontinuity";
+    }
+    leaf assoc-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.AssocNumberOfEntries";
+      reference
+        "FAPService.{i}.Transport.SCTP.AssocNumberOfEntries";
+    }
+  }
+
+  grouping sctp-assoc-g {
+    description
+      "Grouping object for FAPService.{i}.Transport.SCTP.Assoc.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.Status";
+      reference
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.Status";
+    }
+    leaf primary-peer-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.PrimaryPeerAddress";
+      reference
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.PrimaryPeerAddress";
+    }
+    leaf local-port {
+      type uint32 {
+        range "0..63999";
+      }
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.LocalPort";
+      reference
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.LocalPort";
+    }
+    leaf in-streams {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.InStreams";
+      reference
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.InStreams";
+    }
+    leaf out-streams {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.OutStreams";
+      reference
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.OutStreams";
+    }
+    leaf start-time {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.StartTime";
+      reference
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.StartTime";
+    }
+    leaf discontinuity {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.Discontinuity";
+      reference
+        "FAPService.{i}.Transport.SCTP.Assoc.{i}.Discontinuity";
+    }
+  }
+
+  grouping transport-sip-g {
+    description
+      "Grouping object for FAPService.{i}.Transport.SIP.";
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.Transport.SIP.Enable";
+      reference
+        "FAPService.{i}.Transport.SIP.Enable";
+    }
+  }
+
+  grouping sip-fcs-g {
+    description
+      "Grouping object for FAPService.{i}.Transport.SIP.FCS.";
+    leaf fcsuri {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.FCSURI";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.FCSURI";
+    }
+    leaf out-going-proxy-uri {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.OutGoingProxyURI";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.OutGoingProxyURI";
+    }
+    leaf p-access-net-info-header {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Transport.SIP.FCS.PAccessNetInfoHeader";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.PAccessNetInfoHeader";
+    }
+    leaf realm {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.Realm";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.Realm";
+    }
+    leaf impu {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.IMPU";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.IMPU";
+    }
+    leaf impi {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.IMPI";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.IMPI";
+    }
+    leaf sip-password {
+      type string {
+        length "min..32";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.SIPPassword";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.SIPPassword";
+    }
+    leaf sip-auth-capability {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Transport.SIP.FCS.SIPAuthCapability";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.SIPAuthCapability";
+    }
+    leaf sip-auth-method {
+      type string {
+        length "min..256";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.SIPAuthMethod";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.SIPAuthMethod";
+    }
+    leaf sip-local-port {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.SIPLocalPort";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.SIPLocalPort";
+    }
+    leaf rtp-port-low-limit {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.RTPPortLowLimit";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.RTPPortLowLimit";
+    }
+    leaf rtp-port-high-limit {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.RTPPortHighLimit";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.RTPPortHighLimit";
+    }
+    leaf sip-reg-expiry {
+      type uint32;
+      description
+        "FAPService.{i}.Transport.SIP.FCS.SIPRegExpiry";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.SIPRegExpiry";
+    }
+    leaf sip-session-expiry {
+      type uint32 {
+        range "90..max";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.SIPSessionExpiry";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.SIPSessionExpiry";
+    }
+    leaf emergency-numbers-list {
+      type string {
+        length "min..64";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.EmergencyNumbersList";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.EmergencyNumbersList";
+    }
+    leaf timer-t1 {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.TimerT1";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.TimerT1";
+    }
+    leaf timer-t2 {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.TimerT2";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.TimerT2";
+    }
+    leaf timer-t4 {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.TimerT4";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.TimerT4";
+    }
+    leaf t3210 {
+      type uint32 {
+        range "1..20";
+      }
+      description
+        "FAPService.{i}.Transport.SIP.FCS.T3210";
+      reference
+        "FAPService.{i}.Transport.SIP.FCS.T3210";
+    }
+  }
+
+  grouping transport-security-g {
+    description
+      "Grouping object for FAPService.{i}.Transport.Security.";
+    leaf secret-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "FAPService.{i}.Transport.Security.SecretNumberOfEntries";
+      reference
+        "FAPService.{i}.Transport.Security.SecretNumberOfEntries";
+    }
+  }
+
+  grouping security-secret-g {
+    description
+      "Grouping object for FAPService.{i}.Transport.Security.Secret.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "FAPService.{i}.Transport.Security.Secret.{i}.Enable";
+      reference
+        "FAPService.{i}.Transport.Security.Secret.{i}.Enable";
+    }
+    leaf type {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Transport.Security.Secret.{i}.Type";
+      reference
+        "FAPService.{i}.Transport.Security.Secret.{i}.Type";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Transport.Security.Secret.{i}.Status";
+      reference
+        "FAPService.{i}.Transport.Security.Secret.{i}.Status";
+    }
+    leaf uicc-card-id {
+      type string;
+      config false;
+      description
+        "FAPService.{i}.Transport.Security.Secret.{i}.UICCCardID";
+      reference
+        "FAPService.{i}.Transport.Security.Secret.{i}.UICCCardID";
+    }
+  }
+
+  grouping fap-service-access-mgmt-g {
+    description
+      "Grouping object";
+  }
+
+  grouping cdma2000-local-ip-access-g {
+    description
+      "Grouping object";
+  }
+
+  grouping access-mgmt-legacy-g {
+    description
+      "Grouping object";
+  }
+
+  grouping fap-service-cell-config-g {
+    description
+      "Grouping object";
+  }
+
+  grouping hrpd-ran-g {
+    description
+      "Grouping object";
+  }
+
+  grouping epc-ho-g {
+    description
+      "Grouping object";
+  }
+
+  grouping lte-ran-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ran-csg-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ran-drb-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ran-erab-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ran-mac-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ran-mobility-g {
+    description
+      "Grouping object";
+  }
+
+  grouping mobility-conn-mode-g {
+    description
+      "Grouping object";
+  }
+
+  grouping mobility-idle-mode-g {
+    description
+      "Grouping object";
+  }
+
+  grouping idle-mode-irat-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ran-phy-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ran-rlc-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ran-rrc-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ran-rru-g {
+    description
+      "Grouping object";
+  }
+
+  grouping cs-domain-hho-g {
+    description
+      "Grouping object";
+  }
+
+  grouping cs-domain-rab-g {
+    description
+      "Grouping object";
+  }
+
+  grouping cn-hho-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ps-domain-rab-g {
+    description
+      "Grouping object";
+  }
+
+  grouping umts-ran-rrc-g {
+    description
+      "Grouping object";
+  }
+
+  grouping fap-service-rem-g {
+    description
+      "Grouping object";
+  }
+
+  grouping hrpd-cell-g {
+    description
+      "Grouping object";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+  }
+
+  grouping one-x-cell-g {
+    description
+      "Grouping object";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+  }
+
+  grouping lte-cell-g {
+    description
+      "Grouping object";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+  }
+
+  grouping rem-umts-g {
+    description
+      "Grouping object";
+  }
+
+  grouping wcdma-cell-g {
+    description
+      "Grouping object";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+  }
+
+  grouping fap-service-transport-g {
+    description
+      "Grouping object";
+  }
+
+  container device {
+    description
+      "Container for object class Device.";
+    reference
+      "Device.";
+    uses device-g;
+    container atm {
+      description
+        "Container for object class Device.ATM.";
+      reference
+        "Device.ATM.";
+      uses device-atm-g;
+      container diagnostics {
+        description
+          "Container for object class Device.ATM.Diagnostics.";
+        reference
+          "Device.ATM.Diagnostics.";
+        uses atm-diagnostics-g;
+        container f5-loopback {
+          description
+            "Container for object class Device.ATM.Diagnostics.F5Loopback.";
+          reference
+            "Device.ATM.Diagnostics.F5Loopback.";
+          uses diagnostics-f5-loopback-g;
+        }
+      }
+      list link {
+        key "index";
+        description
+          "Device.ATM.Link.{i}.";
+        reference
+          "Device.ATM.Link.{i}.";
+        uses atm-link-g;
+        container qo-s {
+          description
+            "Container for object class Device.ATM.Link.{i}.QoS.";
+          reference
+            "Device.ATM.Link.{i}.QoS.";
+          uses link-qo-s-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.ATM.Link.{i}.Stats.";
+          reference
+            "Device.ATM.Link.{i}.Stats.";
+          uses link-stats-g;
+        }
+      }
+    }
+    container basapm {
+      description
+        "Container for object class Device.BASAPM.";
+      reference
+        "Device.BASAPM.";
+      uses device-basapm-g;
+      list measurement-endpoint {
+        key "index";
+        description
+          "Device.BASAPM.MeasurementEndpoint.{i}.";
+        reference
+          "Device.BASAPM.MeasurementEndpoint.{i}.";
+        uses basapm-measurement-endpoint-g;
+        container customer-device {
+          description
+            "Container for object class Device.BASAPM.MeasurementEndpoint.{i}.CustomerDevice.";
+          reference
+            "Device.BASAPM.MeasurementEndpoint.{i}.CustomerDevice.";
+          uses measurement-endpoint-customer-device-g;
+        }
+        container isp-device {
+          description
+            "Container for object class Device.BASAPM.MeasurementEndpoint.{i}.ISPDevice.";
+          reference
+            "Device.BASAPM.MeasurementEndpoint.{i}.ISPDevice.";
+          uses measurement-endpoint-isp-device-g;
+        }
+      }
+    }
+    container bridging {
+      description
+        "Container for object class Device.Bridging.";
+      reference
+        "Device.Bridging.";
+      uses device-bridging-g;
+      list bridge {
+        key "index";
+        description
+          "Device.Bridging.Bridge.{i}.";
+        reference
+          "Device.Bridging.Bridge.{i}.";
+        uses bridging-bridge-g;
+        list port {
+          key "index";
+          description
+            "Device.Bridging.Bridge.{i}.Port.{i}.";
+          reference
+            "Device.Bridging.Bridge.{i}.Port.{i}.";
+          uses bridge-port-g;
+          container priority-code-point {
+            description
+              "Container for object class Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.";
+            reference
+              "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.";
+            uses port-priority-code-point-g;
+          }
+          container stats {
+            description
+              "Container for object class Device.Bridging.Bridge.{i}.Port.{i}.Stats.";
+            reference
+              "Device.Bridging.Bridge.{i}.Port.{i}.Stats.";
+            uses port-stats-g;
+          }
+        }
+        list vlan {
+          key "index";
+          description
+            "Device.Bridging.Bridge.{i}.VLAN.{i}.";
+          reference
+            "Device.Bridging.Bridge.{i}.VLAN.{i}.";
+          uses bridge-vlan-g;
+        }
+        list vlan-port {
+          key "index";
+          description
+            "Device.Bridging.Bridge.{i}.VLANPort.{i}.";
+          reference
+            "Device.Bridging.Bridge.{i}.VLANPort.{i}.";
+          uses bridge-vlan-port-g;
+        }
+      }
+      list filter {
+        key "index";
+        description
+          "Device.Bridging.Filter.{i}.";
+        reference
+          "Device.Bridging.Filter.{i}.";
+        uses bridging-filter-g;
+      }
+      list provider-bridge {
+        key "index";
+        description
+          "Device.Bridging.ProviderBridge.{i}.";
+        reference
+          "Device.Bridging.ProviderBridge.{i}.";
+        uses bridging-provider-bridge-g;
+      }
+    }
+    container bulk-data {
+      description
+        "Container for object class Device.BulkData.";
+      reference
+        "Device.BulkData.";
+      uses device-bulk-data-g;
+      list profile {
+        key "index";
+        description
+          "Device.BulkData.Profile.{i}.";
+        reference
+          "Device.BulkData.Profile.{i}.";
+        uses bulk-data-profile-g;
+        container csv-encoding {
+          description
+            "Container for object class Device.BulkData.Profile.{i}.CSVEncoding.";
+          reference
+            "Device.BulkData.Profile.{i}.CSVEncoding.";
+          uses profile-csv-encoding-g;
+        }
+        container http {
+          description
+            "Container for object class Device.BulkData.Profile.{i}.HTTP.";
+          reference
+            "Device.BulkData.Profile.{i}.HTTP.";
+          uses profile-http-g;
+          list request-uri-parameter {
+            key "index";
+            description
+              "Device.BulkData.Profile.{i}.HTTP.RequestURIParameter.{i}.";
+            reference
+              "Device.BulkData.Profile.{i}.HTTP.RequestURIParameter.{i}.";
+            uses http-request-uri-parameter-g;
+          }
+        }
+        container json-encoding {
+          description
+            "Container for object class Device.BulkData.Profile.{i}.JSONEncoding.";
+          reference
+            "Device.BulkData.Profile.{i}.JSONEncoding.";
+          uses profile-json-encoding-g;
+        }
+        list parameter {
+          key "index";
+          description
+            "Device.BulkData.Profile.{i}.Parameter.{i}.";
+          reference
+            "Device.BulkData.Profile.{i}.Parameter.{i}.";
+          uses profile-parameter-g;
+        }
+      }
+    }
+    container captive-portal {
+      description
+        "Container for object class Device.CaptivePortal.";
+      reference
+        "Device.CaptivePortal.";
+      uses device-captive-portal-g;
+    }
+    container cellular {
+      description
+        "Container for object class Device.Cellular.";
+      reference
+        "Device.Cellular.";
+      uses device-cellular-g;
+      list access-point {
+        key "index";
+        description
+          "Device.Cellular.AccessPoint.{i}.";
+        reference
+          "Device.Cellular.AccessPoint.{i}.";
+        uses cellular-access-point-g;
+      }
+      list interface {
+        key "index";
+        description
+          "Device.Cellular.Interface.{i}.";
+        reference
+          "Device.Cellular.Interface.{i}.";
+        uses cellular-interface-g;
+        container stats {
+          description
+            "Container for object class Device.Cellular.Interface.{i}.Stats.";
+          reference
+            "Device.Cellular.Interface.{i}.Stats.";
+          uses interface-stats-g;
+        }
+        container usim {
+          description
+            "Container for object class Device.Cellular.Interface.{i}.USIM.";
+          reference
+            "Device.Cellular.Interface.{i}.USIM.";
+          uses interface-usim-g;
+        }
+      }
+    }
+    container dhcpv4 {
+      description
+        "Container for object class Device.DHCPv4.";
+      reference
+        "Device.DHCPv4.";
+      uses device-dhcpv4-g;
+      list client {
+        key "index";
+        description
+          "Device.DHCPv4.Client.{i}.";
+        reference
+          "Device.DHCPv4.Client.{i}.";
+        uses dhcpv4-client-g;
+        list req-option {
+          key "index";
+          description
+            "Device.DHCPv4.Client.{i}.ReqOption.{i}.";
+          reference
+            "Device.DHCPv4.Client.{i}.ReqOption.{i}.";
+          uses client-req-option-g;
+        }
+        list sent-option {
+          key "index";
+          description
+            "Device.DHCPv4.Client.{i}.SentOption.{i}.";
+          reference
+            "Device.DHCPv4.Client.{i}.SentOption.{i}.";
+          uses client-sent-option-g;
+        }
+      }
+      container relay {
+        description
+          "Container for object class Device.DHCPv4.Relay.";
+        reference
+          "Device.DHCPv4.Relay.";
+        uses dhcpv4-relay-g;
+        list forwarding {
+          key "index";
+          description
+            "Device.DHCPv4.Relay.Forwarding.{i}.";
+          reference
+            "Device.DHCPv4.Relay.Forwarding.{i}.";
+          uses relay-forwarding-g;
+        }
+      }
+      container server {
+        description
+          "Container for object class Device.DHCPv4.Server.";
+        reference
+          "Device.DHCPv4.Server.";
+        uses dhcpv4-server-g;
+        list pool {
+          key "index";
+          description
+            "Device.DHCPv4.Server.Pool.{i}.";
+          reference
+            "Device.DHCPv4.Server.Pool.{i}.";
+          uses server-pool-g;
+          list client {
+            key "index";
+            description
+              "Device.DHCPv4.Server.Pool.{i}.Client.{i}.";
+            reference
+              "Device.DHCPv4.Server.Pool.{i}.Client.{i}.";
+            uses pool-client-g;
+            list ipv4-address {
+              key "index";
+              description
+                "Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4Address.{i}.";
+              reference
+                "Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4Address.{i}.";
+              uses client-ipv4-address-g;
+            }
+            list option {
+              key "index";
+              description
+                "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Option.{i}.";
+              reference
+                "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Option.{i}.";
+              uses client-option-g;
+            }
+          }
+          list option {
+            key "index";
+            description
+              "Device.DHCPv4.Server.Pool.{i}.Option.{i}.";
+            reference
+              "Device.DHCPv4.Server.Pool.{i}.Option.{i}.";
+            uses pool-option-g;
+          }
+          list static-address {
+            key "index";
+            description
+              "Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.";
+            reference
+              "Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.";
+            uses pool-static-address-g;
+          }
+        }
+      }
+    }
+    container dhcpv6 {
+      description
+        "Container for object class Device.DHCPv6.";
+      reference
+        "Device.DHCPv6.";
+      uses device-dhcpv6-g;
+      list client {
+        key "index";
+        description
+          "Device.DHCPv6.Client.{i}.";
+        reference
+          "Device.DHCPv6.Client.{i}.";
+        uses dhcpv6-client-g;
+        list received-option {
+          key "index";
+          description
+            "Device.DHCPv6.Client.{i}.ReceivedOption.{i}.";
+          reference
+            "Device.DHCPv6.Client.{i}.ReceivedOption.{i}.";
+          uses client-received-option-g;
+        }
+        list sent-option {
+          key "index";
+          description
+            "Device.DHCPv6.Client.{i}.SentOption.{i}.";
+          reference
+            "Device.DHCPv6.Client.{i}.SentOption.{i}.";
+          uses dhcpv6-client-sent-option-g;
+        }
+        list server {
+          key "index";
+          description
+            "Device.DHCPv6.Client.{i}.Server.{i}.";
+          reference
+            "Device.DHCPv6.Client.{i}.Server.{i}.";
+          uses client-server-g;
+        }
+      }
+      container server {
+        description
+          "Container for object class Device.DHCPv6.Server.";
+        reference
+          "Device.DHCPv6.Server.";
+        uses dhcpv6-server-g;
+        list pool {
+          key "index";
+          description
+            "Device.DHCPv6.Server.Pool.{i}.";
+          reference
+            "Device.DHCPv6.Server.Pool.{i}.";
+          uses dhcpv6-server-pool-g;
+          list client {
+            key "index";
+            description
+              "Device.DHCPv6.Server.Pool.{i}.Client.{i}.";
+            reference
+              "Device.DHCPv6.Server.Pool.{i}.Client.{i}.";
+            uses server-pool-client-g;
+            list ipv6-address {
+              key "index";
+              description
+                "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}.";
+              reference
+                "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}.";
+              uses client-ipv6-address-g;
+            }
+            list ipv6-prefix {
+              key "index";
+              description
+                "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}.";
+              reference
+                "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}.";
+              uses client-ipv6-prefix-g;
+            }
+            list option {
+              key "index";
+              description
+                "Device.DHCPv6.Server.Pool.{i}.Client.{i}.Option.{i}.";
+              reference
+                "Device.DHCPv6.Server.Pool.{i}.Client.{i}.Option.{i}.";
+              uses pool-client-option-g;
+            }
+          }
+          list option {
+            key "index";
+            description
+              "Device.DHCPv6.Server.Pool.{i}.Option.{i}.";
+            reference
+              "Device.DHCPv6.Server.Pool.{i}.Option.{i}.";
+            uses server-pool-option-g;
+          }
+        }
+      }
+    }
+    container dlna {
+      description
+        "Container for object class Device.DLNA.";
+      reference
+        "Device.DLNA.";
+      uses device-dlna-g;
+      container capabilities {
+        description
+          "Container for object class Device.DLNA.Capabilities.";
+        reference
+          "Device.DLNA.Capabilities.";
+        uses dlna-capabilities-g;
+      }
+    }
+    container dns {
+      description
+        "Container for object class Device.DNS.";
+      reference
+        "Device.DNS.";
+      uses device-dns-g;
+      container client {
+        description
+          "Container for object class Device.DNS.Client.";
+        reference
+          "Device.DNS.Client.";
+        uses dns-client-g;
+        list server {
+          key "index";
+          description
+            "Device.DNS.Client.Server.{i}.";
+          reference
+            "Device.DNS.Client.Server.{i}.";
+          uses dns-client-server-g;
+        }
+      }
+      container diagnostics {
+        description
+          "Container for object class Device.DNS.Diagnostics.";
+        reference
+          "Device.DNS.Diagnostics.";
+        uses dns-diagnostics-g;
+        container ns-lookup-diagnostics {
+          description
+            "Container for object class Device.DNS.Diagnostics.NSLookupDiagnostics.";
+          reference
+            "Device.DNS.Diagnostics.NSLookupDiagnostics.";
+          uses diagnostics-ns-lookup-diagnostics-g;
+          list result {
+            key "index";
+            description
+              "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.";
+            reference
+              "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.";
+            uses ns-lookup-diagnostics-result-g;
+          }
+        }
+      }
+      container relay {
+        description
+          "Container for object class Device.DNS.Relay.";
+        reference
+          "Device.DNS.Relay.";
+        uses dns-relay-g;
+        list forwarding {
+          key "index";
+          description
+            "Device.DNS.Relay.Forwarding.{i}.";
+          reference
+            "Device.DNS.Relay.Forwarding.{i}.";
+          uses dns-relay-forwarding-g;
+        }
+      }
+      container sd {
+        description
+          "Container for object class Device.DNS.SD.";
+        reference
+          "Device.DNS.SD.";
+        uses dns-sd-g;
+        list service {
+          key "index";
+          description
+            "Device.DNS.SD.Service.{i}.";
+          reference
+            "Device.DNS.SD.Service.{i}.";
+          uses sd-service-g;
+          list text-record {
+            key "index";
+            description
+              "Device.DNS.SD.Service.{i}.TextRecord.{i}.";
+            reference
+              "Device.DNS.SD.Service.{i}.TextRecord.{i}.";
+            uses service-text-record-g;
+          }
+        }
+      }
+    }
+    container dsl {
+      description
+        "Container for object class Device.DSL.";
+      reference
+        "Device.DSL.";
+      uses device-dsl-g;
+      list bonding-group {
+        key "index";
+        description
+          "Device.DSL.BondingGroup.{i}.";
+        reference
+          "Device.DSL.BondingGroup.{i}.";
+        uses dsl-bonding-group-g;
+        list bonded-channel {
+          key "index";
+          description
+            "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.";
+          reference
+            "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.";
+          uses bonding-group-bonded-channel-g;
+          container ethernet {
+            description
+              "Container for object class Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.";
+            reference
+              "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.";
+            uses bonded-channel-ethernet-g;
+            container stats {
+              description
+                "Container for object class Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.";
+              reference
+                "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.";
+              uses ethernet-stats-g;
+            }
+          }
+        }
+        container ethernet {
+          description
+            "Container for object class Device.DSL.BondingGroup.{i}.Ethernet.";
+          reference
+            "Device.DSL.BondingGroup.{i}.Ethernet.";
+          uses bonding-group-ethernet-g;
+          container stats {
+            description
+              "Container for object class Device.DSL.BondingGroup.{i}.Ethernet.Stats.";
+            reference
+              "Device.DSL.BondingGroup.{i}.Ethernet.Stats.";
+            uses bonding-group-ethernet-stats-g;
+          }
+        }
+        container stats {
+          description
+            "Container for object class Device.DSL.BondingGroup.{i}.Stats.";
+          reference
+            "Device.DSL.BondingGroup.{i}.Stats.";
+          uses bonding-group-stats-g;
+          container current-day {
+            description
+              "Container for object class Device.DSL.BondingGroup.{i}.Stats.CurrentDay.";
+            reference
+              "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.";
+            uses stats-current-day-g;
+          }
+          container quarter-hour {
+            description
+              "Container for object class Device.DSL.BondingGroup.{i}.Stats.QuarterHour.";
+            reference
+              "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.";
+            uses stats-quarter-hour-g;
+          }
+          container total {
+            description
+              "Container for object class Device.DSL.BondingGroup.{i}.Stats.Total.";
+            reference
+              "Device.DSL.BondingGroup.{i}.Stats.Total.";
+            uses stats-total-g;
+          }
+        }
+      }
+      list channel {
+        key "index";
+        description
+          "Device.DSL.Channel.{i}.";
+        reference
+          "Device.DSL.Channel.{i}.";
+        uses dsl-channel-g;
+        container stats {
+          description
+            "Container for object class Device.DSL.Channel.{i}.Stats.";
+          reference
+            "Device.DSL.Channel.{i}.Stats.";
+          uses channel-stats-g;
+          container current-day {
+            description
+              "Container for object class Device.DSL.Channel.{i}.Stats.CurrentDay.";
+            reference
+              "Device.DSL.Channel.{i}.Stats.CurrentDay.";
+            uses channel-stats-current-day-g;
+          }
+          container last-showtime {
+            description
+              "Container for object class Device.DSL.Channel.{i}.Stats.LastShowtime.";
+            reference
+              "Device.DSL.Channel.{i}.Stats.LastShowtime.";
+            uses stats-last-showtime-g;
+          }
+          container quarter-hour {
+            description
+              "Container for object class Device.DSL.Channel.{i}.Stats.QuarterHour.";
+            reference
+              "Device.DSL.Channel.{i}.Stats.QuarterHour.";
+            uses channel-stats-quarter-hour-g;
+          }
+          container showtime {
+            description
+              "Container for object class Device.DSL.Channel.{i}.Stats.Showtime.";
+            reference
+              "Device.DSL.Channel.{i}.Stats.Showtime.";
+            uses stats-showtime-g;
+          }
+          container total {
+            description
+              "Container for object class Device.DSL.Channel.{i}.Stats.Total.";
+            reference
+              "Device.DSL.Channel.{i}.Stats.Total.";
+            uses channel-stats-total-g;
+          }
+        }
+      }
+      container diagnostics {
+        description
+          "Container for object class Device.DSL.Diagnostics.";
+        reference
+          "Device.DSL.Diagnostics.";
+        uses dsl-diagnostics-g;
+        container adsl-line-test {
+          description
+            "Container for object class Device.DSL.Diagnostics.ADSLLineTest.";
+          reference
+            "Device.DSL.Diagnostics.ADSLLineTest.";
+          uses diagnostics-adsl-line-test-g;
+        }
+      }
+      list line {
+        key "index";
+        description
+          "Device.DSL.Line.{i}.";
+        reference
+          "Device.DSL.Line.{i}.";
+        uses dsl-line-g;
+        container data-gathering {
+          description
+            "Container for object class Device.DSL.Line.{i}.DataGathering.";
+          reference
+            "Device.DSL.Line.{i}.DataGathering.";
+          uses line-data-gathering-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.DSL.Line.{i}.Stats.";
+          reference
+            "Device.DSL.Line.{i}.Stats.";
+          uses line-stats-g;
+          container current-day {
+            description
+              "Container for object class Device.DSL.Line.{i}.Stats.CurrentDay.";
+            reference
+              "Device.DSL.Line.{i}.Stats.CurrentDay.";
+            uses line-stats-current-day-g;
+          }
+          container last-showtime {
+            description
+              "Container for object class Device.DSL.Line.{i}.Stats.LastShowtime.";
+            reference
+              "Device.DSL.Line.{i}.Stats.LastShowtime.";
+            uses line-stats-last-showtime-g;
+          }
+          container quarter-hour {
+            description
+              "Container for object class Device.DSL.Line.{i}.Stats.QuarterHour.";
+            reference
+              "Device.DSL.Line.{i}.Stats.QuarterHour.";
+            uses line-stats-quarter-hour-g;
+          }
+          container showtime {
+            description
+              "Container for object class Device.DSL.Line.{i}.Stats.Showtime.";
+            reference
+              "Device.DSL.Line.{i}.Stats.Showtime.";
+            uses line-stats-showtime-g;
+          }
+          container total {
+            description
+              "Container for object class Device.DSL.Line.{i}.Stats.Total.";
+            reference
+              "Device.DSL.Line.{i}.Stats.Total.";
+            uses line-stats-total-g;
+          }
+        }
+        container test-params {
+          description
+            "Container for object class Device.DSL.Line.{i}.TestParams.";
+          reference
+            "Device.DSL.Line.{i}.TestParams.";
+          uses line-test-params-g;
+        }
+      }
+    }
+    container ds-lite {
+      description
+        "Container for object class Device.DSLite.";
+      reference
+        "Device.DSLite.";
+      uses device-ds-lite-g;
+      list interface-setting {
+        key "index";
+        description
+          "Device.DSLite.InterfaceSetting.{i}.";
+        reference
+          "Device.DSLite.InterfaceSetting.{i}.";
+        uses ds-lite-interface-setting-g;
+      }
+    }
+    container device-info {
+      description
+        "Container for object class Device.DeviceInfo.";
+      reference
+        "Device.DeviceInfo.";
+      uses device-device-info-g;
+      list device-image-file {
+        key "index";
+        description
+          "Device.DeviceInfo.DeviceImageFile.{i}.";
+        reference
+          "Device.DeviceInfo.DeviceImageFile.{i}.";
+        uses device-info-device-image-file-g;
+      }
+      list firmware-image {
+        key "index";
+        description
+          "Device.DeviceInfo.FirmwareImage.{i}.";
+        reference
+          "Device.DeviceInfo.FirmwareImage.{i}.";
+        uses device-info-firmware-image-g;
+      }
+      list location {
+        key "index";
+        description
+          "Device.DeviceInfo.Location.{i}.";
+        reference
+          "Device.DeviceInfo.Location.{i}.";
+        uses device-info-location-g;
+      }
+      container memory-status {
+        description
+          "Container for object class Device.DeviceInfo.MemoryStatus.";
+        reference
+          "Device.DeviceInfo.MemoryStatus.";
+        uses device-info-memory-status-g;
+      }
+      container network-properties {
+        description
+          "Container for object class Device.DeviceInfo.NetworkProperties.";
+        reference
+          "Device.DeviceInfo.NetworkProperties.";
+        uses device-info-network-properties-g;
+      }
+      container process-status {
+        description
+          "Container for object class Device.DeviceInfo.ProcessStatus.";
+        reference
+          "Device.DeviceInfo.ProcessStatus.";
+        uses device-info-process-status-g;
+        list process {
+          key "index";
+          description
+            "Device.DeviceInfo.ProcessStatus.Process.{i}.";
+          reference
+            "Device.DeviceInfo.ProcessStatus.Process.{i}.";
+          uses process-status-process-g;
+        }
+      }
+      list processor {
+        key "index";
+        description
+          "Device.DeviceInfo.Processor.{i}.";
+        reference
+          "Device.DeviceInfo.Processor.{i}.";
+        uses device-info-processor-g;
+      }
+      container proxier-info {
+        description
+          "Container for object class Device.DeviceInfo.ProxierInfo.";
+        reference
+          "Device.DeviceInfo.ProxierInfo.";
+        uses device-info-proxier-info-g;
+      }
+      list supported-data-model {
+        key "index";
+        description
+          "Device.DeviceInfo.SupportedDataModel.{i}.";
+        reference
+          "Device.DeviceInfo.SupportedDataModel.{i}.";
+        uses device-info-supported-data-model-g;
+      }
+      container temperature-status {
+        description
+          "Container for object class Device.DeviceInfo.TemperatureStatus.";
+        reference
+          "Device.DeviceInfo.TemperatureStatus.";
+        uses device-info-temperature-status-g;
+        list temperature-sensor {
+          key "index";
+          description
+            "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.";
+          reference
+            "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.";
+          uses temperature-status-temperature-sensor-g;
+        }
+      }
+      list vendor-config-file {
+        key "index";
+        description
+          "Device.DeviceInfo.VendorConfigFile.{i}.";
+        reference
+          "Device.DeviceInfo.VendorConfigFile.{i}.";
+        uses device-info-vendor-config-file-g;
+      }
+      list vendor-log-file {
+        key "index";
+        description
+          "Device.DeviceInfo.VendorLogFile.{i}.";
+        reference
+          "Device.DeviceInfo.VendorLogFile.{i}.";
+        uses device-info-vendor-log-file-g;
+      }
+    }
+    container dynamic-dns {
+      description
+        "Container for object class Device.DynamicDNS.";
+      reference
+        "Device.DynamicDNS.";
+      uses device-dynamic-dns-g;
+      list client {
+        key "index";
+        description
+          "Device.DynamicDNS.Client.{i}.";
+        reference
+          "Device.DynamicDNS.Client.{i}.";
+        uses dynamic-dns-client-g;
+        list hostname {
+          key "index";
+          description
+            "Device.DynamicDNS.Client.{i}.Hostname.{i}.";
+          reference
+            "Device.DynamicDNS.Client.{i}.Hostname.{i}.";
+          uses client-hostname-g;
+        }
+      }
+      list server {
+        key "index";
+        description
+          "Device.DynamicDNS.Server.{i}.";
+        reference
+          "Device.DynamicDNS.Server.{i}.";
+        uses dynamic-dns-server-g;
+      }
+    }
+    container etsi-m2-m {
+      description
+        "Container for object class Device.ETSIM2M.";
+      reference
+        "Device.ETSIM2M.";
+      uses device-etsi-m2-m-g;
+      list scl {
+        key "index";
+        description
+          "Device.ETSIM2M.SCL.{i}.";
+        reference
+          "Device.ETSIM2M.SCL.{i}.";
+        uses etsi-m2-m-scl-g;
+        list area-nwk-device-info-instance {
+          key "index";
+          description
+            "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.";
+          reference
+            "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.";
+          uses scl-area-nwk-device-info-instance-g;
+          list property {
+            key "index";
+            description
+              "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Property.{i}.";
+            reference
+              "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Property.{i}.";
+            uses area-nwk-device-info-instance-property-g;
+          }
+        }
+        list area-nwk-instance {
+          key "index";
+          description
+            "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.";
+          reference
+            "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.";
+          uses scl-area-nwk-instance-g;
+          list property {
+            key "index";
+            description
+              "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.Property.{i}.";
+            reference
+              "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.Property.{i}.";
+            uses area-nwk-instance-property-g;
+          }
+        }
+        container discovery {
+          description
+            "Container for object class Device.ETSIM2M.SCL.{i}.Discovery.";
+          reference
+            "Device.ETSIM2M.SCL.{i}.Discovery.";
+          uses scl-discovery-g;
+        }
+        container reregistration {
+          description
+            "Container for object class Device.ETSIM2M.SCL.{i}.Reregistration.";
+          reference
+            "Device.ETSIM2M.SCL.{i}.Reregistration.";
+          uses scl-reregistration-g;
+          container action-status {
+            description
+              "Container for object class Device.ETSIM2M.SCL.{i}.Reregistration.ActionStatus.";
+            reference
+              "Device.ETSIM2M.SCL.{i}.Reregistration.ActionStatus.";
+            uses reregistration-action-status-g;
+          }
+        }
+        list saf-policy-set {
+          key "index";
+          description
+            "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.";
+          reference
+            "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.";
+          uses scl-saf-policy-set-g;
+          list anp-policy {
+            key "index";
+            description
+              "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.";
+            reference
+              "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.";
+            uses saf-policy-set-anp-policy-g;
+            list block-period {
+              key "index";
+              description
+                "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.";
+              reference
+                "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.";
+              uses anp-policy-block-period-g;
+            }
+            list request-category {
+              key "index";
+              description
+                "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.";
+              reference
+                "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.";
+              uses anp-policy-request-category-g;
+              list schedule {
+                key "index";
+                description
+                  "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.";
+                reference
+                  "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.";
+                uses request-category-schedule-g;
+                list abs-time-span {
+                  key "index";
+                  description
+                    "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.";
+                  reference
+                    "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.";
+                  uses schedule-abs-time-span-g;
+                }
+              }
+            }
+          }
+          container m2-msp-policy {
+            description
+              "Container for object class Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.";
+            reference
+              "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.";
+            uses saf-policy-set-m2-msp-policy-g;
+            list request-category {
+              key "index";
+              description
+                "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.";
+              reference
+                "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.";
+              uses m2-msp-policy-request-category-g;
+            }
+          }
+        }
+      }
+    }
+    container ethernet {
+      description
+        "Container for object class Device.Ethernet.";
+      reference
+        "Device.Ethernet.";
+      uses device-ethernet-g;
+      list interface {
+        key "index";
+        description
+          "Device.Ethernet.Interface.{i}.";
+        reference
+          "Device.Ethernet.Interface.{i}.";
+        uses ethernet-interface-g;
+        container stats {
+          description
+            "Container for object class Device.Ethernet.Interface.{i}.Stats.";
+          reference
+            "Device.Ethernet.Interface.{i}.Stats.";
+          uses ethernet-interface-stats-g;
+        }
+      }
+      list lag {
+        key "index";
+        description
+          "Device.Ethernet.LAG.{i}.";
+        reference
+          "Device.Ethernet.LAG.{i}.";
+        uses ethernet-lag-g;
+        container stats {
+          description
+            "Container for object class Device.Ethernet.LAG.{i}.Stats.";
+          reference
+            "Device.Ethernet.LAG.{i}.Stats.";
+          uses lag-stats-g;
+        }
+      }
+      list link {
+        key "index";
+        description
+          "Device.Ethernet.Link.{i}.";
+        reference
+          "Device.Ethernet.Link.{i}.";
+        uses ethernet-link-g;
+        container stats {
+          description
+            "Container for object class Device.Ethernet.Link.{i}.Stats.";
+          reference
+            "Device.Ethernet.Link.{i}.Stats.";
+          uses ethernet-link-stats-g;
+        }
+      }
+      list rmon-stats {
+        key "index";
+        description
+          "Device.Ethernet.RMONStats.{i}.";
+        reference
+          "Device.Ethernet.RMONStats.{i}.";
+        uses ethernet-rmon-stats-g;
+      }
+      list vlan-termination {
+        key "index";
+        description
+          "Device.Ethernet.VLANTermination.{i}.";
+        reference
+          "Device.Ethernet.VLANTermination.{i}.";
+        uses ethernet-vlan-termination-g;
+        container stats {
+          description
+            "Container for object class Device.Ethernet.VLANTermination.{i}.Stats.";
+          reference
+            "Device.Ethernet.VLANTermination.{i}.Stats.";
+          uses vlan-termination-stats-g;
+        }
+      }
+    }
+    container fap {
+      description
+        "Container for object class Device.FAP.";
+      reference
+        "Device.FAP.";
+      uses device-fap-g;
+      container application-platform {
+        description
+          "Container for object class Device.FAP.ApplicationPlatform.";
+        reference
+          "Device.FAP.ApplicationPlatform.";
+        uses fap-application-platform-g;
+        container capabilities {
+          description
+            "Container for object class Device.FAP.ApplicationPlatform.Capabilities.";
+          reference
+            "Device.FAP.ApplicationPlatform.Capabilities.";
+          uses application-platform-capabilities-g;
+        }
+        container control {
+          description
+            "Container for object class Device.FAP.ApplicationPlatform.Control.";
+          reference
+            "Device.FAP.ApplicationPlatform.Control.";
+          uses application-platform-control-g;
+          container femto-awareness {
+            description
+              "Container for object class Device.FAP.ApplicationPlatform.Control.FemtoAwareness.";
+            reference
+              "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.";
+            uses control-femto-awareness-g;
+          }
+          container mms {
+            description
+              "Container for object class Device.FAP.ApplicationPlatform.Control.MMS.";
+            reference
+              "Device.FAP.ApplicationPlatform.Control.MMS.";
+            uses control-mms-g;
+          }
+          container sms {
+            description
+              "Container for object class Device.FAP.ApplicationPlatform.Control.SMS.";
+            reference
+              "Device.FAP.ApplicationPlatform.Control.SMS.";
+            uses control-sms-g;
+          }
+          container terminal-location {
+            description
+              "Container for object class Device.FAP.ApplicationPlatform.Control.TerminalLocation.";
+            reference
+              "Device.FAP.ApplicationPlatform.Control.TerminalLocation.";
+            uses control-terminal-location-g;
+          }
+        }
+        container monitoring {
+          description
+            "Container for object class Device.FAP.ApplicationPlatform.Monitoring.";
+          reference
+            "Device.FAP.ApplicationPlatform.Monitoring.";
+          uses application-platform-monitoring-g;
+          container femto-awareness {
+            description
+              "Container for object class Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.";
+            reference
+              "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.";
+            uses monitoring-femto-awareness-g;
+          }
+          container mms {
+            description
+              "Container for object class Device.FAP.ApplicationPlatform.Monitoring.MMS.";
+            reference
+              "Device.FAP.ApplicationPlatform.Monitoring.MMS.";
+            uses monitoring-mms-g;
+          }
+          container sms {
+            description
+              "Container for object class Device.FAP.ApplicationPlatform.Monitoring.SMS.";
+            reference
+              "Device.FAP.ApplicationPlatform.Monitoring.SMS.";
+            uses monitoring-sms-g;
+          }
+          container terminal-location {
+            description
+              "Container for object class Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.";
+            reference
+              "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.";
+            uses monitoring-terminal-location-g;
+          }
+        }
+      }
+      container gps {
+        description
+          "Container for object class Device.FAP.GPS.";
+        reference
+          "Device.FAP.GPS.";
+        uses fap-gps-g;
+        container agps-server-config {
+          description
+            "Container for object class Device.FAP.GPS.AGPSServerConfig.";
+          reference
+            "Device.FAP.GPS.AGPSServerConfig.";
+          uses gps-agps-server-config-g;
+        }
+        container continuous-gps-status {
+          description
+            "Container for object class Device.FAP.GPS.ContinuousGPSStatus.";
+          reference
+            "Device.FAP.GPS.ContinuousGPSStatus.";
+          uses gps-continuous-gps-status-g;
+        }
+      }
+      container perf-mgmt {
+        description
+          "Container for object class Device.FAP.PerfMgmt.";
+        reference
+          "Device.FAP.PerfMgmt.";
+        uses fap-perf-mgmt-g;
+        list config {
+          key "index";
+          description
+            "Device.FAP.PerfMgmt.Config.{i}.";
+          reference
+            "Device.FAP.PerfMgmt.Config.{i}.";
+          uses perf-mgmt-config-g;
+        }
+      }
+    }
+    container fast {
+      description
+        "Container for object class Device.FAST.";
+      reference
+        "Device.FAST.";
+      uses device-fast-g;
+      list line {
+        key "index";
+        description
+          "Device.FAST.Line.{i}.";
+        reference
+          "Device.FAST.Line.{i}.";
+        uses fast-line-g;
+        container stats {
+          description
+            "Container for object class Device.FAST.Line.{i}.Stats.";
+          reference
+            "Device.FAST.Line.{i}.Stats.";
+          uses fast-line-stats-g;
+          container current-day {
+            description
+              "Container for object class Device.FAST.Line.{i}.Stats.CurrentDay.";
+            reference
+              "Device.FAST.Line.{i}.Stats.CurrentDay.";
+            uses fast-line-stats-current-day-g;
+          }
+          container last-showtime {
+            description
+              "Container for object class Device.FAST.Line.{i}.Stats.LastShowtime.";
+            reference
+              "Device.FAST.Line.{i}.Stats.LastShowtime.";
+            uses fast-line-stats-last-showtime-g;
+          }
+          container quarter-hour {
+            description
+              "Container for object class Device.FAST.Line.{i}.Stats.QuarterHour.";
+            reference
+              "Device.FAST.Line.{i}.Stats.QuarterHour.";
+            uses fast-line-stats-quarter-hour-g;
+          }
+          container showtime {
+            description
+              "Container for object class Device.FAST.Line.{i}.Stats.Showtime.";
+            reference
+              "Device.FAST.Line.{i}.Stats.Showtime.";
+            uses fast-line-stats-showtime-g;
+          }
+          container total {
+            description
+              "Container for object class Device.FAST.Line.{i}.Stats.Total.";
+            reference
+              "Device.FAST.Line.{i}.Stats.Total.";
+            uses fast-line-stats-total-g;
+          }
+        }
+        container test-params {
+          description
+            "Container for object class Device.FAST.Line.{i}.TestParams.";
+          reference
+            "Device.FAST.Line.{i}.TestParams.";
+          uses fast-line-test-params-g;
+        }
+      }
+    }
+    container fault-mgmt {
+      description
+        "Container for object class Device.FaultMgmt.";
+      reference
+        "Device.FaultMgmt.";
+      uses device-fault-mgmt-g;
+      list current-alarm {
+        key "index";
+        description
+          "Device.FaultMgmt.CurrentAlarm.{i}.";
+        reference
+          "Device.FaultMgmt.CurrentAlarm.{i}.";
+        uses fault-mgmt-current-alarm-g;
+      }
+      list expedited-event {
+        key "index";
+        description
+          "Device.FaultMgmt.ExpeditedEvent.{i}.";
+        reference
+          "Device.FaultMgmt.ExpeditedEvent.{i}.";
+        uses fault-mgmt-expedited-event-g;
+      }
+      list history-event {
+        key "index";
+        description
+          "Device.FaultMgmt.HistoryEvent.{i}.";
+        reference
+          "Device.FaultMgmt.HistoryEvent.{i}.";
+        uses fault-mgmt-history-event-g;
+      }
+      list queued-event {
+        key "index";
+        description
+          "Device.FaultMgmt.QueuedEvent.{i}.";
+        reference
+          "Device.FaultMgmt.QueuedEvent.{i}.";
+        uses fault-mgmt-queued-event-g;
+      }
+      list supported-alarm {
+        key "index";
+        description
+          "Device.FaultMgmt.SupportedAlarm.{i}.";
+        reference
+          "Device.FaultMgmt.SupportedAlarm.{i}.";
+        uses fault-mgmt-supported-alarm-g;
+      }
+    }
+    container firewall {
+      description
+        "Container for object class Device.Firewall.";
+      reference
+        "Device.Firewall.";
+      uses device-firewall-g;
+      list chain {
+        key "index";
+        description
+          "Device.Firewall.Chain.{i}.";
+        reference
+          "Device.Firewall.Chain.{i}.";
+        uses firewall-chain-g;
+        list rule {
+          key "index";
+          description
+            "Device.Firewall.Chain.{i}.Rule.{i}.";
+          reference
+            "Device.Firewall.Chain.{i}.Rule.{i}.";
+          uses chain-rule-g;
+        }
+      }
+      list level {
+        key "index";
+        description
+          "Device.Firewall.Level.{i}.";
+        reference
+          "Device.Firewall.Level.{i}.";
+        uses firewall-level-g;
+      }
+    }
+    container gre {
+      description
+        "Container for object class Device.GRE.";
+      reference
+        "Device.GRE.";
+      uses device-gre-g;
+      list filter {
+        key "index";
+        description
+          "Device.GRE.Filter.{i}.";
+        reference
+          "Device.GRE.Filter.{i}.";
+        uses gre-filter-g;
+      }
+      list tunnel {
+        key "index";
+        description
+          "Device.GRE.Tunnel.{i}.";
+        reference
+          "Device.GRE.Tunnel.{i}.";
+        uses gre-tunnel-g;
+        list interface {
+          key "index";
+          description
+            "Device.GRE.Tunnel.{i}.Interface.{i}.";
+          reference
+            "Device.GRE.Tunnel.{i}.Interface.{i}.";
+          uses tunnel-interface-g;
+          container stats {
+            description
+              "Container for object class Device.GRE.Tunnel.{i}.Interface.{i}.Stats.";
+            reference
+              "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.";
+            uses tunnel-interface-stats-g;
+          }
+        }
+        container stats {
+          description
+            "Container for object class Device.GRE.Tunnel.{i}.Stats.";
+          reference
+            "Device.GRE.Tunnel.{i}.Stats.";
+          uses tunnel-stats-g;
+        }
+      }
+    }
+    container gateway-info {
+      description
+        "Container for object class Device.GatewayInfo.";
+      reference
+        "Device.GatewayInfo.";
+      uses device-gateway-info-g;
+    }
+    container ghn {
+      description
+        "Container for object class Device.Ghn.";
+      reference
+        "Device.Ghn.";
+      uses device-ghn-g;
+      container diagnostics {
+        description
+          "Container for object class Device.Ghn.Diagnostics.";
+        reference
+          "Device.Ghn.Diagnostics.";
+        uses ghn-diagnostics-g;
+        container phy-throughput {
+          description
+            "Container for object class Device.Ghn.Diagnostics.PHYThroughput.";
+          reference
+            "Device.Ghn.Diagnostics.PHYThroughput.";
+          uses diagnostics-phy-throughput-g;
+          list result {
+            key "index";
+            description
+              "Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.";
+            reference
+              "Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.";
+            uses phy-throughput-result-g;
+          }
+        }
+        container performance-monitoring {
+          description
+            "Container for object class Device.Ghn.Diagnostics.PerformanceMonitoring.";
+          reference
+            "Device.Ghn.Diagnostics.PerformanceMonitoring.";
+          uses diagnostics-performance-monitoring-g;
+          container channels {
+            description
+              "Container for object class Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.";
+            reference
+              "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.";
+            uses performance-monitoring-channels-g;
+            list channel {
+              key "index";
+              description
+                "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.";
+              reference
+                "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.";
+              uses channels-channel-g;
+            }
+          }
+          container nodes {
+            description
+              "Container for object class Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.";
+            reference
+              "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.";
+            uses performance-monitoring-nodes-g;
+            list node {
+              key "index";
+              description
+                "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.";
+              reference
+                "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.";
+              uses nodes-node-g;
+            }
+          }
+        }
+      }
+      list interface {
+        key "index";
+        description
+          "Device.Ghn.Interface.{i}.";
+        reference
+          "Device.Ghn.Interface.{i}.";
+        uses ghn-interface-g;
+        list associated-device {
+          key "index";
+          description
+            "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.";
+          reference
+            "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.";
+          uses interface-associated-device-g;
+        }
+        container dm-info {
+          description
+            "Container for object class Device.Ghn.Interface.{i}.DMInfo.";
+          reference
+            "Device.Ghn.Interface.{i}.DMInfo.";
+          uses interface-dm-info-g;
+        }
+        container sc-info {
+          description
+            "Container for object class Device.Ghn.Interface.{i}.SCInfo.";
+          reference
+            "Device.Ghn.Interface.{i}.SCInfo.";
+          uses interface-sc-info-g;
+        }
+        list sm-masked-band {
+          key "index";
+          description
+            "Device.Ghn.Interface.{i}.SMMaskedBand.{i}.";
+          reference
+            "Device.Ghn.Interface.{i}.SMMaskedBand.{i}.";
+          uses interface-sm-masked-band-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.Ghn.Interface.{i}.Stats.";
+          reference
+            "Device.Ghn.Interface.{i}.Stats.";
+          uses ghn-interface-stats-g;
+        }
+      }
+    }
+    container hpna {
+      description
+        "Container for object class Device.HPNA.";
+      reference
+        "Device.HPNA.";
+      uses device-hpna-g;
+      container diagnostics {
+        description
+          "Container for object class Device.HPNA.Diagnostics.";
+        reference
+          "Device.HPNA.Diagnostics.";
+        uses hpna-diagnostics-g;
+        container phy-throughput {
+          description
+            "Container for object class Device.HPNA.Diagnostics.PHYThroughput.";
+          reference
+            "Device.HPNA.Diagnostics.PHYThroughput.";
+          uses hpna-diagnostics-phy-throughput-g;
+          list result {
+            key "index";
+            description
+              "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.";
+            reference
+              "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.";
+            uses diagnostics-phy-throughput-result-g;
+          }
+        }
+        container performance-monitoring {
+          description
+            "Container for object class Device.HPNA.Diagnostics.PerformanceMonitoring.";
+          reference
+            "Device.HPNA.Diagnostics.PerformanceMonitoring.";
+          uses hpna-diagnostics-performance-monitoring-g;
+          container channels {
+            description
+              "Container for object class Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.";
+            reference
+              "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.";
+            uses diagnostics-performance-monitoring-channels-g;
+            list channel {
+              key "index";
+              description
+                "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.";
+              reference
+                "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.";
+              uses performance-monitoring-channels-channel-g;
+            }
+          }
+          container nodes {
+            description
+              "Container for object class Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.";
+            reference
+              "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.";
+            uses diagnostics-performance-monitoring-nodes-g;
+            list node {
+              key "index";
+              description
+                "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.";
+              reference
+                "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.";
+              uses performance-monitoring-nodes-node-g;
+            }
+          }
+        }
+      }
+      list interface {
+        key "index";
+        description
+          "Device.HPNA.Interface.{i}.";
+        reference
+          "Device.HPNA.Interface.{i}.";
+        uses hpna-interface-g;
+        list associated-device {
+          key "index";
+          description
+            "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.";
+          reference
+            "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.";
+          uses hpna-interface-associated-device-g;
+        }
+        container qo-s {
+          description
+            "Container for object class Device.HPNA.Interface.{i}.QoS.";
+          reference
+            "Device.HPNA.Interface.{i}.QoS.";
+          uses interface-qo-s-g;
+          list flow-spec {
+            key "index";
+            description
+              "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.";
+            reference
+              "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.";
+            uses qo-s-flow-spec-g;
+          }
+        }
+        container stats {
+          description
+            "Container for object class Device.HPNA.Interface.{i}.Stats.";
+          reference
+            "Device.HPNA.Interface.{i}.Stats.";
+          uses hpna-interface-stats-g;
+        }
+      }
+    }
+    container home-plug {
+      description
+        "Container for object class Device.HomePlug.";
+      reference
+        "Device.HomePlug.";
+      uses device-home-plug-g;
+      list interface {
+        key "index";
+        description
+          "Device.HomePlug.Interface.{i}.";
+        reference
+          "Device.HomePlug.Interface.{i}.";
+        uses home-plug-interface-g;
+        list associated-device {
+          key "index";
+          description
+            "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.";
+          reference
+            "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.";
+          uses home-plug-interface-associated-device-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.HomePlug.Interface.{i}.Stats.";
+          reference
+            "Device.HomePlug.Interface.{i}.Stats.";
+          uses home-plug-interface-stats-g;
+        }
+      }
+    }
+    container hosts {
+      description
+        "Container for object class Device.Hosts.";
+      reference
+        "Device.Hosts.";
+      uses device-hosts-g;
+      list host {
+        key "index";
+        description
+          "Device.Hosts.Host.{i}.";
+        reference
+          "Device.Hosts.Host.{i}.";
+        uses hosts-host-g;
+        list ipv4-address {
+          key "index";
+          description
+            "Device.Hosts.Host.{i}.IPv4Address.{i}.";
+          reference
+            "Device.Hosts.Host.{i}.IPv4Address.{i}.";
+          uses host-ipv4-address-g;
+        }
+        list ipv6-address {
+          key "index";
+          description
+            "Device.Hosts.Host.{i}.IPv6Address.{i}.";
+          reference
+            "Device.Hosts.Host.{i}.IPv6Address.{i}.";
+          uses host-ipv6-address-g;
+        }
+        container wan-stats {
+          description
+            "Container for object class Device.Hosts.Host.{i}.WANStats.";
+          reference
+            "Device.Hosts.Host.{i}.WANStats.";
+          uses host-wan-stats-g;
+        }
+      }
+    }
+    container ieee1905 {
+      description
+        "Container for object class Device.IEEE1905.";
+      reference
+        "Device.IEEE1905.";
+      uses device-ieee1905-g;
+      container al {
+        description
+          "Container for object class Device.IEEE1905.AL.";
+        reference
+          "Device.IEEE1905.AL.";
+        uses ieee1905-al-g;
+        container forwarding-table {
+          description
+            "Container for object class Device.IEEE1905.AL.ForwardingTable.";
+          reference
+            "Device.IEEE1905.AL.ForwardingTable.";
+          uses al-forwarding-table-g;
+          list forwarding-rule {
+            key "index";
+            description
+              "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.";
+            reference
+              "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.";
+            uses forwarding-table-forwarding-rule-g;
+          }
+        }
+        list interface {
+          key "index";
+          description
+            "Device.IEEE1905.AL.Interface.{i}.";
+          reference
+            "Device.IEEE1905.AL.Interface.{i}.";
+          uses al-interface-g;
+          list link {
+            key "index";
+            description
+              "Device.IEEE1905.AL.Interface.{i}.Link.{i}.";
+            reference
+              "Device.IEEE1905.AL.Interface.{i}.Link.{i}.";
+            uses interface-link-g;
+            container metric {
+              description
+                "Container for object class Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.";
+              reference
+                "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.";
+              uses link-metric-g;
+            }
+          }
+          list vendor-properties {
+            key "index";
+            description
+              "Device.IEEE1905.AL.Interface.{i}.VendorProperties.{i}.";
+            reference
+              "Device.IEEE1905.AL.Interface.{i}.VendorProperties.{i}.";
+            uses interface-vendor-properties-g;
+          }
+        }
+        container network-topology {
+          description
+            "Container for object class Device.IEEE1905.AL.NetworkTopology.";
+          reference
+            "Device.IEEE1905.AL.NetworkTopology.";
+          uses al-network-topology-g;
+          list change-log {
+            key "index";
+            description
+              "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.";
+            reference
+              "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.";
+            uses network-topology-change-log-g;
+          }
+          list ieee1905-device {
+            key "index";
+            description
+              "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.";
+            reference
+              "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.";
+            uses network-topology-ieee1905-device-g;
+            list bridging-tuple {
+              key "index";
+              description
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.BridgingTuple.{i}.";
+              reference
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.BridgingTuple.{i}.";
+              uses ieee1905-device-bridging-tuple-g;
+            }
+            list ieee1905-neighbor {
+              key "index";
+              description
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.";
+              reference
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.";
+              uses ieee1905-device-ieee1905-neighbor-g;
+              list metric {
+                key "index";
+                description
+                  "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.";
+                reference
+                  "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.";
+                uses ieee1905-neighbor-metric-g;
+              }
+            }
+            list ipv4-address {
+              key "index";
+              description
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.";
+              reference
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.";
+              uses ieee1905-device-ipv4-address-g;
+            }
+            list ipv6-address {
+              key "index";
+              description
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.";
+              reference
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.";
+              uses ieee1905-device-ipv6-address-g;
+            }
+            list interface {
+              key "index";
+              description
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.";
+              reference
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.";
+              uses ieee1905-device-interface-g;
+            }
+            list l2-neighbor {
+              key "index";
+              description
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2Neighbor.{i}.";
+              reference
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2Neighbor.{i}.";
+              uses ieee1905-device-l2-neighbor-g;
+            }
+            list non-ieee1905-neighbor {
+              key "index";
+              description
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905Neighbor.{i}.";
+              reference
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905Neighbor.{i}.";
+              uses ieee1905-device-non-ieee1905-neighbor-g;
+            }
+            list vendor-properties {
+              key "index";
+              description
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorProperties.{i}.";
+              reference
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorProperties.{i}.";
+              uses ieee1905-device-vendor-properties-g;
+            }
+          }
+        }
+        container networking-registrar {
+          description
+            "Container for object class Device.IEEE1905.AL.NetworkingRegistrar.";
+          reference
+            "Device.IEEE1905.AL.NetworkingRegistrar.";
+          uses al-networking-registrar-g;
+        }
+        container security {
+          description
+            "Container for object class Device.IEEE1905.AL.Security.";
+          reference
+            "Device.IEEE1905.AL.Security.";
+          uses al-security-g;
+        }
+      }
+    }
+    container ieee8021x {
+      description
+        "Container for object class Device.IEEE8021x.";
+      reference
+        "Device.IEEE8021x.";
+      uses device-ieee8021x-g;
+      list supplicant {
+        key "index";
+        description
+          "Device.IEEE8021x.Supplicant.{i}.";
+        reference
+          "Device.IEEE8021x.Supplicant.{i}.";
+        uses ieee8021x-supplicant-g;
+        container eapm-d5 {
+          description
+            "Container for object class Device.IEEE8021x.Supplicant.{i}.EAPMD5.";
+          reference
+            "Device.IEEE8021x.Supplicant.{i}.EAPMD5.";
+          uses supplicant-eapm-d5-g;
+        }
+        container eaptls {
+          description
+            "Container for object class Device.IEEE8021x.Supplicant.{i}.EAPTLS.";
+          reference
+            "Device.IEEE8021x.Supplicant.{i}.EAPTLS.";
+          uses supplicant-eaptls-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.IEEE8021x.Supplicant.{i}.Stats.";
+          reference
+            "Device.IEEE8021x.Supplicant.{i}.Stats.";
+          uses supplicant-stats-g;
+        }
+      }
+    }
+    container ip {
+      description
+        "Container for object class Device.IP.";
+      reference
+        "Device.IP.";
+      uses device-ip-g;
+      list active-port {
+        key "index";
+        description
+          "Device.IP.ActivePort.{i}.";
+        reference
+          "Device.IP.ActivePort.{i}.";
+        uses ip-active-port-g;
+      }
+      container diagnostics {
+        description
+          "Container for object class Device.IP.Diagnostics.";
+        reference
+          "Device.IP.Diagnostics.";
+        uses ip-diagnostics-g;
+        container download-diagnostics {
+          description
+            "Container for object class Device.IP.Diagnostics.DownloadDiagnostics.";
+          reference
+            "Device.IP.Diagnostics.DownloadDiagnostics.";
+          uses diagnostics-download-diagnostics-g;
+          list incremental-result {
+            key "index";
+            description
+              "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.";
+            reference
+              "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.";
+            uses download-diagnostics-incremental-result-g;
+          }
+          list per-connection-result {
+            key "index";
+            description
+              "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.";
+            reference
+              "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.";
+            uses download-diagnostics-per-connection-result-g;
+          }
+        }
+        container ip-ping {
+          description
+            "Container for object class Device.IP.Diagnostics.IPPing.";
+          reference
+            "Device.IP.Diagnostics.IPPing.";
+          uses diagnostics-ip-ping-g;
+        }
+        container server-selection-diagnostics {
+          description
+            "Container for object class Device.IP.Diagnostics.ServerSelectionDiagnostics.";
+          reference
+            "Device.IP.Diagnostics.ServerSelectionDiagnostics.";
+          uses diagnostics-server-selection-diagnostics-g;
+        }
+        container trace-route {
+          description
+            "Container for object class Device.IP.Diagnostics.TraceRoute.";
+          reference
+            "Device.IP.Diagnostics.TraceRoute.";
+          uses diagnostics-trace-route-g;
+          list route-hops {
+            key "index";
+            description
+              "Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.";
+            reference
+              "Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.";
+            uses trace-route-route-hops-g;
+          }
+        }
+        container udp-echo-config {
+          description
+            "Container for object class Device.IP.Diagnostics.UDPEchoConfig.";
+          reference
+            "Device.IP.Diagnostics.UDPEchoConfig.";
+          uses diagnostics-udp-echo-config-g;
+        }
+        container udp-echo-diagnostics {
+          description
+            "Container for object class Device.IP.Diagnostics.UDPEchoDiagnostics.";
+          reference
+            "Device.IP.Diagnostics.UDPEchoDiagnostics.";
+          uses diagnostics-udp-echo-diagnostics-g;
+          list individual-packet-result {
+            key "index";
+            description
+              "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.";
+            reference
+              "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.";
+            uses udp-echo-diagnostics-individual-packet-result-g;
+          }
+        }
+        container upload-diagnostics {
+          description
+            "Container for object class Device.IP.Diagnostics.UploadDiagnostics.";
+          reference
+            "Device.IP.Diagnostics.UploadDiagnostics.";
+          uses diagnostics-upload-diagnostics-g;
+          list incremental-result {
+            key "index";
+            description
+              "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.";
+            reference
+              "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.";
+            uses upload-diagnostics-incremental-result-g;
+          }
+          list per-connection-result {
+            key "index";
+            description
+              "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.";
+            reference
+              "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.";
+            uses upload-diagnostics-per-connection-result-g;
+          }
+        }
+      }
+      list interface {
+        key "index";
+        description
+          "Device.IP.Interface.{i}.";
+        reference
+          "Device.IP.Interface.{i}.";
+        uses ip-interface-g;
+        list ipv4-address {
+          key "index";
+          description
+            "Device.IP.Interface.{i}.IPv4Address.{i}.";
+          reference
+            "Device.IP.Interface.{i}.IPv4Address.{i}.";
+          uses interface-ipv4-address-g;
+        }
+        list ipv6-address {
+          key "index";
+          description
+            "Device.IP.Interface.{i}.IPv6Address.{i}.";
+          reference
+            "Device.IP.Interface.{i}.IPv6Address.{i}.";
+          uses interface-ipv6-address-g;
+        }
+        list ipv6-prefix {
+          key "index";
+          description
+            "Device.IP.Interface.{i}.IPv6Prefix.{i}.";
+          reference
+            "Device.IP.Interface.{i}.IPv6Prefix.{i}.";
+          uses interface-ipv6-prefix-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.IP.Interface.{i}.Stats.";
+          reference
+            "Device.IP.Interface.{i}.Stats.";
+          uses ip-interface-stats-g;
+        }
+        list twamp-reflector {
+          key "index";
+          description
+            "Device.IP.Interface.{i}.TWAMPReflector.{i}.";
+          reference
+            "Device.IP.Interface.{i}.TWAMPReflector.{i}.";
+          uses interface-twamp-reflector-g;
+        }
+      }
+    }
+    container i-psec {
+      description
+        "Container for object class Device.IPsec.";
+      reference
+        "Device.IPsec.";
+      uses device-i-psec-g;
+      list filter {
+        key "index";
+        description
+          "Device.IPsec.Filter.{i}.";
+        reference
+          "Device.IPsec.Filter.{i}.";
+        uses i-psec-filter-g;
+      }
+      list ikev2-sa {
+        key "index";
+        description
+          "Device.IPsec.IKEv2SA.{i}.";
+        reference
+          "Device.IPsec.IKEv2SA.{i}.";
+        uses i-psec-ikev2-sa-g;
+        list child-sa {
+          key "index";
+          description
+            "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.";
+          reference
+            "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.";
+          uses ikev2-sa-child-sa-g;
+          container stats {
+            description
+              "Container for object class Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.";
+            reference
+              "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.";
+            uses child-sa-stats-g;
+          }
+        }
+        list received-cp-attr {
+          key "index";
+          description
+            "Device.IPsec.IKEv2SA.{i}.ReceivedCPAttr.{i}.";
+          reference
+            "Device.IPsec.IKEv2SA.{i}.ReceivedCPAttr.{i}.";
+          uses ikev2-sa-received-cp-attr-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.IPsec.IKEv2SA.{i}.Stats.";
+          reference
+            "Device.IPsec.IKEv2SA.{i}.Stats.";
+          uses ikev2-sa-stats-g;
+        }
+      }
+      list profile {
+        key "index";
+        description
+          "Device.IPsec.Profile.{i}.";
+        reference
+          "Device.IPsec.Profile.{i}.";
+        uses i-psec-profile-g;
+        list sent-cp-attr {
+          key "index";
+          description
+            "Device.IPsec.Profile.{i}.SentCPAttr.{i}.";
+          reference
+            "Device.IPsec.Profile.{i}.SentCPAttr.{i}.";
+          uses profile-sent-cp-attr-g;
+        }
+      }
+      container stats {
+        description
+          "Container for object class Device.IPsec.Stats.";
+        reference
+          "Device.IPsec.Stats.";
+        uses i-psec-stats-g;
+      }
+      list tunnel {
+        key "index";
+        description
+          "Device.IPsec.Tunnel.{i}.";
+        reference
+          "Device.IPsec.Tunnel.{i}.";
+        uses i-psec-tunnel-g;
+        container stats {
+          description
+            "Container for object class Device.IPsec.Tunnel.{i}.Stats.";
+          reference
+            "Device.IPsec.Tunnel.{i}.Stats.";
+          uses i-psec-tunnel-stats-g;
+        }
+      }
+    }
+    container ipv6rd {
+      description
+        "Container for object class Device.IPv6rd.";
+      reference
+        "Device.IPv6rd.";
+      uses device-ipv6rd-g;
+      list interface-setting {
+        key "index";
+        description
+          "Device.IPv6rd.InterfaceSetting.{i}.";
+        reference
+          "Device.IPv6rd.InterfaceSetting.{i}.";
+        uses ipv6rd-interface-setting-g;
+      }
+    }
+    list interface-stack {
+      key "index";
+      description
+        "Device.InterfaceStack.{i}.";
+      reference
+        "Device.InterfaceStack.{i}.";
+      uses device-interface-stack-g;
+    }
+    container l2-tpv3 {
+      description
+        "Container for object class Device.L2TPv3.";
+      reference
+        "Device.L2TPv3.";
+      uses device-l2-tpv3-g;
+      list filter {
+        key "index";
+        description
+          "Device.L2TPv3.Filter.{i}.";
+        reference
+          "Device.L2TPv3.Filter.{i}.";
+        uses l2-tpv3-filter-g;
+      }
+      list tunnel {
+        key "index";
+        description
+          "Device.L2TPv3.Tunnel.{i}.";
+        reference
+          "Device.L2TPv3.Tunnel.{i}.";
+        uses l2-tpv3-tunnel-g;
+        list interface {
+          key "index";
+          description
+            "Device.L2TPv3.Tunnel.{i}.Interface.{i}.";
+          reference
+            "Device.L2TPv3.Tunnel.{i}.Interface.{i}.";
+          uses l2-tpv3-tunnel-interface-g;
+          container stats {
+            description
+              "Container for object class Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.";
+            reference
+              "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.";
+            uses l2-tpv3-tunnel-interface-stats-g;
+          }
+        }
+        container stats {
+          description
+            "Container for object class Device.L2TPv3.Tunnel.{i}.Stats.";
+          reference
+            "Device.L2TPv3.Tunnel.{i}.Stats.";
+          uses l2-tpv3-tunnel-stats-g;
+        }
+        container udp {
+          description
+            "Container for object class Device.L2TPv3.Tunnel.{i}.UDP.";
+          reference
+            "Device.L2TPv3.Tunnel.{i}.UDP.";
+          uses tunnel-udp-g;
+        }
+      }
+    }
+    container lan-config-security {
+      description
+        "Container for object class Device.LANConfigSecurity.";
+      reference
+        "Device.LANConfigSecurity.";
+      uses device-lan-config-security-g;
+    }
+    container le-ds {
+      description
+        "Container for object class Device.LEDs.";
+      reference
+        "Device.LEDs.";
+      uses device-le-ds-g;
+      list led {
+        key "index";
+        description
+          "Device.LEDs.LED.{i}.";
+        reference
+          "Device.LEDs.LED.{i}.";
+        uses le-ds-led-g;
+        container current-cycle-element {
+          description
+            "Container for object class Device.LEDs.LED.{i}.CurrentCycleElement.";
+          reference
+            "Device.LEDs.LED.{i}.CurrentCycleElement.";
+          uses led-current-cycle-element-g;
+        }
+        list cycle-element {
+          key "index";
+          description
+            "Device.LEDs.LED.{i}.CycleElement.{i}.";
+          reference
+            "Device.LEDs.LED.{i}.CycleElement.{i}.";
+          uses led-cycle-element-g;
+        }
+      }
+    }
+    container lldp {
+      description
+        "Container for object class Device.LLDP.";
+      reference
+        "Device.LLDP.";
+      uses device-lldp-g;
+      container discovery {
+        description
+          "Container for object class Device.LLDP.Discovery.";
+        reference
+          "Device.LLDP.Discovery.";
+        uses lldp-discovery-g;
+        list device {
+          key "index";
+          description
+            "Device.LLDP.Discovery.Device.{i}.";
+          reference
+            "Device.LLDP.Discovery.Device.{i}.";
+          uses discovery-device-g;
+          container device-information {
+            description
+              "Container for object class Device.LLDP.Discovery.Device.{i}.DeviceInformation.";
+            reference
+              "Device.LLDP.Discovery.Device.{i}.DeviceInformation.";
+            uses device-device-information-g;
+            list vendor-specific {
+              key "index";
+              description
+                "Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecific.{i}.";
+              reference
+                "Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecific.{i}.";
+              uses device-information-vendor-specific-g;
+            }
+          }
+          list port {
+            key "index";
+            description
+              "Device.LLDP.Discovery.Device.{i}.Port.{i}.";
+            reference
+              "Device.LLDP.Discovery.Device.{i}.Port.{i}.";
+            uses device-port-g;
+            container link-information {
+              description
+                "Container for object class Device.LLDP.Discovery.Device.{i}.Port.{i}.LinkInformation.";
+              reference
+                "Device.LLDP.Discovery.Device.{i}.Port.{i}.LinkInformation.";
+              uses port-link-information-g;
+            }
+          }
+        }
+      }
+    }
+    container lmap {
+      description
+        "Container for object class Device.LMAP.";
+      reference
+        "Device.LMAP.";
+      uses device-lmap-g;
+      list event {
+        key "index";
+        description
+          "Device.LMAP.Event.{i}.";
+        reference
+          "Device.LMAP.Event.{i}.";
+        uses lmap-event-g;
+        container calendar-timer {
+          description
+            "Container for object class Device.LMAP.Event.{i}.CalendarTimer.";
+          reference
+            "Device.LMAP.Event.{i}.CalendarTimer.";
+          uses event-calendar-timer-g;
+        }
+        container one-off {
+          description
+            "Container for object class Device.LMAP.Event.{i}.OneOff.";
+          reference
+            "Device.LMAP.Event.{i}.OneOff.";
+          uses event-one-off-g;
+        }
+        container periodic-timer {
+          description
+            "Container for object class Device.LMAP.Event.{i}.PeriodicTimer.";
+          reference
+            "Device.LMAP.Event.{i}.PeriodicTimer.";
+          uses event-periodic-timer-g;
+        }
+      }
+      list measurement-agent {
+        key "index";
+        description
+          "Device.LMAP.MeasurementAgent.{i}.";
+        reference
+          "Device.LMAP.MeasurementAgent.{i}.";
+        uses lmap-measurement-agent-g;
+        list communication-channel {
+          key "index";
+          description
+            "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.";
+          reference
+            "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.";
+          uses measurement-agent-communication-channel-g;
+        }
+        container controller {
+          description
+            "Container for object class Device.LMAP.MeasurementAgent.{i}.Controller.";
+          reference
+            "Device.LMAP.MeasurementAgent.{i}.Controller.";
+          uses measurement-agent-controller-g;
+        }
+        list instruction {
+          key "index";
+          description
+            "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.";
+          reference
+            "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.";
+          uses measurement-agent-instruction-g;
+          list measurement-suppression {
+            key "index";
+            description
+              "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.";
+            reference
+              "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.";
+            uses instruction-measurement-suppression-g;
+          }
+        }
+        list schedule {
+          key "index";
+          description
+            "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.";
+          reference
+            "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.";
+          uses measurement-agent-schedule-g;
+          list action {
+            key "index";
+            description
+              "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.";
+            reference
+              "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.";
+            uses schedule-action-g;
+            list option {
+              key "index";
+              description
+                "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.";
+              reference
+                "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.";
+              uses action-option-g;
+            }
+            container stats {
+              description
+                "Container for object class Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.";
+              reference
+                "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.";
+              uses action-stats-g;
+            }
+          }
+          container stats {
+            description
+              "Container for object class Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.";
+            reference
+              "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.";
+            uses schedule-stats-g;
+          }
+        }
+        list task {
+          key "index";
+          description
+            "Device.LMAP.MeasurementAgent.{i}.Task.{i}.";
+          reference
+            "Device.LMAP.MeasurementAgent.{i}.Task.{i}.";
+          uses measurement-agent-task-g;
+          list option {
+            key "index";
+            description
+              "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.";
+            reference
+              "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.";
+            uses task-option-g;
+          }
+          list registry {
+            key "index";
+            description
+              "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.";
+            reference
+              "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.";
+            uses task-registry-g;
+          }
+        }
+        list task-capability {
+          key "index";
+          description
+            "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.";
+          reference
+            "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.";
+          uses measurement-agent-task-capability-g;
+          list registry {
+            key "index";
+            description
+              "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Registry.{i}.";
+            reference
+              "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Registry.{i}.";
+            uses task-capability-registry-g;
+          }
+        }
+      }
+      list report {
+        key "index";
+        description
+          "Device.LMAP.Report.{i}.";
+        reference
+          "Device.LMAP.Report.{i}.";
+        uses lmap-report-g;
+        list result {
+          key "index";
+          description
+            "Device.LMAP.Report.{i}.Result.{i}.";
+          reference
+            "Device.LMAP.Report.{i}.Result.{i}.";
+          uses report-result-g;
+          list conflict {
+            key "index";
+            description
+              "Device.LMAP.Report.{i}.Result.{i}.Conflict.{i}.";
+            reference
+              "Device.LMAP.Report.{i}.Result.{i}.Conflict.{i}.";
+            uses result-conflict-g;
+          }
+          list option {
+            key "index";
+            description
+              "Device.LMAP.Report.{i}.Result.{i}.Option.{i}.";
+            reference
+              "Device.LMAP.Report.{i}.Result.{i}.Option.{i}.";
+            uses result-option-g;
+          }
+          list report-table {
+            key "index";
+            description
+              "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.";
+            reference
+              "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.";
+            uses result-report-table-g;
+            list registry {
+              key "index";
+              description
+                "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.Registry.{i}.";
+              reference
+                "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.Registry.{i}.";
+              uses report-table-registry-g;
+            }
+            list result-row {
+              key "index";
+              description
+                "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.ResultRow.{i}.";
+              reference
+                "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.ResultRow.{i}.";
+              uses report-table-result-row-g;
+            }
+          }
+        }
+      }
+    }
+    container map {
+      description
+        "Container for object class Device.MAP.";
+      reference
+        "Device.MAP.";
+      uses device-map-g;
+      list domain {
+        key "index";
+        description
+          "Device.MAP.Domain.{i}.";
+        reference
+          "Device.MAP.Domain.{i}.";
+        uses map-domain-g;
+        container interface {
+          description
+            "Container for object class Device.MAP.Domain.{i}.Interface.";
+          reference
+            "Device.MAP.Domain.{i}.Interface.";
+          uses domain-interface-g;
+          container stats {
+            description
+              "Container for object class Device.MAP.Domain.{i}.Interface.Stats.";
+            reference
+              "Device.MAP.Domain.{i}.Interface.Stats.";
+            uses domain-interface-stats-g;
+          }
+        }
+        list rule {
+          key "index";
+          description
+            "Device.MAP.Domain.{i}.Rule.{i}.";
+          reference
+            "Device.MAP.Domain.{i}.Rule.{i}.";
+          uses domain-rule-g;
+        }
+      }
+    }
+    container mqtt {
+      description
+        "Container for object class Device.MQTT.";
+      reference
+        "Device.MQTT.";
+      uses device-mqtt-g;
+      list broker {
+        key "index";
+        description
+          "Device.MQTT.Broker.{i}.";
+        reference
+          "Device.MQTT.Broker.{i}.";
+        uses mqtt-broker-g;
+        list bridge {
+          key "index";
+          description
+            "Device.MQTT.Broker.{i}.Bridge.{i}.";
+          reference
+            "Device.MQTT.Broker.{i}.Bridge.{i}.";
+          uses broker-bridge-g;
+          list server {
+            key "index";
+            description
+              "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.";
+            reference
+              "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.";
+            uses bridge-server-g;
+          }
+          list subscription {
+            key "index";
+            description
+              "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.";
+            reference
+              "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.";
+            uses bridge-subscription-g;
+          }
+        }
+        container stats {
+          description
+            "Container for object class Device.MQTT.Broker.{i}.Stats.";
+          reference
+            "Device.MQTT.Broker.{i}.Stats.";
+          uses broker-stats-g;
+        }
+      }
+      container capabilities {
+        description
+          "Container for object class Device.MQTT.Capabilities.";
+        reference
+          "Device.MQTT.Capabilities.";
+        uses mqtt-capabilities-g;
+      }
+      list client {
+        key "index";
+        description
+          "Device.MQTT.Client.{i}.";
+        reference
+          "Device.MQTT.Client.{i}.";
+        uses mqtt-client-g;
+        container stats {
+          description
+            "Container for object class Device.MQTT.Client.{i}.Stats.";
+          reference
+            "Device.MQTT.Client.{i}.Stats.";
+          uses client-stats-g;
+        }
+        list subscription {
+          key "index";
+          description
+            "Device.MQTT.Client.{i}.Subscription.{i}.";
+          reference
+            "Device.MQTT.Client.{i}.Subscription.{i}.";
+          uses client-subscription-g;
+        }
+      }
+    }
+    container management-server {
+      description
+        "Container for object class Device.ManagementServer.";
+      reference
+        "Device.ManagementServer.";
+      uses device-management-server-g;
+      container autonomous-transfer-complete-policy {
+        description
+          "Container for object class Device.ManagementServer.AutonomousTransferCompletePolicy.";
+        reference
+          "Device.ManagementServer.AutonomousTransferCompletePolicy.";
+        uses management-server-autonomous-transfer-complete-policy-g;
+      }
+      container du-state-change-compl-policy {
+        description
+          "Container for object class Device.ManagementServer.DUStateChangeComplPolicy.";
+        reference
+          "Device.ManagementServer.DUStateChangeComplPolicy.";
+        uses management-server-du-state-change-compl-policy-g;
+      }
+      container download-availability {
+        description
+          "Container for object class Device.ManagementServer.DownloadAvailability.";
+        reference
+          "Device.ManagementServer.DownloadAvailability.";
+        uses management-server-download-availability-g;
+        container announcement {
+          description
+            "Container for object class Device.ManagementServer.DownloadAvailability.Announcement.";
+          reference
+            "Device.ManagementServer.DownloadAvailability.Announcement.";
+          uses download-availability-announcement-g;
+          list group {
+            key "index";
+            description
+              "Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.";
+            reference
+              "Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.";
+            uses announcement-group-g;
+          }
+        }
+        container query {
+          description
+            "Container for object class Device.ManagementServer.DownloadAvailability.Query.";
+          reference
+            "Device.ManagementServer.DownloadAvailability.Query.";
+          uses download-availability-query-g;
+        }
+      }
+      list embedded-device {
+        key "index";
+        description
+          "Device.ManagementServer.EmbeddedDevice.{i}.";
+        reference
+          "Device.ManagementServer.EmbeddedDevice.{i}.";
+        uses management-server-embedded-device-g;
+      }
+      container heartbeat-policy {
+        description
+          "Container for object class Device.ManagementServer.HeartbeatPolicy.";
+        reference
+          "Device.ManagementServer.HeartbeatPolicy.";
+        uses management-server-heartbeat-policy-g;
+      }
+      list inform-parameter {
+        key "index";
+        description
+          "Device.ManagementServer.InformParameter.{i}.";
+        reference
+          "Device.ManagementServer.InformParameter.{i}.";
+        uses management-server-inform-parameter-g;
+      }
+      list manageable-device {
+        key "index";
+        description
+          "Device.ManagementServer.ManageableDevice.{i}.";
+        reference
+          "Device.ManagementServer.ManageableDevice.{i}.";
+        uses management-server-manageable-device-g;
+      }
+      container standby-policy {
+        description
+          "Container for object class Device.ManagementServer.StandbyPolicy.";
+        reference
+          "Device.ManagementServer.StandbyPolicy.";
+        uses management-server-standby-policy-g;
+      }
+      list virtual-device {
+        key "index";
+        description
+          "Device.ManagementServer.VirtualDevice.{i}.";
+        reference
+          "Device.ManagementServer.VirtualDevice.{i}.";
+        uses management-server-virtual-device-g;
+      }
+    }
+    container mo-ca {
+      description
+        "Container for object class Device.MoCA.";
+      reference
+        "Device.MoCA.";
+      uses device-mo-ca-g;
+      list interface {
+        key "index";
+        description
+          "Device.MoCA.Interface.{i}.";
+        reference
+          "Device.MoCA.Interface.{i}.";
+        uses mo-ca-interface-g;
+        list associated-device {
+          key "index";
+          description
+            "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.";
+          reference
+            "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.";
+          uses mo-ca-interface-associated-device-g;
+        }
+        container qo-s {
+          description
+            "Container for object class Device.MoCA.Interface.{i}.QoS.";
+          reference
+            "Device.MoCA.Interface.{i}.QoS.";
+          uses mo-ca-interface-qo-s-g;
+          list flow-stats {
+            key "index";
+            description
+              "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.";
+            reference
+              "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.";
+            uses qo-s-flow-stats-g;
+          }
+        }
+        container stats {
+          description
+            "Container for object class Device.MoCA.Interface.{i}.Stats.";
+          reference
+            "Device.MoCA.Interface.{i}.Stats.";
+          uses mo-ca-interface-stats-g;
+        }
+      }
+    }
+    container nat {
+      description
+        "Container for object class Device.NAT.";
+      reference
+        "Device.NAT.";
+      uses device-nat-g;
+      list interface-setting {
+        key "index";
+        description
+          "Device.NAT.InterfaceSetting.{i}.";
+        reference
+          "Device.NAT.InterfaceSetting.{i}.";
+        uses nat-interface-setting-g;
+      }
+      list port-mapping {
+        key "index";
+        description
+          "Device.NAT.PortMapping.{i}.";
+        reference
+          "Device.NAT.PortMapping.{i}.";
+        uses nat-port-mapping-g;
+      }
+    }
+    container neighbor-discovery {
+      description
+        "Container for object class Device.NeighborDiscovery.";
+      reference
+        "Device.NeighborDiscovery.";
+      uses device-neighbor-discovery-g;
+      list interface-setting {
+        key "index";
+        description
+          "Device.NeighborDiscovery.InterfaceSetting.{i}.";
+        reference
+          "Device.NeighborDiscovery.InterfaceSetting.{i}.";
+        uses neighbor-discovery-interface-setting-g;
+      }
+    }
+    container optical {
+      description
+        "Container for object class Device.Optical.";
+      reference
+        "Device.Optical.";
+      uses device-optical-g;
+      list interface {
+        key "index";
+        description
+          "Device.Optical.Interface.{i}.";
+        reference
+          "Device.Optical.Interface.{i}.";
+        uses optical-interface-g;
+        container stats {
+          description
+            "Container for object class Device.Optical.Interface.{i}.Stats.";
+          reference
+            "Device.Optical.Interface.{i}.Stats.";
+          uses optical-interface-stats-g;
+        }
+      }
+    }
+    container pcp {
+      description
+        "Container for object class Device.PCP.";
+      reference
+        "Device.PCP.";
+      uses device-pcp-g;
+      list client {
+        key "index";
+        description
+          "Device.PCP.Client.{i}.";
+        reference
+          "Device.PCP.Client.{i}.";
+        uses pcp-client-g;
+        container pcp-proxy {
+          description
+            "Container for object class Device.PCP.Client.{i}.PCPProxy.";
+          reference
+            "Device.PCP.Client.{i}.PCPProxy.";
+          uses client-pcp-proxy-g;
+        }
+        list server {
+          key "index";
+          description
+            "Device.PCP.Client.{i}.Server.{i}.";
+          reference
+            "Device.PCP.Client.{i}.Server.{i}.";
+          uses pcp-client-server-g;
+          list inbound-mapping {
+            key "index";
+            description
+              "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.";
+            reference
+              "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.";
+            uses server-inbound-mapping-g;
+            list filter {
+              key "index";
+              description
+                "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.";
+              reference
+                "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.";
+              uses inbound-mapping-filter-g;
+            }
+          }
+          list outbound-mapping {
+            key "index";
+            description
+              "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.";
+            reference
+              "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.";
+            uses server-outbound-mapping-g;
+          }
+        }
+        container u-pn-piwf {
+          description
+            "Container for object class Device.PCP.Client.{i}.UPnPIWF.";
+          reference
+            "Device.PCP.Client.{i}.UPnPIWF.";
+          uses client-u-pn-piwf-g;
+        }
+      }
+    }
+    container ppp {
+      description
+        "Container for object class Device.PPP.";
+      reference
+        "Device.PPP.";
+      uses device-ppp-g;
+      list interface {
+        key "index";
+        description
+          "Device.PPP.Interface.{i}.";
+        reference
+          "Device.PPP.Interface.{i}.";
+        uses ppp-interface-g;
+        container ipcp {
+          description
+            "Container for object class Device.PPP.Interface.{i}.IPCP.";
+          reference
+            "Device.PPP.Interface.{i}.IPCP.";
+          uses interface-ipcp-g;
+        }
+        container ipv6-cp {
+          description
+            "Container for object class Device.PPP.Interface.{i}.IPv6CP.";
+          reference
+            "Device.PPP.Interface.{i}.IPv6CP.";
+          uses interface-ipv6-cp-g;
+        }
+        container pp-po-a {
+          description
+            "Container for object class Device.PPP.Interface.{i}.PPPoA.";
+          reference
+            "Device.PPP.Interface.{i}.PPPoA.";
+          uses interface-pp-po-a-g;
+        }
+        container pp-po-e {
+          description
+            "Container for object class Device.PPP.Interface.{i}.PPPoE.";
+          reference
+            "Device.PPP.Interface.{i}.PPPoE.";
+          uses interface-pp-po-e-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.PPP.Interface.{i}.Stats.";
+          reference
+            "Device.PPP.Interface.{i}.Stats.";
+          uses ppp-interface-stats-g;
+        }
+      }
+    }
+    container ptm {
+      description
+        "Container for object class Device.PTM.";
+      reference
+        "Device.PTM.";
+      uses device-ptm-g;
+      list link {
+        key "index";
+        description
+          "Device.PTM.Link.{i}.";
+        reference
+          "Device.PTM.Link.{i}.";
+        uses ptm-link-g;
+        container stats {
+          description
+            "Container for object class Device.PTM.Link.{i}.Stats.";
+          reference
+            "Device.PTM.Link.{i}.Stats.";
+          uses ptm-link-stats-g;
+        }
+      }
+    }
+    container periodic-statistics {
+      description
+        "Container for object class Device.PeriodicStatistics.";
+      reference
+        "Device.PeriodicStatistics.";
+      uses device-periodic-statistics-g;
+      list sample-set {
+        key "index";
+        description
+          "Device.PeriodicStatistics.SampleSet.{i}.";
+        reference
+          "Device.PeriodicStatistics.SampleSet.{i}.";
+        uses periodic-statistics-sample-set-g;
+        list parameter {
+          key "index";
+          description
+            "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.";
+          reference
+            "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.";
+          uses sample-set-parameter-g;
+        }
+      }
+    }
+    container qo-s {
+      description
+        "Container for object class Device.QoS.";
+      reference
+        "Device.QoS.";
+      uses device-qo-s-g;
+      list app {
+        key "index";
+        description
+          "Device.QoS.App.{i}.";
+        reference
+          "Device.QoS.App.{i}.";
+        uses qo-s-app-g;
+      }
+      list classification {
+        key "index";
+        description
+          "Device.QoS.Classification.{i}.";
+        reference
+          "Device.QoS.Classification.{i}.";
+        uses qo-s-classification-g;
+      }
+      list flow {
+        key "index";
+        description
+          "Device.QoS.Flow.{i}.";
+        reference
+          "Device.QoS.Flow.{i}.";
+        uses qo-s-flow-g;
+      }
+      list policer {
+        key "index";
+        description
+          "Device.QoS.Policer.{i}.";
+        reference
+          "Device.QoS.Policer.{i}.";
+        uses qo-s-policer-g;
+      }
+      list queue {
+        key "index";
+        description
+          "Device.QoS.Queue.{i}.";
+        reference
+          "Device.QoS.Queue.{i}.";
+        uses qo-s-queue-g;
+      }
+      list queue-stats {
+        key "index";
+        description
+          "Device.QoS.QueueStats.{i}.";
+        reference
+          "Device.QoS.QueueStats.{i}.";
+        uses qo-s-queue-stats-g;
+      }
+      list shaper {
+        key "index";
+        description
+          "Device.QoS.Shaper.{i}.";
+        reference
+          "Device.QoS.Shaper.{i}.";
+        uses qo-s-shaper-g;
+      }
+    }
+    container router-advertisement {
+      description
+        "Container for object class Device.RouterAdvertisement.";
+      reference
+        "Device.RouterAdvertisement.";
+      uses device-router-advertisement-g;
+      list interface-setting {
+        key "index";
+        description
+          "Device.RouterAdvertisement.InterfaceSetting.{i}.";
+        reference
+          "Device.RouterAdvertisement.InterfaceSetting.{i}.";
+        uses router-advertisement-interface-setting-g;
+        list option {
+          key "index";
+          description
+            "Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.";
+          reference
+            "Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.";
+          uses interface-setting-option-g;
+        }
+      }
+    }
+    container routing {
+      description
+        "Container for object class Device.Routing.";
+      reference
+        "Device.Routing.";
+      uses device-routing-g;
+      container rip {
+        description
+          "Container for object class Device.Routing.RIP.";
+        reference
+          "Device.Routing.RIP.";
+        uses routing-rip-g;
+        list interface-setting {
+          key "index";
+          description
+            "Device.Routing.RIP.InterfaceSetting.{i}.";
+          reference
+            "Device.Routing.RIP.InterfaceSetting.{i}.";
+          uses rip-interface-setting-g;
+        }
+      }
+      container route-information {
+        description
+          "Container for object class Device.Routing.RouteInformation.";
+        reference
+          "Device.Routing.RouteInformation.";
+        uses routing-route-information-g;
+        list interface-setting {
+          key "index";
+          description
+            "Device.Routing.RouteInformation.InterfaceSetting.{i}.";
+          reference
+            "Device.Routing.RouteInformation.InterfaceSetting.{i}.";
+          uses route-information-interface-setting-g;
+        }
+      }
+      list router {
+        key "index";
+        description
+          "Device.Routing.Router.{i}.";
+        reference
+          "Device.Routing.Router.{i}.";
+        uses routing-router-g;
+        list ipv4-forwarding {
+          key "index";
+          description
+            "Device.Routing.Router.{i}.IPv4Forwarding.{i}.";
+          reference
+            "Device.Routing.Router.{i}.IPv4Forwarding.{i}.";
+          uses router-ipv4-forwarding-g;
+        }
+        list ipv6-forwarding {
+          key "index";
+          description
+            "Device.Routing.Router.{i}.IPv6Forwarding.{i}.";
+          reference
+            "Device.Routing.Router.{i}.IPv6Forwarding.{i}.";
+          uses router-ipv6-forwarding-g;
+        }
+      }
+    }
+    container security {
+      description
+        "Container for object class Device.Security.";
+      reference
+        "Device.Security.";
+      uses device-security-g;
+      list certificate {
+        key "index";
+        description
+          "Device.Security.Certificate.{i}.";
+        reference
+          "Device.Security.Certificate.{i}.";
+        uses security-certificate-g;
+      }
+    }
+    container self-test-diagnostics {
+      description
+        "Container for object class Device.SelfTestDiagnostics.";
+      reference
+        "Device.SelfTestDiagnostics.";
+      uses device-self-test-diagnostics-g;
+    }
+    container services {
+      description
+        "Container for object class Device.Services.";
+      reference
+        "Device.Services.";
+      uses device-services-g;
+      list fap-service {
+        key "index";
+        description
+          "FAPService.{i}.";
+        reference
+          "FAPService.{i}.";
+        uses fap-service-g;
+        container access-mgmt {
+          description
+            "Container for object class FAPService.{i}.AccessMgmt.";
+          reference
+            "FAPService.{i}.AccessMgmt.";
+          uses fap-service-access-mgmt-g;
+          container cdma2000 {
+            description
+              "Container for object class FAPService.{i}.AccessMgmt.CDMA2000.";
+            reference
+              "FAPService.{i}.AccessMgmt.CDMA2000.";
+            uses access-mgmt-cdma2000-g;
+            container local-ip-access {
+              description
+                "Container for object class FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.";
+              reference
+                "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.";
+              uses cdma2000-local-ip-access-g;
+              container hrpd {
+                description
+                  "Container for object class FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.";
+                reference
+                  "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.";
+                uses local-ip-access-hrpd-g;
+                list egress-filter {
+                  key "index";
+                  description
+                    "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.";
+                  reference
+                    "FAPService.{i}.AccessMgmt.CDMA2000.LocalIPAccess.HRPD.EgressFilter.{i}.";
+                  uses hrpd-egress-filter-g;
+                }
+              }
+            }
+            list member-detail {
+              key "index";
+              description
+                "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.";
+              reference
+                "FAPService.{i}.AccessMgmt.CDMA2000.MemberDetail.{i}.";
+              uses cdma2000-member-detail-g;
+            }
+          }
+          container lte {
+            description
+              "Container for object class FAPService.{i}.AccessMgmt.LTE.";
+            reference
+              "FAPService.{i}.AccessMgmt.LTE.";
+            uses access-mgmt-lte-g;
+            container local-ip-access {
+              description
+                "Container for object class FAPService.{i}.AccessMgmt.LTE.LocalIPAccess.";
+              reference
+                "FAPService.{i}.AccessMgmt.LTE.LocalIPAccess.";
+              uses lte-local-ip-access-g;
+            }
+          }
+          container legacy {
+            description
+              "Container for object class FAPService.{i}.AccessMgmt.Legacy.";
+            reference
+              "FAPService.{i}.AccessMgmt.Legacy.";
+            uses access-mgmt-legacy-g;
+            container local-ip-access {
+              description
+                "Container for object class FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.";
+              reference
+                "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.";
+              uses legacy-local-ip-access-g;
+              list rule {
+                key "index";
+                description
+                  "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.";
+                reference
+                  "FAPService.{i}.AccessMgmt.Legacy.LocalIPAccess.Rule.{i}.";
+                uses local-ip-access-rule-g;
+              }
+            }
+          }
+          container umts {
+            description
+              "Container for object class FAPService.{i}.AccessMgmt.UMTS.";
+            reference
+              "FAPService.{i}.AccessMgmt.UMTS.";
+            uses access-mgmt-umts-g;
+            container local-ip-access {
+              description
+                "Container for object class FAPService.{i}.AccessMgmt.UMTS.LocalIPAccess.";
+              reference
+                "FAPService.{i}.AccessMgmt.UMTS.LocalIPAccess.";
+              uses umts-local-ip-access-g;
+            }
+            list member-detail {
+              key "index";
+              description
+                "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.";
+              reference
+                "FAPService.{i}.AccessMgmt.UMTS.MemberDetail.{i}.";
+              uses umts-member-detail-g;
+            }
+          }
+        }
+        container capabilities {
+          description
+            "Container for object class FAPService.{i}.Capabilities.";
+          reference
+            "FAPService.{i}.Capabilities.";
+          uses fap-service-capabilities-g;
+          container cdma2000 {
+            description
+              "Container for object class FAPService.{i}.Capabilities.CDMA2000.";
+            reference
+              "FAPService.{i}.Capabilities.CDMA2000.";
+            uses capabilities-cdma2000-g;
+            container hrpd {
+              description
+                "Container for object class FAPService.{i}.Capabilities.CDMA2000.HRPD.";
+              reference
+                "FAPService.{i}.Capabilities.CDMA2000.HRPD.";
+              uses cdma2000-hrpd-g;
+              container self-config {
+                description
+                  "Container for object class FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.";
+                reference
+                  "FAPService.{i}.Capabilities.CDMA2000.HRPD.SelfConfig.";
+                uses hrpd-self-config-g;
+              }
+            }
+            container one-x {
+              description
+                "Container for object class FAPService.{i}.Capabilities.CDMA2000.OneX.";
+              reference
+                "FAPService.{i}.Capabilities.CDMA2000.OneX.";
+              uses cdma2000-one-x-g;
+              container self-config {
+                description
+                  "Container for object class FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.";
+                reference
+                  "FAPService.{i}.Capabilities.CDMA2000.OneX.SelfConfig.";
+                uses one-x-self-config-g;
+              }
+            }
+          }
+          container lte {
+            description
+              "Container for object class FAPService.{i}.Capabilities.LTE.";
+            reference
+              "FAPService.{i}.Capabilities.LTE.";
+            uses capabilities-lte-g;
+          }
+          container umts {
+            description
+              "Container for object class FAPService.{i}.Capabilities.UMTS.";
+            reference
+              "FAPService.{i}.Capabilities.UMTS.";
+            uses capabilities-umts-g;
+            container self-config {
+              description
+                "Container for object class FAPService.{i}.Capabilities.UMTS.SelfConfig.";
+              reference
+                "FAPService.{i}.Capabilities.UMTS.SelfConfig.";
+              uses umts-self-config-g;
+            }
+          }
+        }
+        container cell-config {
+          description
+            "Container for object class FAPService.{i}.CellConfig.";
+          reference
+            "FAPService.{i}.CellConfig.";
+          uses fap-service-cell-config-g;
+          container cdma2000 {
+            description
+              "Container for object class FAPService.{i}.CellConfig.CDMA2000.";
+            reference
+              "FAPService.{i}.CellConfig.CDMA2000.";
+            uses cell-config-cdma2000-g;
+            container beacon {
+              description
+                "Container for object class FAPService.{i}.CellConfig.CDMA2000.Beacon.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.Beacon.";
+              uses cdma2000-beacon-g;
+              list beacon-list {
+                key "index";
+                description
+                  "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.Beacon.BeaconList.{i}.";
+                uses beacon-beacon-list-g;
+              }
+              list hrpd-beacon-list {
+                key "index";
+                description
+                  "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.Beacon.HRPDBeaconList.{i}.";
+                uses beacon-hrpd-beacon-list-g;
+              }
+            }
+            container hrpd {
+              description
+                "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.HRPD.";
+              uses cell-config-cdma2000-hrpd-g;
+              container access-auth-config {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthConfig.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthConfig.";
+                uses hrpd-access-auth-config-g;
+              }
+              container access-auth-stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.HRPD.AccessAuthStats.";
+                uses hrpd-access-auth-stats-g;
+              }
+              list batch-pcfpdsn {
+                key "index";
+                description
+                  "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.HRPD.BatchPCFPDSN.{i}.";
+                uses hrpd-batch-pcfpdsn-g;
+              }
+              container call-control-stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.HRPD.CallControlStats.";
+                uses hrpd-call-control-stats-g;
+              }
+              container pcf-config {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.";
+                uses hrpd-pcf-config-g;
+                container pcf-performance-stats {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFConfig.PCFPerformanceStats.";
+                  uses pcf-config-pcf-performance-stats-g;
+                }
+              }
+              list pcfpdsn {
+                key "index";
+                description
+                  "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.";
+                uses hrpd-pcfpdsn-g;
+                container a11-reg-update-stats {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11RegUpdateStats.";
+                  uses pcfpdsn-a11-reg-update-stats-g;
+                }
+                container a11-session-update-stats {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.A11SessionUpdateStats.";
+                  uses pcfpdsn-a11-session-update-stats-g;
+                }
+                container aux-a10-stats {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.AuxA10Stats.";
+                  uses pcfpdsn-aux-a10-stats-g;
+                }
+                container pcfpdsn-stats {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.HRPD.PCFPDSN.{i}.PCFPDSNStats.";
+                  uses pcfpdsn-pcfpdsn-stats-g;
+                }
+              }
+              container qo-s-stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.HRPD.QoSStats.";
+                uses hrpd-qo-s-stats-g;
+              }
+              container ran {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.";
+                uses hrpd-ran-g;
+                container rf {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.HRPD.RAN.RF.";
+                  uses ran-rf-g;
+                }
+              }
+              container rnc-sig-apps-stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.HRPD.RNCSigAppsStats.";
+                uses hrpd-rnc-sig-apps-stats-g;
+              }
+              container redirect {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.HRPD.Redirect.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.HRPD.Redirect.";
+                uses hrpd-redirect-g;
+              }
+            }
+            container one-x {
+              description
+                "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.";
+              reference
+                "FAPService.{i}.CellConfig.CDMA2000.OneX.";
+              uses cell-config-cdma2000-one-x-g;
+              list batch-pcfpdsn {
+                key "index";
+                description
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}.";
+                uses one-x-batch-pcfpdsn-g;
+              }
+              container pcf-config {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.";
+                uses one-x-pcf-config-g;
+                container pcf-performance-stats {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFConfig.PCFPerformanceStats.";
+                  uses one-x-pcf-config-pcf-performance-stats-g;
+                }
+              }
+              list pcfpdsn {
+                key "index";
+                description
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.";
+                uses one-x-pcfpdsn-g;
+                container a11-reg-update-stats {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.A11RegUpdateStats.";
+                  uses one-x-pcfpdsn-a11-reg-update-stats-g;
+                }
+                container pcfpdsn-stats {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.PCFPDSNStats.";
+                  uses one-x-pcfpdsn-pcfpdsn-stats-g;
+                }
+              }
+              container ran {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.";
+                uses one-x-ran-g;
+                container apidm {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDM.";
+                  uses ran-apidm-g;
+                }
+                container apidtm {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APIDTM.";
+                  uses ran-apidtm-g;
+                }
+                container appim {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.";
+                  uses ran-appim-g;
+                  list appirec {
+                    key "index";
+                    description
+                      "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.";
+                    reference
+                      "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.APPIM.APPIREC.{i}.";
+                    uses appim-appirec-g;
+                  }
+                }
+                container access-parameters {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.AccessParameters.";
+                  uses ran-access-parameters-g;
+                }
+                container extended-system-parameters {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ExtendedSystemParameters.";
+                  uses ran-extended-system-parameters-g;
+                }
+                container forward-pwr-ctr {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.ForwardPwrCtr.";
+                  uses ran-forward-pwr-ctr-g;
+                }
+                container hard-handoff {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.";
+                  uses ran-hard-handoff-g;
+                  container stats {
+                    description
+                      "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.";
+                    reference
+                      "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.HardHandoff.Stats.";
+                    uses hard-handoff-stats-g;
+                  }
+                }
+                list neighbor-list {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NeighborList.{i}.";
+                  uses ran-neighbor-list-g;
+                }
+                container network-listen-mode-config {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.NetworkListenModeConfig.";
+                  uses ran-network-listen-mode-config-g;
+                }
+                container power-control {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.PowerControl.";
+                  uses ran-power-control-g;
+                }
+                container rf {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.RF.";
+                  uses one-x-ran-rf-g;
+                }
+                container system-parameters {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.";
+                  reference
+                    "FAPService.{i}.CellConfig.CDMA2000.OneX.RAN.SystemParameters.";
+                  uses ran-system-parameters-g;
+                }
+              }
+              container redirect {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.Redirect.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.Redirect.";
+                uses one-x-redirect-g;
+              }
+              container stats {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.";
+                reference
+                  "FAPService.{i}.CellConfig.CDMA2000.OneX.Stats.";
+                uses one-x-stats-g;
+              }
+            }
+          }
+          container lte {
+            description
+              "Container for object class FAPService.{i}.CellConfig.LTE.";
+            reference
+              "FAPService.{i}.CellConfig.LTE.";
+            uses cell-config-lte-g;
+            container epc {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.EPC.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.EPC.";
+              uses lte-epc-g;
+              container ho {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.EPC.HO.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.EPC.HO.";
+                uses epc-ho-g;
+                container stats {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.EPC.HO.Stats.";
+                  uses ho-stats-g;
+                }
+              }
+              list plmn-list {
+                key "index";
+                description
+                  "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.EPC.PLMNList.{i}.";
+                uses epc-plmn-list-g;
+              }
+              list qo-s {
+                key "index";
+                description
+                  "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.EPC.QoS.{i}.";
+                uses epc-qo-s-g;
+              }
+            }
+            container energy-savings {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.EnergySavings.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.EnergySavings.";
+              uses lte-energy-savings-g;
+              container activation-candidate-cells-load {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.EnergySavings.ActivationCandidateCellsLoad.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.EnergySavings.ActivationCandidateCellsLoad.";
+                uses energy-savings-activation-candidate-cells-load-g;
+              }
+              container deactivation-candidate-cells-load {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.EnergySavings.DeactivationCandidateCellsLoad.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.EnergySavings.DeactivationCandidateCellsLoad.";
+                uses energy-savings-deactivation-candidate-cells-load-g;
+              }
+              list not-allowed-time-period {
+                key "index";
+                description
+                  "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.EnergySavings.NotAllowedTimePeriod.{i}.";
+                uses energy-savings-not-allowed-time-period-g;
+              }
+            }
+            container ran {
+              description
+                "Container for object class FAPService.{i}.CellConfig.LTE.RAN.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.RAN.";
+              uses lte-ran-g;
+              container csg {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.CSG.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.CSG.";
+                uses ran-csg-g;
+                container stats {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.CSG.Stats.";
+                  uses csg-stats-g;
+                }
+              }
+              container cell-restriction {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.CellRestriction.";
+                uses ran-cell-restriction-g;
+              }
+              container common {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Common.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.Common.";
+                uses ran-common-g;
+              }
+              container drb {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.DRB.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.DRB.";
+                uses ran-drb-g;
+                container stats {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.DRB.Stats.";
+                  uses drb-stats-g;
+                }
+              }
+              container erab {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.ERAB.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.ERAB.";
+                uses ran-erab-g;
+                container stats {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.";
+                  uses erab-stats-g;
+                  list lgw {
+                    key "index";
+                    description
+                      "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.";
+                    reference
+                      "FAPService.{i}.CellConfig.LTE.RAN.ERAB.Stats.LGW.{i}.";
+                    uses stats-lgw-g;
+                  }
+                }
+              }
+              container mac {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.MAC.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.MAC.";
+                uses ran-mac-g;
+                container drx {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.MAC.DRX.";
+                  uses mac-drx-g;
+                }
+                container rach {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.MAC.RACH.";
+                  uses mac-rach-g;
+                }
+                container ulsch {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.MAC.ULSCH.";
+                  uses mac-ulsch-g;
+                }
+              }
+              container mobility {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.Mobility.";
+                uses ran-mobility-g;
+                container conn-mode {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.";
+                  uses mobility-conn-mode-g;
+                  container eutra {
+                    description
+                      "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.";
+                    reference
+                      "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.EUTRA.";
+                    uses conn-mode-eutra-g;
+                  }
+                  container irat {
+                    description
+                      "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.";
+                    reference
+                      "FAPService.{i}.CellConfig.LTE.RAN.Mobility.ConnMode.IRAT.";
+                    uses conn-mode-irat-g;
+                  }
+                }
+                container idle-mode {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.";
+                  uses mobility-idle-mode-g;
+                  container common {
+                    description
+                      "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.";
+                    reference
+                      "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.Common.";
+                    uses idle-mode-common-g;
+                  }
+                  container irat {
+                    description
+                      "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.";
+                    reference
+                      "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.";
+                    uses idle-mode-irat-g;
+                    container cdma2000 {
+                      description
+                        "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.";
+                      reference
+                        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.";
+                      uses irat-cdma2000-g;
+                      list cdma2000-band {
+                        key "index";
+                        description
+                          "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.";
+                        reference
+                          "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.CDMA2000.CDMA2000Band.{i}.";
+                        uses cdma2000-cdma2000-band-g;
+                      }
+                    }
+                    container geran {
+                      description
+                        "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.";
+                      reference
+                        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.";
+                      uses irat-geran-g;
+                      list geran-freq-group {
+                        key "index";
+                        description
+                          "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.";
+                        reference
+                          "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.GERAN.GERANFreqGroup.{i}.";
+                        uses geran-geran-freq-group-g;
+                      }
+                    }
+                    container utra {
+                      description
+                        "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.";
+                      reference
+                        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.";
+                      uses irat-utra-g;
+                      list utranfdd-freq {
+                        key "index";
+                        description
+                          "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.";
+                        reference
+                          "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IRAT.UTRA.UTRANFDDFreq.{i}.";
+                        uses utra-utranfdd-freq-g;
+                      }
+                    }
+                  }
+                  container inter-freq {
+                    description
+                      "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.";
+                    reference
+                      "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.";
+                    uses idle-mode-inter-freq-g;
+                    list carrier {
+                      key "index";
+                      description
+                        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.";
+                      reference
+                        "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.InterFreq.Carrier.{i}.";
+                      uses inter-freq-carrier-g;
+                    }
+                  }
+                  container intra-freq {
+                    description
+                      "Container for object class FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.";
+                    reference
+                      "FAPService.{i}.CellConfig.LTE.RAN.Mobility.IdleMode.IntraFreq.";
+                    uses idle-mode-intra-freq-g;
+                  }
+                }
+              }
+              container neighbor-list {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.NeighborList.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.";
+                uses lte-ran-neighbor-list-g;
+                container inter-rat-cell {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.";
+                  uses neighbor-list-inter-rat-cell-g;
+                  list cdma2000 {
+                    key "index";
+                    description
+                      "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.";
+                    reference
+                      "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.CDMA2000.{i}.";
+                    uses inter-rat-cell-cdma2000-g;
+                  }
+                  list gsm {
+                    key "index";
+                    description
+                      "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.";
+                    reference
+                      "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.GSM.{i}.";
+                    uses inter-rat-cell-gsm-g;
+                  }
+                  list umts {
+                    key "index";
+                    description
+                      "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.";
+                    reference
+                      "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.InterRATCell.UMTS.{i}.";
+                    uses inter-rat-cell-umts-g;
+                  }
+                }
+                list lte-cell {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.NeighborList.LTECell.{i}.";
+                  uses neighbor-list-lte-cell-g;
+                }
+              }
+              container neighbor-list-in-use {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.";
+                uses ran-neighbor-list-in-use-g;
+                container inter-rat-cell {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.";
+                  uses neighbor-list-in-use-inter-rat-cell-g;
+                  list cdma2000 {
+                    key "index";
+                    description
+                      "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.";
+                    reference
+                      "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.CDMA2000.{i}.";
+                    uses neighbor-list-in-use-inter-rat-cell-cdma2000-g;
+                  }
+                  list gsm {
+                    key "index";
+                    description
+                      "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.";
+                    reference
+                      "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.GSM.{i}.";
+                    uses neighbor-list-in-use-inter-rat-cell-gsm-g;
+                  }
+                  list umts {
+                    key "index";
+                    description
+                      "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.";
+                    reference
+                      "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.InterRATCell.UMTS.{i}.";
+                    uses neighbor-list-in-use-inter-rat-cell-umts-g;
+                  }
+                }
+                list lte-cell {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.NeighborListInUse.LTECell.{i}.";
+                  uses neighbor-list-in-use-lte-cell-g;
+                }
+              }
+              container phy {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.PHY.";
+                uses ran-phy-g;
+                container antenna-info {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.AntennaInfo.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.PHY.AntennaInfo.";
+                  uses phy-antenna-info-g;
+                }
+                container mbsfn {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.";
+                  uses phy-mbsfn-g;
+                  list sf-config-list {
+                    key "index";
+                    description
+                      "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.";
+                    reference
+                      "FAPService.{i}.CellConfig.LTE.RAN.PHY.MBSFN.SFConfigList.{i}.";
+                    uses mbsfn-sf-config-list-g;
+                  }
+                }
+                container pdsch {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.PDSCH.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.PHY.PDSCH.";
+                  uses phy-pdsch-g;
+                }
+                container prach {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRACH.";
+                  uses phy-prach-g;
+                }
+                container prs {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.PHY.PRS.";
+                  uses phy-prs-g;
+                }
+                container pucch {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUCCH.";
+                  uses phy-pucch-g;
+                }
+                container pusch {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.";
+                  uses phy-pusch-g;
+                  container ulrs {
+                    description
+                      "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.";
+                    reference
+                      "FAPService.{i}.CellConfig.LTE.RAN.PHY.PUSCH.ULRS.";
+                    uses pusch-ulrs-g;
+                  }
+                }
+                container srs {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.PHY.SRS.";
+                  uses phy-srs-g;
+                }
+                container tdd-frame {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.TDDFrame.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.PHY.TDDFrame.";
+                  uses phy-tdd-frame-g;
+                }
+                container ul-power-control {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.PHY.ULPowerControl.";
+                  uses phy-ul-power-control-g;
+                }
+              }
+              container rf {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RF.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.RF.";
+                uses lte-ran-rf-g;
+              }
+              container rlc {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RLC.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.RLC.";
+                uses ran-rlc-g;
+                container sr-b1 {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB1.";
+                  uses rlc-sr-b1-g;
+                }
+                container sr-b2 {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.RLC.SRB2.";
+                  uses rlc-sr-b2-g;
+                }
+              }
+              container rrc {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RRC.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.RRC.";
+                uses ran-rrc-g;
+                container stats {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RRC.Stats.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.RRC.Stats.";
+                  uses rrc-stats-g;
+                }
+              }
+              container rrc-timers {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.RRCTimers.";
+                uses ran-rrc-timers-g;
+              }
+              container rru {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RRU.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.RRU.";
+                uses ran-rru-g;
+                container stats {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.LTE.RAN.RRU.Stats.";
+                  reference
+                    "FAPService.{i}.CellConfig.LTE.RAN.RRU.Stats.";
+                  uses rru-stats-g;
+                }
+              }
+              container s1-ap {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.S1AP.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.S1AP.";
+                uses ran-s1-ap-g;
+              }
+              container s1-u {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.LTE.RAN.S1U.";
+                reference
+                  "FAPService.{i}.CellConfig.LTE.RAN.S1U.";
+                uses ran-s1-u-g;
+              }
+            }
+            list tunnel {
+              key "index";
+              description
+                "FAPService.{i}.CellConfig.LTE.Tunnel.{i}.";
+              reference
+                "FAPService.{i}.CellConfig.LTE.Tunnel.{i}.";
+              uses lte-tunnel-g;
+            }
+          }
+          container umts {
+            description
+              "Container for object class FAPService.{i}.CellConfig.UMTS.";
+            reference
+              "FAPService.{i}.CellConfig.UMTS.";
+            uses cell-config-umts-g;
+            container cn {
+              description
+                "Container for object class FAPService.{i}.CellConfig.UMTS.CN.";
+              reference
+                "FAPService.{i}.CellConfig.UMTS.CN.";
+              uses umts-cn-g;
+              container cs-domain {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.CN.CSDomain.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.";
+                uses cn-cs-domain-g;
+                container hho {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.";
+                  reference
+                    "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.";
+                  uses cs-domain-hho-g;
+                  container stats {
+                    description
+                      "Container for object class FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.";
+                    reference
+                      "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.HHO.Stats.";
+                    uses hho-stats-g;
+                  }
+                }
+                container rab {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.";
+                  reference
+                    "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.";
+                  uses cs-domain-rab-g;
+                  container stats {
+                    description
+                      "Container for object class FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.";
+                    reference
+                      "FAPService.{i}.CellConfig.UMTS.CN.CSDomain.RAB.Stats.";
+                    uses rab-stats-g;
+                  }
+                }
+              }
+              container hho {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.CN.HHO.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.CN.HHO.";
+                uses cn-hho-g;
+                container stats {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.UMTS.CN.HHO.Stats.";
+                  reference
+                    "FAPService.{i}.CellConfig.UMTS.CN.HHO.Stats.";
+                  uses cn-hho-stats-g;
+                }
+              }
+              container ps-domain {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.CN.PSDomain.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.";
+                uses cn-ps-domain-g;
+                container rab {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.";
+                  reference
+                    "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.";
+                  uses ps-domain-rab-g;
+                  container stats {
+                    description
+                      "Container for object class FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.";
+                    reference
+                      "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.";
+                    uses ps-domain-rab-stats-g;
+                    list lgw {
+                      key "index";
+                      description
+                        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.";
+                      reference
+                        "FAPService.{i}.CellConfig.UMTS.CN.PSDomain.RAB.Stats.LGW.{i}.";
+                      uses rab-stats-lgw-g;
+                    }
+                  }
+                }
+              }
+            }
+            container rab {
+              description
+                "Container for object class FAPService.{i}.CellConfig.UMTS.RAB.";
+              reference
+                "FAPService.{i}.CellConfig.UMTS.RAB.";
+              uses umts-rab-g;
+            }
+            container ran {
+              description
+                "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.";
+              reference
+                "FAPService.{i}.CellConfig.UMTS.RAN.";
+              uses umts-ran-g;
+              container csg {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.CSG.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.CSG.";
+                uses umts-ran-csg-g;
+                container csgpsc-split-info {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.";
+                  reference
+                    "FAPService.{i}.CellConfig.UMTS.RAN.CSG.CSGPSCSplitInfo.";
+                  uses csg-csgpsc-split-info-g;
+                }
+              }
+              container cell-restriction {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.CellRestriction.";
+                uses umts-ran-cell-restriction-g;
+              }
+              container cell-selection {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.CellSelection.";
+                uses ran-cell-selection-g;
+              }
+              container drx {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.DRX.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.DRX.";
+                uses ran-drx-g;
+              }
+              container inter-freq-meas {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.";
+                uses ran-inter-freq-meas-g;
+                list instance {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.UMTS.RAN.InterFreqMeas.Instance.{i}.";
+                  uses inter-freq-meas-instance-g;
+                }
+              }
+              container inter-rat-meas {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.";
+                uses ran-inter-rat-meas-g;
+                list instance {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.UMTS.RAN.InterRATMeas.Instance.{i}.";
+                  uses inter-rat-meas-instance-g;
+                }
+              }
+              container intra-freq-meas {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.";
+                uses ran-intra-freq-meas-g;
+                list instance {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.UMTS.RAN.IntraFreqMeas.Instance.{i}.";
+                  uses intra-freq-meas-instance-g;
+                }
+              }
+              container neighbor-list {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.";
+                uses umts-ran-neighbor-list-g;
+                list inter-freq-cell {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterFreqCell.{i}.";
+                  uses neighbor-list-inter-freq-cell-g;
+                }
+                container inter-rat-cell {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.";
+                  reference
+                    "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.";
+                  uses ran-neighbor-list-inter-rat-cell-g;
+                  list gsm {
+                    key "index";
+                    description
+                      "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.";
+                    reference
+                      "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.InterRATCell.GSM.{i}.";
+                    uses neighbor-list-inter-rat-cell-gsm-g;
+                  }
+                }
+                list intra-freq-cell {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.UMTS.RAN.NeighborList.IntraFreqCell.{i}.";
+                  uses neighbor-list-intra-freq-cell-g;
+                }
+              }
+              container neighbor-list-in-use {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.";
+                uses umts-ran-neighbor-list-in-use-g;
+                list inter-freq-cell {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterFreqCell.{i}.";
+                  uses neighbor-list-in-use-inter-freq-cell-g;
+                }
+                container inter-rat-cell {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.";
+                  reference
+                    "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.";
+                  uses ran-neighbor-list-in-use-inter-rat-cell-g;
+                  list gsm {
+                    key "index";
+                    description
+                      "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.";
+                    reference
+                      "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.InterRATCell.GSM.{i}.";
+                    uses ran-neighbor-list-in-use-inter-rat-cell-gsm-g;
+                  }
+                }
+                list intra-freq-cell {
+                  key "index";
+                  description
+                    "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.";
+                  reference
+                    "FAPService.{i}.CellConfig.UMTS.RAN.NeighborListInUse.IntraFreqCell.{i}.";
+                  uses neighbor-list-in-use-intra-freq-cell-g;
+                }
+              }
+              container power-control {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.PowerControl.";
+                uses umts-ran-power-control-g;
+              }
+              container rf {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.RF.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.RF.";
+                uses umts-ran-rf-g;
+              }
+              container rrc {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.RRC.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.RRC.";
+                uses umts-ran-rrc-g;
+                container stats {
+                  description
+                    "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.RRC.Stats.";
+                  reference
+                    "FAPService.{i}.CellConfig.UMTS.RAN.RRC.Stats.";
+                  uses ran-rrc-stats-g;
+                }
+              }
+              container rrc-timers {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.RRCTimers.";
+                uses umts-ran-rrc-timers-g;
+              }
+              container ue-internal-meas {
+                description
+                  "Container for object class FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.";
+                reference
+                  "FAPService.{i}.CellConfig.UMTS.RAN.UEInternalMeas.";
+                uses ran-ue-internal-meas-g;
+              }
+            }
+          }
+        }
+        container fap-control {
+          description
+            "Container for object class FAPService.{i}.FAPControl.";
+          reference
+            "FAPService.{i}.FAPControl.";
+          uses fap-service-fap-control-g;
+          container cdma2000 {
+            description
+              "Container for object class FAPService.{i}.FAPControl.CDMA2000.";
+            reference
+              "FAPService.{i}.FAPControl.CDMA2000.";
+            uses fap-control-cdma2000-g;
+            container gateway {
+              description
+                "Container for object class FAPService.{i}.FAPControl.CDMA2000.Gateway.";
+              reference
+                "FAPService.{i}.FAPControl.CDMA2000.Gateway.";
+              uses cdma2000-gateway-g;
+            }
+            container hrpd {
+              description
+                "Container for object class FAPService.{i}.FAPControl.CDMA2000.HRPD.";
+              reference
+                "FAPService.{i}.FAPControl.CDMA2000.HRPD.";
+              uses fap-control-cdma2000-hrpd-g;
+              container a13 {
+                description
+                  "Container for object class FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.";
+                reference
+                  "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.";
+                uses hrpd-a13-g;
+                list color-code-to-uati104 {
+                  key "index";
+                  description
+                    "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.";
+                  reference
+                    "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.ColorCodeToUATI104.{i}.";
+                  uses a13-color-code-to-uati104-g;
+                }
+                list hrpd-subnet-to-ip {
+                  key "index";
+                  description
+                    "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.";
+                  reference
+                    "FAPService.{i}.FAPControl.CDMA2000.HRPD.A13.HRPDSubnetToIP.{i}.";
+                  uses a13-hrpd-subnet-to-ip-g;
+                }
+              }
+              container self-config {
+                description
+                  "Container for object class FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.";
+                reference
+                  "FAPService.{i}.FAPControl.CDMA2000.HRPD.SelfConfig.";
+                uses cdma2000-hrpd-self-config-g;
+              }
+            }
+            container one-x {
+              description
+                "Container for object class FAPService.{i}.FAPControl.CDMA2000.OneX.";
+              reference
+                "FAPService.{i}.FAPControl.CDMA2000.OneX.";
+              uses fap-control-cdma2000-one-x-g;
+              container active-handin-measurement {
+                description
+                  "Container for object class FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.";
+                reference
+                  "FAPService.{i}.FAPControl.CDMA2000.OneX.ActiveHandinMeasurement.";
+                uses one-x-active-handin-measurement-g;
+              }
+              container self-config {
+                description
+                  "Container for object class FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.";
+                reference
+                  "FAPService.{i}.FAPControl.CDMA2000.OneX.SelfConfig.";
+                uses cdma2000-one-x-self-config-g;
+              }
+            }
+            container time {
+              description
+                "Container for object class FAPService.{i}.FAPControl.CDMA2000.Time.";
+              reference
+                "FAPService.{i}.FAPControl.CDMA2000.Time.";
+              uses cdma2000-time-g;
+            }
+          }
+          container lte {
+            description
+              "Container for object class FAPService.{i}.FAPControl.LTE.";
+            reference
+              "FAPService.{i}.FAPControl.LTE.";
+            uses fap-control-lte-g;
+            container gateway {
+              description
+                "Container for object class FAPService.{i}.FAPControl.LTE.Gateway.";
+              reference
+                "FAPService.{i}.FAPControl.LTE.Gateway.";
+              uses lte-gateway-g;
+            }
+          }
+          container umts {
+            description
+              "Container for object class FAPService.{i}.FAPControl.UMTS.";
+            reference
+              "FAPService.{i}.FAPControl.UMTS.";
+            uses fap-control-umts-g;
+            container gateway {
+              description
+                "Container for object class FAPService.{i}.FAPControl.UMTS.Gateway.";
+              reference
+                "FAPService.{i}.FAPControl.UMTS.Gateway.";
+              uses umts-gateway-g;
+            }
+            container self-config {
+              description
+                "Container for object class FAPService.{i}.FAPControl.UMTS.SelfConfig.";
+              reference
+                "FAPService.{i}.FAPControl.UMTS.SelfConfig.";
+              uses fap-control-umts-self-config-g;
+            }
+          }
+        }
+        container rem {
+          description
+            "Container for object class FAPService.{i}.REM.";
+          reference
+            "FAPService.{i}.REM.";
+          uses fap-service-rem-g;
+          container cdma2000 {
+            description
+              "Container for object class FAPService.{i}.REM.CDMA2000.";
+            reference
+              "FAPService.{i}.REM.CDMA2000.";
+            uses rem-cdma2000-g;
+            container hrpd {
+              description
+                "Container for object class FAPService.{i}.REM.CDMA2000.HRPD.";
+              reference
+                "FAPService.{i}.REM.CDMA2000.HRPD.";
+              uses rem-cdma2000-hrpd-g;
+              list cell {
+                key "index";
+                description
+                  "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.";
+                reference
+                  "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.";
+                uses hrpd-cell-g;
+                container control-channel {
+                  description
+                    "Container for object class FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.";
+                  reference
+                    "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.ControlChannel.";
+                  uses cell-control-channel-g;
+                }
+                container rf {
+                  description
+                    "Container for object class FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.";
+                  reference
+                    "FAPService.{i}.REM.CDMA2000.HRPD.Cell.{i}.RF.";
+                  uses cell-rf-g;
+                }
+              }
+              list channel {
+                key "index";
+                description
+                  "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.";
+                reference
+                  "FAPService.{i}.REM.CDMA2000.HRPD.Channel.{i}.";
+                uses hrpd-channel-g;
+              }
+            }
+            container macro-timing {
+              description
+                "Container for object class FAPService.{i}.REM.CDMA2000.MacroTiming.";
+              reference
+                "FAPService.{i}.REM.CDMA2000.MacroTiming.";
+              uses cdma2000-macro-timing-g;
+              list channel {
+                key "index";
+                description
+                  "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.";
+                reference
+                  "FAPService.{i}.REM.CDMA2000.MacroTiming.Channel.{i}.";
+                uses macro-timing-channel-g;
+              }
+            }
+            container one-x {
+              description
+                "Container for object class FAPService.{i}.REM.CDMA2000.OneX.";
+              reference
+                "FAPService.{i}.REM.CDMA2000.OneX.";
+              uses rem-cdma2000-one-x-g;
+              list cell {
+                key "index";
+                description
+                  "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.";
+                reference
+                  "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.";
+                uses one-x-cell-g;
+                container control-channel {
+                  description
+                    "Container for object class FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.";
+                  reference
+                    "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.ControlChannel.";
+                  uses one-x-cell-control-channel-g;
+                }
+                container rf {
+                  description
+                    "Container for object class FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.";
+                  reference
+                    "FAPService.{i}.REM.CDMA2000.OneX.Cell.{i}.RF.";
+                  uses one-x-cell-rf-g;
+                }
+              }
+              list channel {
+                key "index";
+                description
+                  "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.";
+                reference
+                  "FAPService.{i}.REM.CDMA2000.OneX.Channel.{i}.";
+                uses one-x-channel-g;
+              }
+            }
+          }
+          container lte {
+            description
+              "Container for object class FAPService.{i}.REM.LTE.";
+            reference
+              "FAPService.{i}.REM.LTE.";
+            uses rem-lte-g;
+            list carrier-meas {
+              key "index";
+              description
+                "FAPService.{i}.REM.LTE.CarrierMeas.{i}.";
+              reference
+                "FAPService.{i}.REM.LTE.CarrierMeas.{i}.";
+              uses lte-carrier-meas-g;
+            }
+            list cell {
+              key "index";
+              description
+                "FAPService.{i}.REM.LTE.Cell.{i}.";
+              reference
+                "FAPService.{i}.REM.LTE.Cell.{i}.";
+              uses lte-cell-g;
+              container bcch {
+                description
+                  "Container for object class FAPService.{i}.REM.LTE.Cell.{i}.BCCH.";
+                reference
+                  "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.";
+                uses cell-bcch-g;
+                list plmn-list {
+                  key "index";
+                  description
+                    "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNList.{i}.";
+                  reference
+                    "FAPService.{i}.REM.LTE.Cell.{i}.BCCH.PLMNList.{i}.";
+                  uses bcch-plmn-list-g;
+                }
+              }
+              container rf {
+                description
+                  "Container for object class FAPService.{i}.REM.LTE.Cell.{i}.RF.";
+                reference
+                  "FAPService.{i}.REM.LTE.Cell.{i}.RF.";
+                uses lte-cell-rf-g;
+              }
+            }
+          }
+          container umts {
+            description
+              "Container for object class FAPService.{i}.REM.UMTS.";
+            reference
+              "FAPService.{i}.REM.UMTS.";
+            uses rem-umts-g;
+            container gsm {
+              description
+                "Container for object class FAPService.{i}.REM.UMTS.GSM.";
+              reference
+                "FAPService.{i}.REM.UMTS.GSM.";
+              uses umts-gsm-g;
+              list cell {
+                key "index";
+                description
+                  "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.";
+                reference
+                  "FAPService.{i}.REM.UMTS.GSM.Cell.{i}.";
+                uses gsm-cell-g;
+              }
+            }
+            container wcdma {
+              description
+                "Container for object class FAPService.{i}.REM.UMTS.WCDMA.";
+              reference
+                "FAPService.{i}.REM.UMTS.WCDMA.";
+              uses umts-wcdma-g;
+              list cell {
+                key "index";
+                description
+                  "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.";
+                reference
+                  "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.";
+                uses wcdma-cell-g;
+                container bcch {
+                  description
+                    "Container for object class FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.";
+                  reference
+                    "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.";
+                  uses wcdma-cell-bcch-g;
+                  container csgpsc-split-info {
+                    description
+                      "Container for object class FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.";
+                    reference
+                      "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.CSGPSCSplitInfo.";
+                    uses bcch-csgpsc-split-info-g;
+                  }
+                  container reference-position {
+                    description
+                      "Container for object class FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.";
+                    reference
+                      "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.BCCH.ReferencePosition.";
+                    uses bcch-reference-position-g;
+                  }
+                }
+                container rf {
+                  description
+                    "Container for object class FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.";
+                  reference
+                    "FAPService.{i}.REM.UMTS.WCDMA.Cell.{i}.RF.";
+                  uses wcdma-cell-rf-g;
+                }
+              }
+            }
+          }
+        }
+        container transport {
+          description
+            "Container for object class FAPService.{i}.Transport.";
+          reference
+            "FAPService.{i}.Transport.";
+          uses fap-service-transport-g;
+          container packet {
+            description
+              "Container for object class FAPService.{i}.Transport.Packet.";
+            reference
+              "FAPService.{i}.Transport.Packet.";
+            uses transport-packet-g;
+          }
+          container real-time {
+            description
+              "Container for object class FAPService.{i}.Transport.RealTime.";
+            reference
+              "FAPService.{i}.Transport.RealTime.";
+            uses transport-real-time-g;
+            container perf {
+              description
+                "Container for object class FAPService.{i}.Transport.RealTime.Perf.";
+              reference
+                "FAPService.{i}.Transport.RealTime.Perf.";
+              uses real-time-perf-g;
+            }
+          }
+          container sctp {
+            description
+              "Container for object class FAPService.{i}.Transport.SCTP.";
+            reference
+              "FAPService.{i}.Transport.SCTP.";
+            uses transport-sctp-g;
+            list assoc {
+              key "index";
+              description
+                "FAPService.{i}.Transport.SCTP.Assoc.{i}.";
+              reference
+                "FAPService.{i}.Transport.SCTP.Assoc.{i}.";
+              uses sctp-assoc-g;
+            }
+          }
+          container sip {
+            description
+              "Container for object class FAPService.{i}.Transport.SIP.";
+            reference
+              "FAPService.{i}.Transport.SIP.";
+            uses transport-sip-g;
+            container fcs {
+              description
+                "Container for object class FAPService.{i}.Transport.SIP.FCS.";
+              reference
+                "FAPService.{i}.Transport.SIP.FCS.";
+              uses sip-fcs-g;
+            }
+          }
+          container security {
+            description
+              "Container for object class FAPService.{i}.Transport.Security.";
+            reference
+              "FAPService.{i}.Transport.Security.";
+            uses transport-security-g;
+            list secret {
+              key "index";
+              description
+                "FAPService.{i}.Transport.Security.Secret.{i}.";
+              reference
+                "FAPService.{i}.Transport.Security.Secret.{i}.";
+              uses security-secret-g;
+            }
+          }
+        }
+      }
+    }
+    container smart-card-readers {
+      description
+        "Container for object class Device.SmartCardReaders.";
+      reference
+        "Device.SmartCardReaders.";
+      uses device-smart-card-readers-g;
+      list smart-card-reader {
+        key "index";
+        description
+          "Device.SmartCardReaders.SmartCardReader.{i}.";
+        reference
+          "Device.SmartCardReaders.SmartCardReader.{i}.";
+        uses smart-card-readers-smart-card-reader-g;
+        container smart-card {
+          description
+            "Container for object class Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.";
+          reference
+            "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.";
+          uses smart-card-reader-smart-card-g;
+        }
+      }
+    }
+    container software-modules {
+      description
+        "Container for object class Device.SoftwareModules.";
+      reference
+        "Device.SoftwareModules.";
+      uses device-software-modules-g;
+      list deployment-unit {
+        key "index";
+        description
+          "Device.SoftwareModules.DeploymentUnit.{i}.";
+        reference
+          "Device.SoftwareModules.DeploymentUnit.{i}.";
+        uses software-modules-deployment-unit-g;
+      }
+      list exec-env {
+        key "index";
+        description
+          "Device.SoftwareModules.ExecEnv.{i}.";
+        reference
+          "Device.SoftwareModules.ExecEnv.{i}.";
+        uses software-modules-exec-env-g;
+      }
+      list execution-unit {
+        key "index";
+        description
+          "Device.SoftwareModules.ExecutionUnit.{i}.";
+        reference
+          "Device.SoftwareModules.ExecutionUnit.{i}.";
+        uses software-modules-execution-unit-g;
+        container extensions {
+          description
+            "Container for object class Device.SoftwareModules.ExecutionUnit.{i}.Extensions.";
+          reference
+            "Device.SoftwareModules.ExecutionUnit.{i}.Extensions.";
+          uses execution-unit-extensions-g;
+        }
+      }
+    }
+    container time {
+      description
+        "Container for object class Device.Time.";
+      reference
+        "Device.Time.";
+      uses device-time-g;
+    }
+    container upa {
+      description
+        "Container for object class Device.UPA.";
+      reference
+        "Device.UPA.";
+      uses device-upa-g;
+      container diagnostics {
+        description
+          "Container for object class Device.UPA.Diagnostics.";
+        reference
+          "Device.UPA.Diagnostics.";
+        uses upa-diagnostics-g;
+        container interface-measurement {
+          description
+            "Container for object class Device.UPA.Diagnostics.InterfaceMeasurement.";
+          reference
+            "Device.UPA.Diagnostics.InterfaceMeasurement.";
+          uses diagnostics-interface-measurement-g;
+        }
+      }
+      list interface {
+        key "index";
+        description
+          "Device.UPA.Interface.{i}.";
+        reference
+          "Device.UPA.Interface.{i}.";
+        uses upa-interface-g;
+        list active-notch {
+          key "index";
+          description
+            "Device.UPA.Interface.{i}.ActiveNotch.{i}.";
+          reference
+            "Device.UPA.Interface.{i}.ActiveNotch.{i}.";
+          uses interface-active-notch-g;
+        }
+        list associated-device {
+          key "index";
+          description
+            "Device.UPA.Interface.{i}.AssociatedDevice.{i}.";
+          reference
+            "Device.UPA.Interface.{i}.AssociatedDevice.{i}.";
+          uses upa-interface-associated-device-g;
+        }
+        list bridge-for {
+          key "index";
+          description
+            "Device.UPA.Interface.{i}.BridgeFor.{i}.";
+          reference
+            "Device.UPA.Interface.{i}.BridgeFor.{i}.";
+          uses interface-bridge-for-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.UPA.Interface.{i}.Stats.";
+          reference
+            "Device.UPA.Interface.{i}.Stats.";
+          uses upa-interface-stats-g;
+        }
+      }
+    }
+    container u-pn-p {
+      description
+        "Container for object class Device.UPnP.";
+      reference
+        "Device.UPnP.";
+      uses device-u-pn-p-g;
+      container description {
+        description
+          "Container for object class Device.UPnP.Description.";
+        reference
+          "Device.UPnP.Description.";
+        uses u-pn-p-description-g;
+        list device-description {
+          key "index";
+          description
+            "Device.UPnP.Description.DeviceDescription.{i}.";
+          reference
+            "Device.UPnP.Description.DeviceDescription.{i}.";
+          uses description-device-description-g;
+        }
+        list device-instance {
+          key "index";
+          description
+            "Device.UPnP.Description.DeviceInstance.{i}.";
+          reference
+            "Device.UPnP.Description.DeviceInstance.{i}.";
+          uses description-device-instance-g;
+        }
+        list service-instance {
+          key "index";
+          description
+            "Device.UPnP.Description.ServiceInstance.{i}.";
+          reference
+            "Device.UPnP.Description.ServiceInstance.{i}.";
+          uses description-service-instance-g;
+        }
+      }
+      container device {
+        description
+          "Container for object class Device.UPnP.Device.";
+        reference
+          "Device.UPnP.Device.";
+        uses u-pn-p-device-g;
+        container capabilities {
+          description
+            "Container for object class Device.UPnP.Device.Capabilities.";
+          reference
+            "Device.UPnP.Device.Capabilities.";
+          uses device-capabilities-g;
+        }
+      }
+      container discovery {
+        description
+          "Container for object class Device.UPnP.Discovery.";
+        reference
+          "Device.UPnP.Discovery.";
+        uses u-pn-p-discovery-g;
+        list device {
+          key "index";
+          description
+            "Device.UPnP.Discovery.Device.{i}.";
+          reference
+            "Device.UPnP.Discovery.Device.{i}.";
+          uses u-pn-p-discovery-device-g;
+        }
+        list root-device {
+          key "index";
+          description
+            "Device.UPnP.Discovery.RootDevice.{i}.";
+          reference
+            "Device.UPnP.Discovery.RootDevice.{i}.";
+          uses discovery-root-device-g;
+        }
+        list service {
+          key "index";
+          description
+            "Device.UPnP.Discovery.Service.{i}.";
+          reference
+            "Device.UPnP.Discovery.Service.{i}.";
+          uses discovery-service-g;
+        }
+      }
+    }
+    container usb {
+      description
+        "Container for object class Device.USB.";
+      reference
+        "Device.USB.";
+      uses device-usb-g;
+      list interface {
+        key "index";
+        description
+          "Device.USB.Interface.{i}.";
+        reference
+          "Device.USB.Interface.{i}.";
+        uses usb-interface-g;
+        container stats {
+          description
+            "Container for object class Device.USB.Interface.{i}.Stats.";
+          reference
+            "Device.USB.Interface.{i}.Stats.";
+          uses usb-interface-stats-g;
+        }
+      }
+      list port {
+        key "index";
+        description
+          "Device.USB.Port.{i}.";
+        reference
+          "Device.USB.Port.{i}.";
+        uses usb-port-g;
+      }
+      container usb-hosts {
+        description
+          "Container for object class Device.USB.USBHosts.";
+        reference
+          "Device.USB.USBHosts.";
+        uses usb-usb-hosts-g;
+        list host {
+          key "index";
+          description
+            "Device.USB.USBHosts.Host.{i}.";
+          reference
+            "Device.USB.USBHosts.Host.{i}.";
+          uses usb-hosts-host-g;
+          list device {
+            key "index";
+            description
+              "Device.USB.USBHosts.Host.{i}.Device.{i}.";
+            reference
+              "Device.USB.USBHosts.Host.{i}.Device.{i}.";
+            uses host-device-g;
+            list configuration {
+              key "index";
+              description
+                "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.";
+              reference
+                "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.";
+              uses device-configuration-g;
+              list interface {
+                key "index";
+                description
+                  "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.";
+                reference
+                  "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.";
+                uses configuration-interface-g;
+              }
+            }
+          }
+        }
+      }
+    }
+    container user-interface {
+      description
+        "Container for object class Device.UserInterface.";
+      reference
+        "Device.UserInterface.";
+      uses device-user-interface-g;
+      container local-display {
+        description
+          "Container for object class Device.UserInterface.LocalDisplay.";
+        reference
+          "Device.UserInterface.LocalDisplay.";
+        uses user-interface-local-display-g;
+      }
+      container messages {
+        description
+          "Container for object class Device.UserInterface.Messages.";
+        reference
+          "Device.UserInterface.Messages.";
+        uses user-interface-messages-g;
+      }
+      container remote-access {
+        description
+          "Container for object class Device.UserInterface.RemoteAccess.";
+        reference
+          "Device.UserInterface.RemoteAccess.";
+        uses user-interface-remote-access-g;
+      }
+    }
+    container users {
+      description
+        "Container for object class Device.Users.";
+      reference
+        "Device.Users.";
+      uses device-users-g;
+      list user {
+        key "index";
+        description
+          "Device.Users.User.{i}.";
+        reference
+          "Device.Users.User.{i}.";
+        uses users-user-g;
+      }
+    }
+    container vxlan {
+      description
+        "Container for object class Device.VXLAN.";
+      reference
+        "Device.VXLAN.";
+      uses device-vxlan-g;
+      list filter {
+        key "index";
+        description
+          "Device.VXLAN.Filter.{i}.";
+        reference
+          "Device.VXLAN.Filter.{i}.";
+        uses vxlan-filter-g;
+      }
+      list tunnel {
+        key "index";
+        description
+          "Device.VXLAN.Tunnel.{i}.";
+        reference
+          "Device.VXLAN.Tunnel.{i}.";
+        uses vxlan-tunnel-g;
+        list interface {
+          key "index";
+          description
+            "Device.VXLAN.Tunnel.{i}.Interface.{i}.";
+          reference
+            "Device.VXLAN.Tunnel.{i}.Interface.{i}.";
+          uses vxlan-tunnel-interface-g;
+          container stats {
+            description
+              "Container for object class Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.";
+            reference
+              "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.";
+            uses vxlan-tunnel-interface-stats-g;
+          }
+        }
+        container stats {
+          description
+            "Container for object class Device.VXLAN.Tunnel.{i}.Stats.";
+          reference
+            "Device.VXLAN.Tunnel.{i}.Stats.";
+          uses vxlan-tunnel-stats-g;
+        }
+      }
+    }
+    container wi-fi {
+      description
+        "Container for object class Device.WiFi.";
+      reference
+        "Device.WiFi.";
+      uses device-wi-fi-g;
+      list access-point {
+        key "index";
+        description
+          "Device.WiFi.AccessPoint.{i}.";
+        reference
+          "Device.WiFi.AccessPoint.{i}.";
+        uses wi-fi-access-point-g;
+        list ac {
+          key "index";
+          description
+            "Device.WiFi.AccessPoint.{i}.AC.{i}.";
+          reference
+            "Device.WiFi.AccessPoint.{i}.AC.{i}.";
+          uses access-point-ac-g;
+          container stats {
+            description
+              "Container for object class Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.";
+            reference
+              "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.";
+            uses ac-stats-g;
+          }
+        }
+        container accounting {
+          description
+            "Container for object class Device.WiFi.AccessPoint.{i}.Accounting.";
+          reference
+            "Device.WiFi.AccessPoint.{i}.Accounting.";
+          uses access-point-accounting-g;
+        }
+        list associated-device {
+          key "index";
+          description
+            "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.";
+          reference
+            "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.";
+          uses access-point-associated-device-g;
+          container stats {
+            description
+              "Container for object class Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.";
+            reference
+              "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.";
+            uses associated-device-stats-g;
+          }
+        }
+        container security {
+          description
+            "Container for object class Device.WiFi.AccessPoint.{i}.Security.";
+          reference
+            "Device.WiFi.AccessPoint.{i}.Security.";
+          uses access-point-security-g;
+        }
+        container wps {
+          description
+            "Container for object class Device.WiFi.AccessPoint.{i}.WPS.";
+          reference
+            "Device.WiFi.AccessPoint.{i}.WPS.";
+          uses access-point-wps-g;
+        }
+      }
+      list end-point {
+        key "index";
+        description
+          "Device.WiFi.EndPoint.{i}.";
+        reference
+          "Device.WiFi.EndPoint.{i}.";
+        uses wi-fi-end-point-g;
+        list ac {
+          key "index";
+          description
+            "Device.WiFi.EndPoint.{i}.AC.{i}.";
+          reference
+            "Device.WiFi.EndPoint.{i}.AC.{i}.";
+          uses end-point-ac-g;
+          container stats {
+            description
+              "Container for object class Device.WiFi.EndPoint.{i}.AC.{i}.Stats.";
+            reference
+              "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.";
+            uses end-point-ac-stats-g;
+          }
+        }
+        list profile {
+          key "index";
+          description
+            "Device.WiFi.EndPoint.{i}.Profile.{i}.";
+          reference
+            "Device.WiFi.EndPoint.{i}.Profile.{i}.";
+          uses end-point-profile-g;
+          container security {
+            description
+              "Container for object class Device.WiFi.EndPoint.{i}.Profile.{i}.Security.";
+            reference
+              "Device.WiFi.EndPoint.{i}.Profile.{i}.Security.";
+            uses profile-security-g;
+          }
+        }
+        container security {
+          description
+            "Container for object class Device.WiFi.EndPoint.{i}.Security.";
+          reference
+            "Device.WiFi.EndPoint.{i}.Security.";
+          uses end-point-security-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.WiFi.EndPoint.{i}.Stats.";
+          reference
+            "Device.WiFi.EndPoint.{i}.Stats.";
+          uses end-point-stats-g;
+        }
+        container wps {
+          description
+            "Container for object class Device.WiFi.EndPoint.{i}.WPS.";
+          reference
+            "Device.WiFi.EndPoint.{i}.WPS.";
+          uses end-point-wps-g;
+        }
+      }
+      container neighboring-wi-fi-diagnostic {
+        description
+          "Container for object class Device.WiFi.NeighboringWiFiDiagnostic.";
+        reference
+          "Device.WiFi.NeighboringWiFiDiagnostic.";
+        uses wi-fi-neighboring-wi-fi-diagnostic-g;
+        list result {
+          key "index";
+          description
+            "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.";
+          reference
+            "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.";
+          uses neighboring-wi-fi-diagnostic-result-g;
+        }
+      }
+      list radio {
+        key "index";
+        description
+          "Device.WiFi.Radio.{i}.";
+        reference
+          "Device.WiFi.Radio.{i}.";
+        uses wi-fi-radio-g;
+        container stats {
+          description
+            "Container for object class Device.WiFi.Radio.{i}.Stats.";
+          reference
+            "Device.WiFi.Radio.{i}.Stats.";
+          uses radio-stats-g;
+        }
+      }
+      list ssid {
+        key "index";
+        description
+          "Device.WiFi.SSID.{i}.";
+        reference
+          "Device.WiFi.SSID.{i}.";
+        uses wi-fi-ssid-g;
+        container stats {
+          description
+            "Container for object class Device.WiFi.SSID.{i}.Stats.";
+          reference
+            "Device.WiFi.SSID.{i}.Stats.";
+          uses ssid-stats-g;
+        }
+      }
+    }
+    container xmpp {
+      description
+        "Container for object class Device.XMPP.";
+      reference
+        "Device.XMPP.";
+      uses device-xmpp-g;
+      list connection {
+        key "index";
+        description
+          "Device.XMPP.Connection.{i}.";
+        reference
+          "Device.XMPP.Connection.{i}.";
+        uses xmpp-connection-g;
+        list server {
+          key "index";
+          description
+            "Device.XMPP.Connection.{i}.Server.{i}.";
+          reference
+            "Device.XMPP.Connection.{i}.Server.{i}.";
+          uses connection-server-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.XMPP.Connection.{i}.Stats.";
+          reference
+            "Device.XMPP.Connection.{i}.Stats.";
+          uses connection-stats-g;
+        }
+      }
+    }
+    container zig-bee {
+      description
+        "Container for object class Device.ZigBee.";
+      reference
+        "Device.ZigBee.";
+      uses device-zig-bee-g;
+      container discovery {
+        description
+          "Container for object class Device.ZigBee.Discovery.";
+        reference
+          "Device.ZigBee.Discovery.";
+        uses zig-bee-discovery-g;
+        list area-network {
+          key "index";
+          description
+            "Device.ZigBee.Discovery.AreaNetwork.{i}.";
+          reference
+            "Device.ZigBee.Discovery.AreaNetwork.{i}.";
+          uses discovery-area-network-g;
+        }
+      }
+      list interface {
+        key "index";
+        description
+          "Device.ZigBee.Interface.{i}.";
+        reference
+          "Device.ZigBee.Interface.{i}.";
+        uses zig-bee-interface-g;
+        list associated-device {
+          key "index";
+          description
+            "Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.";
+          reference
+            "Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.";
+          uses zig-bee-interface-associated-device-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.ZigBee.Interface.{i}.Stats.";
+          reference
+            "Device.ZigBee.Interface.{i}.Stats.";
+          uses zig-bee-interface-stats-g;
+        }
+      }
+      list zdo {
+        key "index";
+        description
+          "Device.ZigBee.ZDO.{i}.";
+        reference
+          "Device.ZigBee.ZDO.{i}.";
+        uses zig-bee-zdo-g;
+        list application-endpoint {
+          key "index";
+          description
+            "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.";
+          reference
+            "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.";
+          uses zdo-application-endpoint-g;
+          container simple-descriptor {
+            description
+              "Container for object class Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.";
+            reference
+              "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.";
+            uses application-endpoint-simple-descriptor-g;
+          }
+        }
+        list binding {
+          key "index";
+          description
+            "Device.ZigBee.ZDO.{i}.Binding.{i}.";
+          reference
+            "Device.ZigBee.ZDO.{i}.Binding.{i}.";
+          uses zdo-binding-g;
+        }
+        container complex-descriptor {
+          description
+            "Container for object class Device.ZigBee.ZDO.{i}.ComplexDescriptor.";
+          reference
+            "Device.ZigBee.ZDO.{i}.ComplexDescriptor.";
+          uses zdo-complex-descriptor-g;
+        }
+        list group {
+          key "index";
+          description
+            "Device.ZigBee.ZDO.{i}.Group.{i}.";
+          reference
+            "Device.ZigBee.ZDO.{i}.Group.{i}.";
+          uses zdo-group-g;
+        }
+        container network {
+          description
+            "Container for object class Device.ZigBee.ZDO.{i}.Network.";
+          reference
+            "Device.ZigBee.ZDO.{i}.Network.";
+          uses zdo-network-g;
+          list neighbor {
+            key "index";
+            description
+              "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.";
+            reference
+              "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.";
+            uses network-neighbor-g;
+          }
+        }
+        container node-descriptor {
+          description
+            "Container for object class Device.ZigBee.ZDO.{i}.NodeDescriptor.";
+          reference
+            "Device.ZigBee.ZDO.{i}.NodeDescriptor.";
+          uses zdo-node-descriptor-g;
+        }
+        container node-manager {
+          description
+            "Container for object class Device.ZigBee.ZDO.{i}.NodeManager.";
+          reference
+            "Device.ZigBee.ZDO.{i}.NodeManager.";
+          uses zdo-node-manager-g;
+          list routing-table {
+            key "index";
+            description
+              "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.";
+            reference
+              "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.";
+            uses node-manager-routing-table-g;
+          }
+        }
+        container power-descriptor {
+          description
+            "Container for object class Device.ZigBee.ZDO.{i}.PowerDescriptor.";
+          reference
+            "Device.ZigBee.ZDO.{i}.PowerDescriptor.";
+          uses zdo-power-descriptor-g;
+        }
+        container security {
+          description
+            "Container for object class Device.ZigBee.ZDO.{i}.Security.";
+          reference
+            "Device.ZigBee.ZDO.{i}.Security.";
+          uses zdo-security-g;
+        }
+        container user-descriptor {
+          description
+            "Container for object class Device.ZigBee.ZDO.{i}.UserDescriptor.";
+          reference
+            "Device.ZigBee.ZDO.{i}.UserDescriptor.";
+          uses zdo-user-descriptor-g;
+        }
+      }
+    }
+  }
+}
diff --git a/netconf-server/schemas/tr-181-2-12-0-cwmp-full.yang b/netconf-server/schemas/tr-181-2-12-0-cwmp-full.yang
new file mode 100644 (file)
index 0000000..f692039
--- /dev/null
@@ -0,0 +1,43737 @@
+module tr-181-2-12-0-cwmp-full {
+  namespace "urn:onf:otcc:wireless:yang:radio-access-186";
+  prefix ran;
+
+  organization
+    "CommScope Inc";
+  contact
+    "Radio access OneCell <5g@commscope.com>
+
+     CommScope Inc
+     1100 10th Ave Ct SE,
+     Hickory,
+     NC 28602,
+     USA";
+  description
+    "This module contains a collection of YANG definitions for managing tr069 radio access network (RAN) devices.
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+       Unless required by applicable law or agreed to in writing, software
+       distributed under the License is distributed on an 'AS IS' BASIS,
+       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+       See the License for the specific language governing permissions and
+       limitations under the License.";
+
+  revision 2020-06-23 {
+    description
+      "Initial version, used only for ONAP PoC 2018-06-25";
+    reference
+      "ONF TR ???: A YANG Data Model for Radio Access Networks.
+       BBF TR-181-2-12-0 full";
+  }
+
+  grouping device-g {
+    description
+      "Grouping object for Device.";
+    leaf root-data-model-version {
+      type string;
+      config false;
+      description
+        "Device.RootDataModelVersion";
+      reference
+        "Device.RootDataModelVersion";
+    }
+    leaf interface-stack-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.InterfaceStackNumberOfEntries";
+      reference
+        "Device.InterfaceStackNumberOfEntries";
+    }
+  }
+
+  grouping device-atm-g {
+    description
+      "Grouping object for Device.ATM.";
+    leaf link-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.LinkNumberOfEntries";
+      reference
+        "Device.ATM.LinkNumberOfEntries";
+    }
+  }
+
+  grouping diagnostics-f5-loopback-g {
+    description
+      "Grouping object for Device.ATM.Diagnostics.F5Loopback.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Canceled {
+          description
+            "Enum Value - Canceled";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error {
+          description
+            "Enum Value - Error";
+        }
+      }
+      description
+        "Device.ATM.Diagnostics.F5Loopback.DiagnosticsState";
+      reference
+        "Device.ATM.Diagnostics.F5Loopback.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ATM.Diagnostics.F5Loopback.Interface";
+      reference
+        "Device.ATM.Diagnostics.F5Loopback.Interface";
+    }
+    leaf number-of-repetitions {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.ATM.Diagnostics.F5Loopback.NumberOfRepetitions";
+      reference
+        "Device.ATM.Diagnostics.F5Loopback.NumberOfRepetitions";
+    }
+    leaf timeout {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.ATM.Diagnostics.F5Loopback.Timeout";
+      reference
+        "Device.ATM.Diagnostics.F5Loopback.Timeout";
+    }
+    leaf success-count {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Diagnostics.F5Loopback.SuccessCount";
+      reference
+        "Device.ATM.Diagnostics.F5Loopback.SuccessCount";
+    }
+    leaf failure-count {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Diagnostics.F5Loopback.FailureCount";
+      reference
+        "Device.ATM.Diagnostics.F5Loopback.FailureCount";
+    }
+    leaf average-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Diagnostics.F5Loopback.AverageResponseTime";
+      reference
+        "Device.ATM.Diagnostics.F5Loopback.AverageResponseTime";
+    }
+    leaf minimum-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Diagnostics.F5Loopback.MinimumResponseTime";
+      reference
+        "Device.ATM.Diagnostics.F5Loopback.MinimumResponseTime";
+    }
+    leaf maximum-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Diagnostics.F5Loopback.MaximumResponseTime";
+      reference
+        "Device.ATM.Diagnostics.F5Loopback.MaximumResponseTime";
+    }
+  }
+
+  grouping atm-link-g {
+    description
+      "Grouping object for Device.ATM.Link.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ATM.Link.{i}.Enable";
+      reference
+        "Device.ATM.Link.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Status";
+      reference
+        "Device.ATM.Link.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ATM.Link.{i}.Alias";
+      reference
+        "Device.ATM.Link.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Name";
+      reference
+        "Device.ATM.Link.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Link.{i}.LastChange";
+      reference
+        "Device.ATM.Link.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.ATM.Link.{i}.LowerLayers";
+      reference
+        "Device.ATM.Link.{i}.LowerLayers";
+    }
+    leaf link-type {
+      type enumeration {
+        enum EoA {
+          description
+            "Enum Value - EoA";
+        }
+        enum IPoA {
+          description
+            "Enum Value - IPoA";
+        }
+        enum PPPoA {
+          description
+            "Enum Value - PPPoA";
+        }
+        enum CIP {
+          description
+            "Enum Value - CIP";
+        }
+        enum Unconfigured {
+          description
+            "Enum Value - Unconfigured";
+        }
+      }
+      description
+        "Device.ATM.Link.{i}.LinkType";
+      reference
+        "Device.ATM.Link.{i}.LinkType";
+    }
+    leaf auto-config {
+      type boolean;
+      config false;
+      description
+        "Device.ATM.Link.{i}.AutoConfig";
+      reference
+        "Device.ATM.Link.{i}.AutoConfig";
+    }
+    leaf destination-address {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ATM.Link.{i}.DestinationAddress";
+      reference
+        "Device.ATM.Link.{i}.DestinationAddress";
+    }
+    leaf encapsulation {
+      type enumeration {
+        enum LLC {
+          description
+            "Enum Value - LLC";
+        }
+        enum VCMUX {
+          description
+            "Enum Value - VCMUX";
+        }
+      }
+      description
+        "Device.ATM.Link.{i}.Encapsulation";
+      reference
+        "Device.ATM.Link.{i}.Encapsulation";
+    }
+    leaf fcs-preserved {
+      type boolean;
+      description
+        "Device.ATM.Link.{i}.FCSPreserved";
+      reference
+        "Device.ATM.Link.{i}.FCSPreserved";
+    }
+    leaf vc-search-list {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ATM.Link.{i}.VCSearchList";
+      reference
+        "Device.ATM.Link.{i}.VCSearchList";
+    }
+    leaf aal {
+      type string;
+      config false;
+      description
+        "Device.ATM.Link.{i}.AAL";
+      reference
+        "Device.ATM.Link.{i}.AAL";
+    }
+  }
+
+  grouping link-qo-s-g {
+    description
+      "Grouping object for Device.ATM.Link.{i}.QoS.";
+    leaf qo-s-class {
+      type enumeration {
+        enum UBR {
+          description
+            "Enum Value - UBR";
+        }
+        enum CBR {
+          description
+            "Enum Value - CBR";
+        }
+        enum GFR {
+          description
+            "Enum Value - GFR";
+        }
+        enum VBR-nrt {
+          description
+            "Enum Value - VBR-nrt";
+        }
+        enum VBR-rt {
+          description
+            "Enum Value - VBR-rt";
+        }
+        enum UBR+ {
+          description
+            "Enum Value - UBR+";
+        }
+        enum ABR {
+          description
+            "Enum Value - ABR";
+        }
+      }
+      description
+        "Device.ATM.Link.{i}.QoS.QoSClass";
+      reference
+        "Device.ATM.Link.{i}.QoS.QoSClass";
+    }
+    leaf peak-cell-rate {
+      type uint32;
+      description
+        "Device.ATM.Link.{i}.QoS.PeakCellRate";
+      reference
+        "Device.ATM.Link.{i}.QoS.PeakCellRate";
+    }
+    leaf maximum-burst-size {
+      type uint32;
+      description
+        "Device.ATM.Link.{i}.QoS.MaximumBurstSize";
+      reference
+        "Device.ATM.Link.{i}.QoS.MaximumBurstSize";
+    }
+    leaf sustainable-cell-rate {
+      type uint32;
+      description
+        "Device.ATM.Link.{i}.QoS.SustainableCellRate";
+      reference
+        "Device.ATM.Link.{i}.QoS.SustainableCellRate";
+    }
+  }
+
+  grouping link-stats-g {
+    description
+      "Grouping object for Device.ATM.Link.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.BytesSent";
+      reference
+        "Device.ATM.Link.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.BytesReceived";
+      reference
+        "Device.ATM.Link.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.PacketsSent";
+      reference
+        "Device.ATM.Link.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.PacketsReceived";
+      reference
+        "Device.ATM.Link.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.ErrorsSent";
+      reference
+        "Device.ATM.Link.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.ATM.Link.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.ATM.Link.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.ATM.Link.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.ATM.Link.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.ATM.Link.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.ATM.Link.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.ATM.Link.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.ATM.Link.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.ATM.Link.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.ATM.Link.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+    leaf transmitted-blocks {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.TransmittedBlocks";
+      reference
+        "Device.ATM.Link.{i}.Stats.TransmittedBlocks";
+    }
+    leaf received-blocks {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.ReceivedBlocks";
+      reference
+        "Device.ATM.Link.{i}.Stats.ReceivedBlocks";
+    }
+    leaf crc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.CRCErrors";
+      reference
+        "Device.ATM.Link.{i}.Stats.CRCErrors";
+    }
+    leaf hec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.ATM.Link.{i}.Stats.HECErrors";
+      reference
+        "Device.ATM.Link.{i}.Stats.HECErrors";
+    }
+  }
+
+  grouping device-basapm-g {
+    description
+      "Grouping object for Device.BASAPM.";
+    leaf measurement-endpoint-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.BASAPM.MeasurementEndpointNumberOfEntries";
+      reference
+        "Device.BASAPM.MeasurementEndpointNumberOfEntries";
+    }
+  }
+
+  grouping basapm-measurement-endpoint-g {
+    description
+      "Grouping object for Device.BASAPM.MeasurementEndpoint.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.Alias";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.Enable";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.Enable";
+    }
+    leaf measurement-agent {
+      type string;
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.MeasurementAgent";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.MeasurementAgent";
+    }
+    leaf device-ownership {
+      type enumeration {
+        enum ISP {
+          description
+            "Enum Value - ISP";
+        }
+        enum Customer {
+          description
+            "Enum Value - Customer";
+        }
+      }
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.DeviceOwnership";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.DeviceOwnership";
+    }
+    leaf operational-domain {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.OperationalDomain";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.OperationalDomain";
+    }
+    leaf internet-domain {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.InternetDomain";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.InternetDomain";
+    }
+    leaf use-measurement-endpoint-in-reports {
+      type boolean;
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.UseMeasurementEndpointInReports";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.UseMeasurementEndpointInReports";
+    }
+  }
+
+  grouping measurement-endpoint-customer-device-g {
+    description
+      "Grouping object for Device.BASAPM.MeasurementEndpoint.{i}.CustomerDevice.";
+    leaf equipment-identifier {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.CustomerDevice.EquipmentIdentifier";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.CustomerDevice.EquipmentIdentifier";
+    }
+    leaf customer-identifier {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.CustomerDevice.CustomerIdentifier";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.CustomerDevice.CustomerIdentifier";
+    }
+  }
+
+  grouping measurement-endpoint-isp-device-g {
+    description
+      "Grouping object for Device.BASAPM.MeasurementEndpoint.{i}.ISPDevice.";
+    leaf reference-point {
+      type enumeration {
+        enum STP {
+          description
+            "Enum Value - STP";
+        }
+        enum IDTP {
+          description
+            "Enum Value - IDTP";
+        }
+        enum RNTP {
+          description
+            "Enum Value - RNTP";
+        }
+        enum IRTP {
+          description
+            "Enum Value - IRTP";
+        }
+        enum MTP {
+          description
+            "Enum Value - MTP";
+        }
+        enum IATP {
+          description
+            "Enum Value - IATP";
+        }
+        enum UNITP {
+          description
+            "Enum Value - UNITP";
+        }
+        enum CEDTP {
+          description
+            "Enum Value - CEDTP";
+        }
+      }
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.ISPDevice.ReferencePoint";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.ISPDevice.ReferencePoint";
+    }
+    leaf geographical-location {
+      type string;
+      description
+        "Device.BASAPM.MeasurementEndpoint.{i}.ISPDevice.GeographicalLocation";
+      reference
+        "Device.BASAPM.MeasurementEndpoint.{i}.ISPDevice.GeographicalLocation";
+    }
+  }
+
+  grouping device-bridging-g {
+    description
+      "Grouping object for Device.Bridging.";
+    leaf max-bridge-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.MaxBridgeEntries";
+      reference
+        "Device.Bridging.MaxBridgeEntries";
+    }
+    leaf max-d-bridge-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.MaxDBridgeEntries";
+      reference
+        "Device.Bridging.MaxDBridgeEntries";
+    }
+    leaf max-q-bridge-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.MaxQBridgeEntries";
+      reference
+        "Device.Bridging.MaxQBridgeEntries";
+    }
+    leaf max-vlan-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.MaxVLANEntries";
+      reference
+        "Device.Bridging.MaxVLANEntries";
+    }
+    leaf max-provider-bridge-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.MaxProviderBridgeEntries";
+      reference
+        "Device.Bridging.MaxProviderBridgeEntries";
+    }
+    leaf provider-bridge-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.ProviderBridgeNumberOfEntries";
+      reference
+        "Device.Bridging.ProviderBridgeNumberOfEntries";
+    }
+    leaf max-filter-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.MaxFilterEntries";
+      reference
+        "Device.Bridging.MaxFilterEntries";
+    }
+    leaf bridge-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.BridgeNumberOfEntries";
+      reference
+        "Device.Bridging.BridgeNumberOfEntries";
+    }
+    leaf filter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.FilterNumberOfEntries";
+      reference
+        "Device.Bridging.FilterNumberOfEntries";
+    }
+  }
+
+  grouping bridging-bridge-g {
+    description
+      "Grouping object for Device.Bridging.Bridge.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.Enable";
+      reference
+        "Device.Bridging.Bridge.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Status";
+      reference
+        "Device.Bridging.Bridge.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Alias";
+      reference
+        "Device.Bridging.Bridge.{i}.Alias";
+    }
+    leaf standard {
+      type enumeration {
+        enum 802.1D-2004 {
+          description
+            "Enum Value - 802.1D-2004";
+        }
+        enum 802.1Q-2005 {
+          description
+            "Enum Value - 802.1Q-2005";
+        }
+        enum 802.1Q-2011 {
+          description
+            "Enum Value - 802.1Q-2011";
+        }
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Standard";
+      reference
+        "Device.Bridging.Bridge.{i}.Standard";
+    }
+    leaf port-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.PortNumberOfEntries";
+      reference
+        "Device.Bridging.Bridge.{i}.PortNumberOfEntries";
+    }
+    leaf vlan-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.VLANNumberOfEntries";
+      reference
+        "Device.Bridging.Bridge.{i}.VLANNumberOfEntries";
+    }
+    leaf vlan-port-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.VLANPortNumberOfEntries";
+      reference
+        "Device.Bridging.Bridge.{i}.VLANPortNumberOfEntries";
+    }
+  }
+
+  grouping bridge-port-g {
+    description
+      "Grouping object for Device.Bridging.Bridge.{i}.Port.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Enable";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Status";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Alias";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Name";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.LastChange";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.LowerLayers";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.LowerLayers";
+    }
+    leaf management-port {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.ManagementPort";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.ManagementPort";
+    }
+    leaf type {
+      type enumeration {
+        enum ProviderNetworkPort {
+          description
+            "Enum Value - ProviderNetworkPort";
+        }
+        enum CustomerNetworkPort {
+          description
+            "Enum Value - CustomerNetworkPort";
+        }
+        enum CustomerEdgePort {
+          description
+            "Enum Value - CustomerEdgePort";
+        }
+        enum CustomerVLANPort {
+          description
+            "Enum Value - CustomerVLANPort";
+        }
+        enum VLANUnawarePort {
+          description
+            "Enum Value - VLANUnawarePort";
+        }
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Type";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Type";
+    }
+    leaf default-user-priority {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.DefaultUserPriority";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.DefaultUserPriority";
+    }
+    leaf priority-regeneration {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityRegeneration";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityRegeneration";
+    }
+    leaf port-state {
+      type string;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.PortState";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.PortState";
+    }
+    leaf pvid {
+      type int32 {
+        range "1..4094";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.PVID";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.PVID";
+    }
+    leaf tpid {
+      type uint32;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.TPID";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.TPID";
+    }
+    leaf acceptable-frame-types {
+      type enumeration {
+        enum AdmitAll {
+          description
+            "Enum Value - AdmitAll";
+        }
+        enum AdmitOnlyVLANTagged {
+          description
+            "Enum Value - AdmitOnlyVLANTagged";
+        }
+        enum AdmitOnlyPrioUntagged {
+          description
+            "Enum Value - AdmitOnlyPrioUntagged";
+        }
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.AcceptableFrameTypes";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.AcceptableFrameTypes";
+    }
+    leaf ingress-filtering {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.IngressFiltering";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.IngressFiltering";
+    }
+    leaf service-access-priority-selection {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.ServiceAccessPrioritySelection";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.ServiceAccessPrioritySelection";
+    }
+    leaf service-access-priority-translation {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.ServiceAccessPriorityTranslation";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.ServiceAccessPriorityTranslation";
+    }
+    leaf priority-tagging {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityTagging";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityTagging";
+    }
+  }
+
+  grouping port-priority-code-point-g {
+    description
+      "Grouping object for Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.";
+    leaf pcp-selection {
+      type uint32 {
+        range "1..4";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.PCPSelection";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.PCPSelection";
+    }
+    leaf use-dei {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.UseDEI";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.UseDEI";
+    }
+    leaf require-drop-encoding {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.RequireDropEncoding";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.RequireDropEncoding";
+    }
+    leaf pcp-encoding {
+      type string {
+        length "31";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.PCPEncoding";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.PCPEncoding";
+    }
+    leaf pcp-decoding {
+      type string {
+        length "15";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.PCPDecoding";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.PCPDecoding";
+    }
+  }
+
+  grouping port-stats-g {
+    description
+      "Grouping object for Device.Bridging.Bridge.{i}.Port.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.BytesSent";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.BytesReceived";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.PacketsSent";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.PacketsReceived";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.ErrorsSent";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.Bridging.Bridge.{i}.Port.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping bridge-vlan-g {
+    description
+      "Grouping object for Device.Bridging.Bridge.{i}.VLAN.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.VLAN.{i}.Enable";
+      reference
+        "Device.Bridging.Bridge.{i}.VLAN.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.VLAN.{i}.Alias";
+      reference
+        "Device.Bridging.Bridge.{i}.VLAN.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.VLAN.{i}.Name";
+      reference
+        "Device.Bridging.Bridge.{i}.VLAN.{i}.Name";
+    }
+    leaf vlanid {
+      type int32 {
+        range "1..4094";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.VLAN.{i}.VLANID";
+      reference
+        "Device.Bridging.Bridge.{i}.VLAN.{i}.VLANID";
+    }
+  }
+
+  grouping bridge-vlan-port-g {
+    description
+      "Grouping object for Device.Bridging.Bridge.{i}.VLANPort.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.VLANPort.{i}.Enable";
+      reference
+        "Device.Bridging.Bridge.{i}.VLANPort.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.VLANPort.{i}.Alias";
+      reference
+        "Device.Bridging.Bridge.{i}.VLANPort.{i}.Alias";
+    }
+    leaf vlan {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.VLANPort.{i}.VLAN";
+      reference
+        "Device.Bridging.Bridge.{i}.VLANPort.{i}.VLAN";
+    }
+    leaf port {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Bridging.Bridge.{i}.VLANPort.{i}.Port";
+      reference
+        "Device.Bridging.Bridge.{i}.VLANPort.{i}.Port";
+    }
+    leaf untagged {
+      type boolean;
+      description
+        "Device.Bridging.Bridge.{i}.VLANPort.{i}.Untagged";
+      reference
+        "Device.Bridging.Bridge.{i}.VLANPort.{i}.Untagged";
+    }
+  }
+
+  grouping bridging-filter-g {
+    description
+      "Grouping object for Device.Bridging.Filter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.Enable";
+      reference
+        "Device.Bridging.Filter.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Bridging.Filter.{i}.Alias";
+      reference
+        "Device.Bridging.Filter.{i}.Alias";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Bridging.Filter.{i}.Status";
+      reference
+        "Device.Bridging.Filter.{i}.Status";
+    }
+    leaf bridge {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Bridging.Filter.{i}.Bridge";
+      reference
+        "Device.Bridging.Filter.{i}.Bridge";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.Bridging.Filter.{i}.Order";
+      reference
+        "Device.Bridging.Filter.{i}.Order";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Bridging.Filter.{i}.Interface";
+      reference
+        "Device.Bridging.Filter.{i}.Interface";
+    }
+    leaf dhcp-type {
+      type enumeration {
+        enum DHCPv4 {
+          description
+            "Enum Value - DHCPv4";
+        }
+        enum DHCPv6 {
+          description
+            "Enum Value - DHCPv6";
+        }
+      }
+      description
+        "Device.Bridging.Filter.{i}.DHCPType";
+      reference
+        "Device.Bridging.Filter.{i}.DHCPType";
+    }
+    leaf vlanid-filter {
+      type uint32 {
+        range "0..4094";
+      }
+      description
+        "Device.Bridging.Filter.{i}.VLANIDFilter";
+      reference
+        "Device.Bridging.Filter.{i}.VLANIDFilter";
+    }
+    leaf ethertype-filter-list {
+      type uint32;
+      description
+        "Device.Bridging.Filter.{i}.EthertypeFilterList";
+      reference
+        "Device.Bridging.Filter.{i}.EthertypeFilterList";
+    }
+    leaf ethertype-filter-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.EthertypeFilterExclude";
+      reference
+        "Device.Bridging.Filter.{i}.EthertypeFilterExclude";
+    }
+    leaf source-mac-address-filter-list {
+      type string {
+        length "min..512";
+      }
+      description
+        "Device.Bridging.Filter.{i}.SourceMACAddressFilterList";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMACAddressFilterList";
+    }
+    leaf source-mac-address-filter-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.SourceMACAddressFilterExclude";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMACAddressFilterExclude";
+    }
+    leaf dest-mac-address-filter-list {
+      type string {
+        length "min..512";
+      }
+      description
+        "Device.Bridging.Filter.{i}.DestMACAddressFilterList";
+      reference
+        "Device.Bridging.Filter.{i}.DestMACAddressFilterList";
+    }
+    leaf dest-mac-address-filter-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.DestMACAddressFilterExclude";
+      reference
+        "Device.Bridging.Filter.{i}.DestMACAddressFilterExclude";
+    }
+    leaf source-mac-from-vendor-class-id-filter {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.Bridging.Filter.{i}.SourceMACFromVendorClassIDFilter";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMACFromVendorClassIDFilter";
+    }
+    leaf source-mac-from-vendor-class-id-filterv6 {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.Bridging.Filter.{i}.SourceMACFromVendorClassIDFilterv6";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMACFromVendorClassIDFilterv6";
+    }
+    leaf source-mac-from-vendor-class-id-filter-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.SourceMACFromVendorClassIDFilterExclude";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMACFromVendorClassIDFilterExclude";
+    }
+    leaf source-mac-from-vendor-class-id-mode {
+      type enumeration {
+        enum Exact {
+          description
+            "Enum Value - Exact";
+        }
+        enum Prefix {
+          description
+            "Enum Value - Prefix";
+        }
+        enum Suffix {
+          description
+            "Enum Value - Suffix";
+        }
+        enum Substring {
+          description
+            "Enum Value - Substring";
+        }
+      }
+      description
+        "Device.Bridging.Filter.{i}.SourceMACFromVendorClassIDMode";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMACFromVendorClassIDMode";
+    }
+    leaf dest-mac-from-vendor-class-id-filter {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.Bridging.Filter.{i}.DestMACFromVendorClassIDFilter";
+      reference
+        "Device.Bridging.Filter.{i}.DestMACFromVendorClassIDFilter";
+    }
+    leaf dest-mac-from-vendor-class-id-filterv6 {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.Bridging.Filter.{i}.DestMACFromVendorClassIDFilterv6";
+      reference
+        "Device.Bridging.Filter.{i}.DestMACFromVendorClassIDFilterv6";
+    }
+    leaf dest-mac-from-vendor-class-id-filter-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.DestMACFromVendorClassIDFilterExclude";
+      reference
+        "Device.Bridging.Filter.{i}.DestMACFromVendorClassIDFilterExclude";
+    }
+    leaf dest-mac-from-vendor-class-id-mode {
+      type enumeration {
+        enum Exact {
+          description
+            "Enum Value - Exact";
+        }
+        enum Prefix {
+          description
+            "Enum Value - Prefix";
+        }
+        enum Suffix {
+          description
+            "Enum Value - Suffix";
+        }
+        enum Substring {
+          description
+            "Enum Value - Substring";
+        }
+      }
+      description
+        "Device.Bridging.Filter.{i}.DestMACFromVendorClassIDMode";
+      reference
+        "Device.Bridging.Filter.{i}.DestMACFromVendorClassIDMode";
+    }
+    leaf source-mac-from-client-id-filter {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.Bridging.Filter.{i}.SourceMACFromClientIDFilter";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMACFromClientIDFilter";
+    }
+    leaf source-mac-from-client-id-filter-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.SourceMACFromClientIDFilterExclude";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMACFromClientIDFilterExclude";
+    }
+    leaf dest-mac-from-client-id-filter {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.Bridging.Filter.{i}.DestMACFromClientIDFilter";
+      reference
+        "Device.Bridging.Filter.{i}.DestMACFromClientIDFilter";
+    }
+    leaf dest-mac-from-client-id-filter-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.DestMACFromClientIDFilterExclude";
+      reference
+        "Device.Bridging.Filter.{i}.DestMACFromClientIDFilterExclude";
+    }
+    leaf source-mac-from-user-class-id-filter {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.Bridging.Filter.{i}.SourceMACFromUserClassIDFilter";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMACFromUserClassIDFilter";
+    }
+    leaf source-mac-from-user-class-id-filter-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.SourceMACFromUserClassIDFilterExclude";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMACFromUserClassIDFilterExclude";
+    }
+    leaf dest-mac-from-user-class-id-filter {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.Bridging.Filter.{i}.DestMACFromUserClassIDFilter";
+      reference
+        "Device.Bridging.Filter.{i}.DestMACFromUserClassIDFilter";
+    }
+    leaf dest-mac-from-user-class-id-filter-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.DestMACFromUserClassIDFilterExclude";
+      reference
+        "Device.Bridging.Filter.{i}.DestMACFromUserClassIDFilterExclude";
+    }
+    leaf dest-ip {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.Bridging.Filter.{i}.DestIP";
+      reference
+        "Device.Bridging.Filter.{i}.DestIP";
+    }
+    leaf dest-mask {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.Bridging.Filter.{i}.DestMask";
+      reference
+        "Device.Bridging.Filter.{i}.DestMask";
+    }
+    leaf dest-ip-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.DestIPExclude";
+      reference
+        "Device.Bridging.Filter.{i}.DestIPExclude";
+    }
+    leaf source-ip {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.Bridging.Filter.{i}.SourceIP";
+      reference
+        "Device.Bridging.Filter.{i}.SourceIP";
+    }
+    leaf source-mask {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.Bridging.Filter.{i}.SourceMask";
+      reference
+        "Device.Bridging.Filter.{i}.SourceMask";
+    }
+    leaf source-ip-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.SourceIPExclude";
+      reference
+        "Device.Bridging.Filter.{i}.SourceIPExclude";
+    }
+    leaf protocol {
+      type int32 {
+        range "-1..255";
+      }
+      description
+        "Device.Bridging.Filter.{i}.Protocol";
+      reference
+        "Device.Bridging.Filter.{i}.Protocol";
+    }
+    leaf protocol-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.ProtocolExclude";
+      reference
+        "Device.Bridging.Filter.{i}.ProtocolExclude";
+    }
+    leaf dest-port {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.Bridging.Filter.{i}.DestPort";
+      reference
+        "Device.Bridging.Filter.{i}.DestPort";
+    }
+    leaf dest-port-range-max {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.Bridging.Filter.{i}.DestPortRangeMax";
+      reference
+        "Device.Bridging.Filter.{i}.DestPortRangeMax";
+    }
+    leaf dest-port-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.DestPortExclude";
+      reference
+        "Device.Bridging.Filter.{i}.DestPortExclude";
+    }
+    leaf source-port {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.Bridging.Filter.{i}.SourcePort";
+      reference
+        "Device.Bridging.Filter.{i}.SourcePort";
+    }
+    leaf source-port-range-max {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.Bridging.Filter.{i}.SourcePortRangeMax";
+      reference
+        "Device.Bridging.Filter.{i}.SourcePortRangeMax";
+    }
+    leaf source-port-exclude {
+      type boolean;
+      description
+        "Device.Bridging.Filter.{i}.SourcePortExclude";
+      reference
+        "Device.Bridging.Filter.{i}.SourcePortExclude";
+    }
+  }
+
+  grouping bridging-provider-bridge-g {
+    description
+      "Grouping object for Device.Bridging.ProviderBridge.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Bridging.ProviderBridge.{i}.Enable";
+      reference
+        "Device.Bridging.ProviderBridge.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Bridging.ProviderBridge.{i}.Status";
+      reference
+        "Device.Bridging.ProviderBridge.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Bridging.ProviderBridge.{i}.Alias";
+      reference
+        "Device.Bridging.ProviderBridge.{i}.Alias";
+    }
+    leaf type {
+      type enumeration {
+        enum S-VLAN {
+          description
+            "Enum Value - S-VLAN";
+        }
+        enum PE {
+          description
+            "Enum Value - PE";
+        }
+      }
+      description
+        "Device.Bridging.ProviderBridge.{i}.Type";
+      reference
+        "Device.Bridging.ProviderBridge.{i}.Type";
+    }
+    leaf svla-ncomponent {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Bridging.ProviderBridge.{i}.SVLANcomponent";
+      reference
+        "Device.Bridging.ProviderBridge.{i}.SVLANcomponent";
+    }
+    leaf cvla-ncomponents {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Bridging.ProviderBridge.{i}.CVLANcomponents";
+      reference
+        "Device.Bridging.ProviderBridge.{i}.CVLANcomponents";
+    }
+  }
+
+  grouping device-bulk-data-g {
+    description
+      "Grouping object for Device.BulkData.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.BulkData.Enable";
+      reference
+        "Device.BulkData.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.BulkData.Status";
+      reference
+        "Device.BulkData.Status";
+    }
+    leaf min-reporting-interval {
+      type uint32;
+      config false;
+      description
+        "Device.BulkData.MinReportingInterval";
+      reference
+        "Device.BulkData.MinReportingInterval";
+    }
+    leaf protocols {
+      type string;
+      config false;
+      description
+        "Device.BulkData.Protocols";
+      reference
+        "Device.BulkData.Protocols";
+    }
+    leaf encoding-types {
+      type string;
+      config false;
+      description
+        "Device.BulkData.EncodingTypes";
+      reference
+        "Device.BulkData.EncodingTypes";
+    }
+    leaf parameter-wild-card-supported {
+      type boolean;
+      config false;
+      description
+        "Device.BulkData.ParameterWildCardSupported";
+      reference
+        "Device.BulkData.ParameterWildCardSupported";
+    }
+    leaf max-number-of-profiles {
+      type int32;
+      config false;
+      description
+        "Device.BulkData.MaxNumberOfProfiles";
+      reference
+        "Device.BulkData.MaxNumberOfProfiles";
+    }
+    leaf max-number-of-parameter-references {
+      type int32;
+      config false;
+      description
+        "Device.BulkData.MaxNumberOfParameterReferences";
+      reference
+        "Device.BulkData.MaxNumberOfParameterReferences";
+    }
+    leaf profile-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.BulkData.ProfileNumberOfEntries";
+      reference
+        "Device.BulkData.ProfileNumberOfEntries";
+    }
+  }
+
+  grouping bulk-data-profile-g {
+    description
+      "Grouping object for Device.BulkData.Profile.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.BulkData.Profile.{i}.Enable";
+      reference
+        "Device.BulkData.Profile.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.BulkData.Profile.{i}.Alias";
+      reference
+        "Device.BulkData.Profile.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.BulkData.Profile.{i}.Name";
+      reference
+        "Device.BulkData.Profile.{i}.Name";
+    }
+    leaf number-of-retained-failed-reports {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.BulkData.Profile.{i}.NumberOfRetainedFailedReports";
+      reference
+        "Device.BulkData.Profile.{i}.NumberOfRetainedFailedReports";
+    }
+    leaf protocol {
+      type string;
+      description
+        "Device.BulkData.Profile.{i}.Protocol";
+      reference
+        "Device.BulkData.Profile.{i}.Protocol";
+    }
+    leaf encoding-type {
+      type string;
+      description
+        "Device.BulkData.Profile.{i}.EncodingType";
+      reference
+        "Device.BulkData.Profile.{i}.EncodingType";
+    }
+    leaf reporting-interval {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.BulkData.Profile.{i}.ReportingInterval";
+      reference
+        "Device.BulkData.Profile.{i}.ReportingInterval";
+    }
+    leaf time-reference {
+      type string;
+      description
+        "Device.BulkData.Profile.{i}.TimeReference";
+      reference
+        "Device.BulkData.Profile.{i}.TimeReference";
+    }
+    leaf streaming-host {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.BulkData.Profile.{i}.StreamingHost";
+      reference
+        "Device.BulkData.Profile.{i}.StreamingHost";
+    }
+    leaf streaming-port {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.BulkData.Profile.{i}.StreamingPort";
+      reference
+        "Device.BulkData.Profile.{i}.StreamingPort";
+    }
+    leaf streaming-session-id {
+      type uint32 {
+        range "48..57 | 65..90";
+      }
+      description
+        "Device.BulkData.Profile.{i}.StreamingSessionID";
+      reference
+        "Device.BulkData.Profile.{i}.StreamingSessionID";
+    }
+    leaf file-transfer-url {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.BulkData.Profile.{i}.FileTransferURL";
+      reference
+        "Device.BulkData.Profile.{i}.FileTransferURL";
+    }
+    leaf file-transfer-username {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.BulkData.Profile.{i}.FileTransferUsername";
+      reference
+        "Device.BulkData.Profile.{i}.FileTransferUsername";
+    }
+    leaf control-file-format {
+      type string {
+        length "min..128";
+      }
+      description
+        "Device.BulkData.Profile.{i}.ControlFileFormat";
+      reference
+        "Device.BulkData.Profile.{i}.ControlFileFormat";
+    }
+    leaf parameter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.BulkData.Profile.{i}.ParameterNumberOfEntries";
+      reference
+        "Device.BulkData.Profile.{i}.ParameterNumberOfEntries";
+    }
+  }
+
+  grouping profile-csv-encoding-g {
+    description
+      "Grouping object for Device.BulkData.Profile.{i}.CSVEncoding.";
+    leaf field-separator {
+      type string;
+      description
+        "Device.BulkData.Profile.{i}.CSVEncoding.FieldSeparator";
+      reference
+        "Device.BulkData.Profile.{i}.CSVEncoding.FieldSeparator";
+    }
+    leaf row-separator {
+      type string;
+      description
+        "Device.BulkData.Profile.{i}.CSVEncoding.RowSeparator";
+      reference
+        "Device.BulkData.Profile.{i}.CSVEncoding.RowSeparator";
+    }
+    leaf escape-character {
+      type string;
+      description
+        "Device.BulkData.Profile.{i}.CSVEncoding.EscapeCharacter";
+      reference
+        "Device.BulkData.Profile.{i}.CSVEncoding.EscapeCharacter";
+    }
+    leaf report-format {
+      type enumeration {
+        enum ParameterPerRow {
+          description
+            "Enum Value - ParameterPerRow";
+        }
+        enum ParameterPerColumn {
+          description
+            "Enum Value - ParameterPerColumn";
+        }
+      }
+      description
+        "Device.BulkData.Profile.{i}.CSVEncoding.ReportFormat";
+      reference
+        "Device.BulkData.Profile.{i}.CSVEncoding.ReportFormat";
+    }
+    leaf row-timestamp {
+      type enumeration {
+        enum Unix-Epoch {
+          description
+            "Enum Value - Unix-Epoch";
+        }
+        enum ISO-8601 {
+          description
+            "Enum Value - ISO-8601";
+        }
+        enum None {
+          description
+            "Enum Value - None";
+        }
+      }
+      description
+        "Device.BulkData.Profile.{i}.CSVEncoding.RowTimestamp";
+      reference
+        "Device.BulkData.Profile.{i}.CSVEncoding.RowTimestamp";
+    }
+  }
+
+  grouping profile-http-g {
+    description
+      "Grouping object for Device.BulkData.Profile.{i}.HTTP.";
+    leaf url {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.BulkData.Profile.{i}.HTTP.URL";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.URL";
+    }
+    leaf username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.BulkData.Profile.{i}.HTTP.Username";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.Username";
+    }
+    leaf compressions-supported {
+      type string;
+      config false;
+      description
+        "Device.BulkData.Profile.{i}.HTTP.CompressionsSupported";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.CompressionsSupported";
+    }
+    leaf compression {
+      type string;
+      description
+        "Device.BulkData.Profile.{i}.HTTP.Compression";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.Compression";
+    }
+    leaf methods-supported {
+      type string;
+      config false;
+      description
+        "Device.BulkData.Profile.{i}.HTTP.MethodsSupported";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.MethodsSupported";
+    }
+    leaf method {
+      type string;
+      description
+        "Device.BulkData.Profile.{i}.HTTP.Method";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.Method";
+    }
+    leaf use-date-header {
+      type boolean;
+      description
+        "Device.BulkData.Profile.{i}.HTTP.UseDateHeader";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.UseDateHeader";
+    }
+    leaf retry-enable {
+      type boolean;
+      description
+        "Device.BulkData.Profile.{i}.HTTP.RetryEnable";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.RetryEnable";
+    }
+    leaf retry-minimum-wait-interval {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.BulkData.Profile.{i}.HTTP.RetryMinimumWaitInterval";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.RetryMinimumWaitInterval";
+    }
+    leaf retry-interval-multiplier {
+      type uint32 {
+        range "1000..65535";
+      }
+      description
+        "Device.BulkData.Profile.{i}.HTTP.RetryIntervalMultiplier";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.RetryIntervalMultiplier";
+    }
+    leaf request-uri-parameter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.BulkData.Profile.{i}.HTTP.RequestURIParameterNumberOfEntries";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.RequestURIParameterNumberOfEntries";
+    }
+    leaf persist-across-reboot {
+      type boolean;
+      description
+        "Device.BulkData.Profile.{i}.HTTP.PersistAcrossReboot";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.PersistAcrossReboot";
+    }
+  }
+
+  grouping http-request-uri-parameter-g {
+    description
+      "Grouping object for Device.BulkData.Profile.{i}.HTTP.RequestURIParameter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.BulkData.Profile.{i}.HTTP.RequestURIParameter.{i}.Name";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.RequestURIParameter.{i}.Name";
+    }
+    leaf reference {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.BulkData.Profile.{i}.HTTP.RequestURIParameter.{i}.Reference";
+      reference
+        "Device.BulkData.Profile.{i}.HTTP.RequestURIParameter.{i}.Reference";
+    }
+  }
+
+  grouping profile-json-encoding-g {
+    description
+      "Grouping object for Device.BulkData.Profile.{i}.JSONEncoding.";
+    leaf report-format {
+      type enumeration {
+        enum ObjectHierarchy {
+          description
+            "Enum Value - ObjectHierarchy";
+        }
+        enum NameValuePair {
+          description
+            "Enum Value - NameValuePair";
+        }
+      }
+      description
+        "Device.BulkData.Profile.{i}.JSONEncoding.ReportFormat";
+      reference
+        "Device.BulkData.Profile.{i}.JSONEncoding.ReportFormat";
+    }
+    leaf report-timestamp {
+      type enumeration {
+        enum Unix-Epoch {
+          description
+            "Enum Value - Unix-Epoch";
+        }
+        enum ISO-8601 {
+          description
+            "Enum Value - ISO-8601";
+        }
+        enum None {
+          description
+            "Enum Value - None";
+        }
+      }
+      description
+        "Device.BulkData.Profile.{i}.JSONEncoding.ReportTimestamp";
+      reference
+        "Device.BulkData.Profile.{i}.JSONEncoding.ReportTimestamp";
+    }
+  }
+
+  grouping profile-parameter-g {
+    description
+      "Grouping object for Device.BulkData.Profile.{i}.Parameter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.BulkData.Profile.{i}.Parameter.{i}.Name";
+      reference
+        "Device.BulkData.Profile.{i}.Parameter.{i}.Name";
+    }
+    leaf reference {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.BulkData.Profile.{i}.Parameter.{i}.Reference";
+      reference
+        "Device.BulkData.Profile.{i}.Parameter.{i}.Reference";
+    }
+  }
+
+  grouping device-captive-portal-g {
+    description
+      "Grouping object for Device.CaptivePortal.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.CaptivePortal.Enable";
+      reference
+        "Device.CaptivePortal.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.CaptivePortal.Status";
+      reference
+        "Device.CaptivePortal.Status";
+    }
+    leaf allowed-list {
+      type string {
+        length "min..10000";
+      }
+      description
+        "Device.CaptivePortal.AllowedList";
+      reference
+        "Device.CaptivePortal.AllowedList";
+    }
+    leaf url {
+      type string {
+        length "min..2000";
+      }
+      description
+        "Device.CaptivePortal.URL";
+      reference
+        "Device.CaptivePortal.URL";
+    }
+  }
+
+  grouping device-cellular-g {
+    description
+      "Grouping object for Device.Cellular.";
+    leaf roaming-enabled {
+      type boolean;
+      description
+        "Device.Cellular.RoamingEnabled";
+      reference
+        "Device.Cellular.RoamingEnabled";
+    }
+    leaf roaming-status {
+      type string;
+      config false;
+      description
+        "Device.Cellular.RoamingStatus";
+      reference
+        "Device.Cellular.RoamingStatus";
+    }
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Cellular.InterfaceNumberOfEntries";
+      reference
+        "Device.Cellular.InterfaceNumberOfEntries";
+    }
+    leaf access-point-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Cellular.AccessPointNumberOfEntries";
+      reference
+        "Device.Cellular.AccessPointNumberOfEntries";
+    }
+  }
+
+  grouping cellular-access-point-g {
+    description
+      "Grouping object for Device.Cellular.AccessPoint.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Cellular.AccessPoint.{i}.Enable";
+      reference
+        "Device.Cellular.AccessPoint.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Cellular.AccessPoint.{i}.Alias";
+      reference
+        "Device.Cellular.AccessPoint.{i}.Alias";
+    }
+    leaf apn {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Cellular.AccessPoint.{i}.APN";
+      reference
+        "Device.Cellular.AccessPoint.{i}.APN";
+    }
+    leaf username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Cellular.AccessPoint.{i}.Username";
+      reference
+        "Device.Cellular.AccessPoint.{i}.Username";
+    }
+    leaf proxy {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.Cellular.AccessPoint.{i}.Proxy";
+      reference
+        "Device.Cellular.AccessPoint.{i}.Proxy";
+    }
+    leaf proxy-port {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.Cellular.AccessPoint.{i}.ProxyPort";
+      reference
+        "Device.Cellular.AccessPoint.{i}.ProxyPort";
+    }
+    leaf interface {
+      type string;
+      description
+        "Device.Cellular.AccessPoint.{i}.Interface";
+      reference
+        "Device.Cellular.AccessPoint.{i}.Interface";
+    }
+  }
+
+  grouping cellular-interface-g {
+    description
+      "Grouping object for Device.Cellular.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Cellular.Interface.{i}.Enable";
+      reference
+        "Device.Cellular.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Status";
+      reference
+        "Device.Cellular.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Cellular.Interface.{i}.Alias";
+      reference
+        "Device.Cellular.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Name";
+      reference
+        "Device.Cellular.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.LastChange";
+      reference
+        "Device.Cellular.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.Cellular.Interface.{i}.LowerLayers";
+      reference
+        "Device.Cellular.Interface.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Upstream";
+      reference
+        "Device.Cellular.Interface.{i}.Upstream";
+    }
+    leaf imei {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.IMEI";
+      reference
+        "Device.Cellular.Interface.{i}.IMEI";
+    }
+    leaf supported-access-technologies {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.SupportedAccessTechnologies";
+      reference
+        "Device.Cellular.Interface.{i}.SupportedAccessTechnologies";
+    }
+    leaf preferred-access-technology {
+      type string;
+      description
+        "Device.Cellular.Interface.{i}.PreferredAccessTechnology";
+      reference
+        "Device.Cellular.Interface.{i}.PreferredAccessTechnology";
+    }
+    leaf current-access-technology {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.CurrentAccessTechnology";
+      reference
+        "Device.Cellular.Interface.{i}.CurrentAccessTechnology";
+    }
+    leaf available-networks {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.AvailableNetworks";
+      reference
+        "Device.Cellular.Interface.{i}.AvailableNetworks";
+    }
+    leaf network-requested {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Cellular.Interface.{i}.NetworkRequested";
+      reference
+        "Device.Cellular.Interface.{i}.NetworkRequested";
+    }
+    leaf network-in-use {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.NetworkInUse";
+      reference
+        "Device.Cellular.Interface.{i}.NetworkInUse";
+    }
+    leaf rssi {
+      type int32;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.RSSI";
+      reference
+        "Device.Cellular.Interface.{i}.RSSI";
+    }
+    leaf upstream-max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.UpstreamMaxBitRate";
+      reference
+        "Device.Cellular.Interface.{i}.UpstreamMaxBitRate";
+    }
+    leaf downstream-max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.DownstreamMaxBitRate";
+      reference
+        "Device.Cellular.Interface.{i}.DownstreamMaxBitRate";
+    }
+  }
+
+  grouping interface-stats-g {
+    description
+      "Grouping object for Device.Cellular.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.Cellular.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping interface-usim-g {
+    description
+      "Grouping object for Device.Cellular.Interface.{i}.USIM.";
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.USIM.Status";
+      reference
+        "Device.Cellular.Interface.{i}.USIM.Status";
+    }
+    leaf imsi {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.USIM.IMSI";
+      reference
+        "Device.Cellular.Interface.{i}.USIM.IMSI";
+    }
+    leaf iccid {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.USIM.ICCID";
+      reference
+        "Device.Cellular.Interface.{i}.USIM.ICCID";
+    }
+    leaf msisdn {
+      type string;
+      config false;
+      description
+        "Device.Cellular.Interface.{i}.USIM.MSISDN";
+      reference
+        "Device.Cellular.Interface.{i}.USIM.MSISDN";
+    }
+    leaf pin-check {
+      type enumeration {
+        enum OnNetworkAccess {
+          description
+            "Enum Value - OnNetworkAccess";
+        }
+        enum Reboot {
+          description
+            "Enum Value - Reboot";
+        }
+        enum Off {
+          description
+            "Enum Value - Off";
+        }
+      }
+      description
+        "Device.Cellular.Interface.{i}.USIM.PINCheck";
+      reference
+        "Device.Cellular.Interface.{i}.USIM.PINCheck";
+    }
+  }
+
+  grouping device-dhcpv4-g {
+    description
+      "Grouping object for Device.DHCPv4.";
+    leaf client-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv4.ClientNumberOfEntries";
+      reference
+        "Device.DHCPv4.ClientNumberOfEntries";
+    }
+  }
+
+  grouping dhcpv4-client-g {
+    description
+      "Grouping object for Device.DHCPv4.Client.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv4.Client.{i}.Enable";
+      reference
+        "Device.DHCPv4.Client.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv4.Client.{i}.Alias";
+      reference
+        "Device.DHCPv4.Client.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DHCPv4.Client.{i}.Interface";
+      reference
+        "Device.DHCPv4.Client.{i}.Interface";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.Status";
+      reference
+        "Device.DHCPv4.Client.{i}.Status";
+    }
+    leaf dhcp-status {
+      type string;
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.DHCPStatus";
+      reference
+        "Device.DHCPv4.Client.{i}.DHCPStatus";
+    }
+    leaf ip-address {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.IPAddress";
+      reference
+        "Device.DHCPv4.Client.{i}.IPAddress";
+    }
+    leaf subnet-mask {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.SubnetMask";
+      reference
+        "Device.DHCPv4.Client.{i}.SubnetMask";
+    }
+    leaf ip-routers {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.IPRouters";
+      reference
+        "Device.DHCPv4.Client.{i}.IPRouters";
+    }
+    leaf dns-servers {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.DNSServers";
+      reference
+        "Device.DHCPv4.Client.{i}.DNSServers";
+    }
+    leaf lease-time-remaining {
+      type int32;
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.LeaseTimeRemaining";
+      reference
+        "Device.DHCPv4.Client.{i}.LeaseTimeRemaining";
+    }
+    leaf dhcp-server {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.DHCPServer";
+      reference
+        "Device.DHCPv4.Client.{i}.DHCPServer";
+    }
+    leaf passthrough-enable {
+      type boolean;
+      description
+        "Device.DHCPv4.Client.{i}.PassthroughEnable";
+      reference
+        "Device.DHCPv4.Client.{i}.PassthroughEnable";
+    }
+    leaf passthrough-dhcp-pool {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DHCPv4.Client.{i}.PassthroughDHCPPool";
+      reference
+        "Device.DHCPv4.Client.{i}.PassthroughDHCPPool";
+    }
+    leaf sent-option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.SentOptionNumberOfEntries";
+      reference
+        "Device.DHCPv4.Client.{i}.SentOptionNumberOfEntries";
+    }
+    leaf req-option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.ReqOptionNumberOfEntries";
+      reference
+        "Device.DHCPv4.Client.{i}.ReqOptionNumberOfEntries";
+    }
+  }
+
+  grouping client-req-option-g {
+    description
+      "Grouping object for Device.DHCPv4.Client.{i}.ReqOption.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv4.Client.{i}.ReqOption.{i}.Enable";
+      reference
+        "Device.DHCPv4.Client.{i}.ReqOption.{i}.Enable";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.DHCPv4.Client.{i}.ReqOption.{i}.Order";
+      reference
+        "Device.DHCPv4.Client.{i}.ReqOption.{i}.Order";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv4.Client.{i}.ReqOption.{i}.Alias";
+      reference
+        "Device.DHCPv4.Client.{i}.ReqOption.{i}.Alias";
+    }
+    leaf tag {
+      type uint32 {
+        range "1..254";
+      }
+      description
+        "Device.DHCPv4.Client.{i}.ReqOption.{i}.Tag";
+      reference
+        "Device.DHCPv4.Client.{i}.ReqOption.{i}.Tag";
+    }
+    leaf value {
+      type string;
+      config false;
+      description
+        "Device.DHCPv4.Client.{i}.ReqOption.{i}.Value";
+      reference
+        "Device.DHCPv4.Client.{i}.ReqOption.{i}.Value";
+    }
+  }
+
+  grouping client-sent-option-g {
+    description
+      "Grouping object for Device.DHCPv4.Client.{i}.SentOption.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv4.Client.{i}.SentOption.{i}.Enable";
+      reference
+        "Device.DHCPv4.Client.{i}.SentOption.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv4.Client.{i}.SentOption.{i}.Alias";
+      reference
+        "Device.DHCPv4.Client.{i}.SentOption.{i}.Alias";
+    }
+    leaf tag {
+      type uint32 {
+        range "1..254";
+      }
+      description
+        "Device.DHCPv4.Client.{i}.SentOption.{i}.Tag";
+      reference
+        "Device.DHCPv4.Client.{i}.SentOption.{i}.Tag";
+    }
+    leaf value {
+      type string {
+        length "0..255";
+      }
+      description
+        "Device.DHCPv4.Client.{i}.SentOption.{i}.Value";
+      reference
+        "Device.DHCPv4.Client.{i}.SentOption.{i}.Value";
+    }
+  }
+
+  grouping dhcpv4-relay-g {
+    description
+      "Grouping object for Device.DHCPv4.Relay.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv4.Relay.Enable";
+      reference
+        "Device.DHCPv4.Relay.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DHCPv4.Relay.Status";
+      reference
+        "Device.DHCPv4.Relay.Status";
+    }
+    leaf forwarding-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv4.Relay.ForwardingNumberOfEntries";
+      reference
+        "Device.DHCPv4.Relay.ForwardingNumberOfEntries";
+    }
+  }
+
+  grouping relay-forwarding-g {
+    description
+      "Grouping object for Device.DHCPv4.Relay.Forwarding.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.Enable";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.Status";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.Alias";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.Alias";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.Order";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.Order";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.Interface";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.Interface";
+    }
+    leaf vendor-class-id {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.VendorClassID";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.VendorClassID";
+    }
+    leaf vendor-class-id-exclude {
+      type boolean;
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.VendorClassIDExclude";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.VendorClassIDExclude";
+    }
+    leaf vendor-class-id-mode {
+      type enumeration {
+        enum Exact {
+          description
+            "Enum Value - Exact";
+        }
+        enum Prefix {
+          description
+            "Enum Value - Prefix";
+        }
+        enum Suffix {
+          description
+            "Enum Value - Suffix";
+        }
+        enum Substring {
+          description
+            "Enum Value - Substring";
+        }
+      }
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.VendorClassIDMode";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.VendorClassIDMode";
+    }
+    leaf client-id {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.ClientID";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.ClientID";
+    }
+    leaf client-id-exclude {
+      type boolean;
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.ClientIDExclude";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.ClientIDExclude";
+    }
+    leaf user-class-id {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.UserClassID";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.UserClassID";
+    }
+    leaf user-class-id-exclude {
+      type boolean;
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.UserClassIDExclude";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.UserClassIDExclude";
+    }
+    leaf chaddr {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.Chaddr";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.Chaddr";
+    }
+    leaf chaddr-mask {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.ChaddrMask";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.ChaddrMask";
+    }
+    leaf chaddr-exclude {
+      type boolean;
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.ChaddrExclude";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.ChaddrExclude";
+    }
+    leaf locally-served {
+      type boolean;
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.LocallyServed";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.LocallyServed";
+    }
+    leaf dhcp-server-ip-address {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.DHCPv4.Relay.Forwarding.{i}.DHCPServerIPAddress";
+      reference
+        "Device.DHCPv4.Relay.Forwarding.{i}.DHCPServerIPAddress";
+    }
+  }
+
+  grouping dhcpv4-server-g {
+    description
+      "Grouping object for Device.DHCPv4.Server.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv4.Server.Enable";
+      reference
+        "Device.DHCPv4.Server.Enable";
+    }
+    leaf pool-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv4.Server.PoolNumberOfEntries";
+      reference
+        "Device.DHCPv4.Server.PoolNumberOfEntries";
+    }
+  }
+
+  grouping server-pool-g {
+    description
+      "Grouping object for Device.DHCPv4.Server.Pool.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Enable";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Status";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Alias";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Alias";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Order";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Order";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Interface";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Interface";
+    }
+    leaf vendor-class-id {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.VendorClassID";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.VendorClassID";
+    }
+    leaf vendor-class-id-exclude {
+      type boolean;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.VendorClassIDExclude";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.VendorClassIDExclude";
+    }
+    leaf vendor-class-id-mode {
+      type enumeration {
+        enum Exact {
+          description
+            "Enum Value - Exact";
+        }
+        enum Prefix {
+          description
+            "Enum Value - Prefix";
+        }
+        enum Suffix {
+          description
+            "Enum Value - Suffix";
+        }
+        enum Substring {
+          description
+            "Enum Value - Substring";
+        }
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.VendorClassIDMode";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.VendorClassIDMode";
+    }
+    leaf client-id {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.ClientID";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.ClientID";
+    }
+    leaf client-id-exclude {
+      type boolean;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.ClientIDExclude";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.ClientIDExclude";
+    }
+    leaf user-class-id {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.UserClassID";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.UserClassID";
+    }
+    leaf user-class-id-exclude {
+      type boolean;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.UserClassIDExclude";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.UserClassIDExclude";
+    }
+    leaf chaddr {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Chaddr";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Chaddr";
+    }
+    leaf chaddr-mask {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.ChaddrMask";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.ChaddrMask";
+    }
+    leaf chaddr-exclude {
+      type boolean;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.ChaddrExclude";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.ChaddrExclude";
+    }
+    leaf min-address {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.MinAddress";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.MinAddress";
+    }
+    leaf max-address {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.MaxAddress";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.MaxAddress";
+    }
+    leaf reserved-addresses {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.ReservedAddresses";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.ReservedAddresses";
+    }
+    leaf subnet-mask {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.SubnetMask";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.SubnetMask";
+    }
+    leaf dns-servers {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.DNSServers";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.DNSServers";
+    }
+    leaf domain-name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.DomainName";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.DomainName";
+    }
+    leaf ip-routers {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.IPRouters";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.IPRouters";
+    }
+    leaf lease-time {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.LeaseTime";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.LeaseTime";
+    }
+    leaf static-address-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.StaticAddressNumberOfEntries";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.StaticAddressNumberOfEntries";
+    }
+    leaf option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.OptionNumberOfEntries";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.OptionNumberOfEntries";
+    }
+    leaf client-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.ClientNumberOfEntries";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.ClientNumberOfEntries";
+    }
+  }
+
+  grouping pool-client-g {
+    description
+      "Grouping object for Device.DHCPv4.Server.Pool.{i}.Client.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Alias";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Alias";
+    }
+    leaf chaddr {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Chaddr";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Chaddr";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Active";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Active";
+    }
+    leaf ipv4-address-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4AddressNumberOfEntries";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4AddressNumberOfEntries";
+    }
+    leaf option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.OptionNumberOfEntries";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.OptionNumberOfEntries";
+    }
+  }
+
+  grouping client-ipv4-address-g {
+    description
+      "Grouping object for Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4Address.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf ip-address {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4Address.{i}.IPAddress";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4Address.{i}.IPAddress";
+    }
+    leaf lease-time-remaining {
+      type string;
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4Address.{i}.LeaseTimeRemaining";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4Address.{i}.LeaseTimeRemaining";
+    }
+  }
+
+  grouping client-option-g {
+    description
+      "Grouping object for Device.DHCPv4.Server.Pool.{i}.Client.{i}.Option.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf tag {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Option.{i}.Tag";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Option.{i}.Tag";
+    }
+    leaf value {
+      type string;
+      config false;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Option.{i}.Value";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Option.{i}.Value";
+    }
+  }
+
+  grouping pool-option-g {
+    description
+      "Grouping object for Device.DHCPv4.Server.Pool.{i}.Option.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Option.{i}.Enable";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Option.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Option.{i}.Alias";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Option.{i}.Alias";
+    }
+    leaf tag {
+      type uint32 {
+        range "1..254";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Option.{i}.Tag";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Option.{i}.Tag";
+    }
+    leaf value {
+      type string {
+        length "0..255";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.Option.{i}.Value";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.Option.{i}.Value";
+    }
+  }
+
+  grouping pool-static-address-g {
+    description
+      "Grouping object for Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.Enable";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.Alias";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.Alias";
+    }
+    leaf chaddr {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.Chaddr";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.Chaddr";
+    }
+    leaf yiaddr {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.Yiaddr";
+      reference
+        "Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.Yiaddr";
+    }
+  }
+
+  grouping device-dhcpv6-g {
+    description
+      "Grouping object for Device.DHCPv6.";
+    leaf client-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.ClientNumberOfEntries";
+      reference
+        "Device.DHCPv6.ClientNumberOfEntries";
+    }
+  }
+
+  grouping dhcpv6-client-g {
+    description
+      "Grouping object for Device.DHCPv6.Client.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv6.Client.{i}.Enable";
+      reference
+        "Device.DHCPv6.Client.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv6.Client.{i}.Alias";
+      reference
+        "Device.DHCPv6.Client.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DHCPv6.Client.{i}.Interface";
+      reference
+        "Device.DHCPv6.Client.{i}.Interface";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.Status";
+      reference
+        "Device.DHCPv6.Client.{i}.Status";
+    }
+    leaf duid {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.DUID";
+      reference
+        "Device.DHCPv6.Client.{i}.DUID";
+    }
+    leaf request-addresses {
+      type boolean;
+      description
+        "Device.DHCPv6.Client.{i}.RequestAddresses";
+      reference
+        "Device.DHCPv6.Client.{i}.RequestAddresses";
+    }
+    leaf request-prefixes {
+      type boolean;
+      description
+        "Device.DHCPv6.Client.{i}.RequestPrefixes";
+      reference
+        "Device.DHCPv6.Client.{i}.RequestPrefixes";
+    }
+    leaf rapid-commit {
+      type boolean;
+      description
+        "Device.DHCPv6.Client.{i}.RapidCommit";
+      reference
+        "Device.DHCPv6.Client.{i}.RapidCommit";
+    }
+    leaf suggested-t1 {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.DHCPv6.Client.{i}.SuggestedT1";
+      reference
+        "Device.DHCPv6.Client.{i}.SuggestedT1";
+    }
+    leaf suggested-t2 {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.DHCPv6.Client.{i}.SuggestedT2";
+      reference
+        "Device.DHCPv6.Client.{i}.SuggestedT2";
+    }
+    leaf supported-options {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.SupportedOptions";
+      reference
+        "Device.DHCPv6.Client.{i}.SupportedOptions";
+    }
+    leaf requested-options {
+      type uint32;
+      description
+        "Device.DHCPv6.Client.{i}.RequestedOptions";
+      reference
+        "Device.DHCPv6.Client.{i}.RequestedOptions";
+    }
+    leaf server-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.ServerNumberOfEntries";
+      reference
+        "Device.DHCPv6.Client.{i}.ServerNumberOfEntries";
+    }
+    leaf sent-option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.SentOptionNumberOfEntries";
+      reference
+        "Device.DHCPv6.Client.{i}.SentOptionNumberOfEntries";
+    }
+    leaf received-option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.ReceivedOptionNumberOfEntries";
+      reference
+        "Device.DHCPv6.Client.{i}.ReceivedOptionNumberOfEntries";
+    }
+  }
+
+  grouping client-received-option-g {
+    description
+      "Grouping object for Device.DHCPv6.Client.{i}.ReceivedOption.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf tag {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.ReceivedOption.{i}.Tag";
+      reference
+        "Device.DHCPv6.Client.{i}.ReceivedOption.{i}.Tag";
+    }
+    leaf value {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.ReceivedOption.{i}.Value";
+      reference
+        "Device.DHCPv6.Client.{i}.ReceivedOption.{i}.Value";
+    }
+    leaf server {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.ReceivedOption.{i}.Server";
+      reference
+        "Device.DHCPv6.Client.{i}.ReceivedOption.{i}.Server";
+    }
+  }
+
+  grouping dhcpv6-client-sent-option-g {
+    description
+      "Grouping object for Device.DHCPv6.Client.{i}.SentOption.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv6.Client.{i}.SentOption.{i}.Enable";
+      reference
+        "Device.DHCPv6.Client.{i}.SentOption.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv6.Client.{i}.SentOption.{i}.Alias";
+      reference
+        "Device.DHCPv6.Client.{i}.SentOption.{i}.Alias";
+    }
+    leaf tag {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.DHCPv6.Client.{i}.SentOption.{i}.Tag";
+      reference
+        "Device.DHCPv6.Client.{i}.SentOption.{i}.Tag";
+    }
+    leaf value {
+      type string {
+        length "0..65535";
+      }
+      description
+        "Device.DHCPv6.Client.{i}.SentOption.{i}.Value";
+      reference
+        "Device.DHCPv6.Client.{i}.SentOption.{i}.Value";
+    }
+  }
+
+  grouping client-server-g {
+    description
+      "Grouping object for Device.DHCPv6.Client.{i}.Server.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf source-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.Server.{i}.SourceAddress";
+      reference
+        "Device.DHCPv6.Client.{i}.Server.{i}.SourceAddress";
+    }
+    leaf duid {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.Server.{i}.DUID";
+      reference
+        "Device.DHCPv6.Client.{i}.Server.{i}.DUID";
+    }
+    leaf information-refresh-time {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Client.{i}.Server.{i}.InformationRefreshTime";
+      reference
+        "Device.DHCPv6.Client.{i}.Server.{i}.InformationRefreshTime";
+    }
+  }
+
+  grouping dhcpv6-server-g {
+    description
+      "Grouping object for Device.DHCPv6.Server.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv6.Server.Enable";
+      reference
+        "Device.DHCPv6.Server.Enable";
+    }
+    leaf pool-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.Server.PoolNumberOfEntries";
+      reference
+        "Device.DHCPv6.Server.PoolNumberOfEntries";
+    }
+  }
+
+  grouping dhcpv6-server-pool-g {
+    description
+      "Grouping object for Device.DHCPv6.Server.Pool.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Enable";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Status";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Alias";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Alias";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Order";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Order";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Interface";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Interface";
+    }
+    leaf duid {
+      type string {
+        length "min..130";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.DUID";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.DUID";
+    }
+    leaf duid-exclude {
+      type boolean;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.DUIDExclude";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.DUIDExclude";
+    }
+    leaf vendor-class-id {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.VendorClassID";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.VendorClassID";
+    }
+    leaf vendor-class-id-exclude {
+      type boolean;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.VendorClassIDExclude";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.VendorClassIDExclude";
+    }
+    leaf user-class-id {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.UserClassID";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.UserClassID";
+    }
+    leaf user-class-id-exclude {
+      type boolean;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.UserClassIDExclude";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.UserClassIDExclude";
+    }
+    leaf source-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.SourceAddress";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.SourceAddress";
+    }
+    leaf source-address-mask {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.SourceAddressMask";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.SourceAddressMask";
+    }
+    leaf source-address-exclude {
+      type boolean;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.SourceAddressExclude";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.SourceAddressExclude";
+    }
+    leaf iana-enable {
+      type boolean;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.IANAEnable";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.IANAEnable";
+    }
+    leaf iana-manual-prefixes {
+      type string;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.IANAManualPrefixes";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.IANAManualPrefixes";
+    }
+    leaf iana-prefixes {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.IANAPrefixes";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.IANAPrefixes";
+    }
+    leaf iapd-enable {
+      type boolean;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.IAPDEnable";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.IAPDEnable";
+    }
+    leaf iapd-manual-prefixes {
+      type string;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.IAPDManualPrefixes";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.IAPDManualPrefixes";
+    }
+    leaf iapd-prefixes {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.IAPDPrefixes";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.IAPDPrefixes";
+    }
+    leaf iapd-add-length {
+      type uint32 {
+        range "min..64";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.IAPDAddLength";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.IAPDAddLength";
+    }
+    leaf client-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.ClientNumberOfEntries";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.ClientNumberOfEntries";
+    }
+    leaf option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.OptionNumberOfEntries";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.OptionNumberOfEntries";
+    }
+  }
+
+  grouping server-pool-client-g {
+    description
+      "Grouping object for Device.DHCPv6.Server.Pool.{i}.Client.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.Alias";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.Alias";
+    }
+    leaf source-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.SourceAddress";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.SourceAddress";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.Active";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.Active";
+    }
+    leaf ipv6-address-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6AddressNumberOfEntries";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6AddressNumberOfEntries";
+    }
+    leaf ipv6-prefix-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6PrefixNumberOfEntries";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6PrefixNumberOfEntries";
+    }
+    leaf option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.OptionNumberOfEntries";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.OptionNumberOfEntries";
+    }
+  }
+
+  grouping client-ipv6-address-g {
+    description
+      "Grouping object for Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf ip-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}.IPAddress";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}.IPAddress";
+    }
+    leaf preferred-lifetime {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}.PreferredLifetime";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}.PreferredLifetime";
+    }
+    leaf valid-lifetime {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}.ValidLifetime";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}.ValidLifetime";
+    }
+  }
+
+  grouping client-ipv6-prefix-g {
+    description
+      "Grouping object for Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf prefix {
+      type string {
+        length "min..49";
+      }
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}.Prefix";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}.Prefix";
+    }
+    leaf preferred-lifetime {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}.PreferredLifetime";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}.PreferredLifetime";
+    }
+    leaf valid-lifetime {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}.ValidLifetime";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}.ValidLifetime";
+    }
+  }
+
+  grouping pool-client-option-g {
+    description
+      "Grouping object for Device.DHCPv6.Server.Pool.{i}.Client.{i}.Option.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf tag {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.Option.{i}.Tag";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.Option.{i}.Tag";
+    }
+    leaf value {
+      type string;
+      config false;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.Option.{i}.Value";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Client.{i}.Option.{i}.Value";
+    }
+  }
+
+  grouping server-pool-option-g {
+    description
+      "Grouping object for Device.DHCPv6.Server.Pool.{i}.Option.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Option.{i}.Enable";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Option.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Option.{i}.Alias";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Option.{i}.Alias";
+    }
+    leaf tag {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Option.{i}.Tag";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Option.{i}.Tag";
+    }
+    leaf value {
+      type string {
+        length "0..65535";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Option.{i}.Value";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Option.{i}.Value";
+    }
+    leaf passthrough-client {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DHCPv6.Server.Pool.{i}.Option.{i}.PassthroughClient";
+      reference
+        "Device.DHCPv6.Server.Pool.{i}.Option.{i}.PassthroughClient";
+    }
+  }
+
+  grouping dlna-capabilities-g {
+    description
+      "Grouping object for Device.DLNA.Capabilities.";
+    leaf hnd-device-class {
+      type string;
+      config false;
+      description
+        "Device.DLNA.Capabilities.HNDDeviceClass";
+      reference
+        "Device.DLNA.Capabilities.HNDDeviceClass";
+    }
+    leaf device-capability {
+      type string;
+      config false;
+      description
+        "Device.DLNA.Capabilities.DeviceCapability";
+      reference
+        "Device.DLNA.Capabilities.DeviceCapability";
+    }
+    leaf hid-device-class {
+      type string;
+      config false;
+      description
+        "Device.DLNA.Capabilities.HIDDeviceClass";
+      reference
+        "Device.DLNA.Capabilities.HIDDeviceClass";
+    }
+    leaf image-class-profile-id {
+      type string;
+      config false;
+      description
+        "Device.DLNA.Capabilities.ImageClassProfileID";
+      reference
+        "Device.DLNA.Capabilities.ImageClassProfileID";
+    }
+    leaf audio-class-profile-id {
+      type string;
+      config false;
+      description
+        "Device.DLNA.Capabilities.AudioClassProfileID";
+      reference
+        "Device.DLNA.Capabilities.AudioClassProfileID";
+    }
+    leaf av-class-profile-id {
+      type string;
+      config false;
+      description
+        "Device.DLNA.Capabilities.AVClassProfileID";
+      reference
+        "Device.DLNA.Capabilities.AVClassProfileID";
+    }
+    leaf media-collection-profile-id {
+      type string;
+      config false;
+      description
+        "Device.DLNA.Capabilities.MediaCollectionProfileID";
+      reference
+        "Device.DLNA.Capabilities.MediaCollectionProfileID";
+    }
+    leaf printer-class-profile-id {
+      type string;
+      config false;
+      description
+        "Device.DLNA.Capabilities.PrinterClassProfileID";
+      reference
+        "Device.DLNA.Capabilities.PrinterClassProfileID";
+    }
+  }
+
+  grouping device-dns-g {
+    description
+      "Grouping object for Device.DNS.";
+    leaf supported-record-types {
+      type string;
+      config false;
+      description
+        "Device.DNS.SupportedRecordTypes";
+      reference
+        "Device.DNS.SupportedRecordTypes";
+    }
+  }
+
+  grouping dns-client-g {
+    description
+      "Grouping object for Device.DNS.Client.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.DNS.Client.Enable";
+      reference
+        "Device.DNS.Client.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DNS.Client.Status";
+      reference
+        "Device.DNS.Client.Status";
+    }
+    leaf server-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.Client.ServerNumberOfEntries";
+      reference
+        "Device.DNS.Client.ServerNumberOfEntries";
+    }
+  }
+
+  grouping dns-client-server-g {
+    description
+      "Grouping object for Device.DNS.Client.Server.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DNS.Client.Server.{i}.Enable";
+      reference
+        "Device.DNS.Client.Server.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DNS.Client.Server.{i}.Status";
+      reference
+        "Device.DNS.Client.Server.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DNS.Client.Server.{i}.Alias";
+      reference
+        "Device.DNS.Client.Server.{i}.Alias";
+    }
+    leaf dns-server {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.DNS.Client.Server.{i}.DNSServer";
+      reference
+        "Device.DNS.Client.Server.{i}.DNSServer";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DNS.Client.Server.{i}.Interface";
+      reference
+        "Device.DNS.Client.Server.{i}.Interface";
+    }
+    leaf type {
+      type string;
+      config false;
+      description
+        "Device.DNS.Client.Server.{i}.Type";
+      reference
+        "Device.DNS.Client.Server.{i}.Type";
+    }
+  }
+
+  grouping diagnostics-ns-lookup-diagnostics-g {
+    description
+      "Grouping object for Device.DNS.Diagnostics.NSLookupDiagnostics.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error_DNSServerNotResolved {
+          description
+            "Enum Value - Error_DNSServerNotResolved";
+        }
+        enum Error_Internal {
+          description
+            "Enum Value - Error_Internal";
+        }
+        enum Error_Other {
+          description
+            "Enum Value - Error_Other";
+        }
+      }
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Interface";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Interface";
+    }
+    leaf host-name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.HostName";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.HostName";
+    }
+    leaf dns-server {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.DNSServer";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.DNSServer";
+    }
+    leaf timeout {
+      type uint32;
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Timeout";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Timeout";
+    }
+    leaf number-of-repetitions {
+      type uint32;
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.NumberOfRepetitions";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.NumberOfRepetitions";
+    }
+    leaf success-count {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.SuccessCount";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.SuccessCount";
+    }
+    leaf result-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.ResultNumberOfEntries";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.ResultNumberOfEntries";
+    }
+  }
+
+  grouping ns-lookup-diagnostics-result-g {
+    description
+      "Grouping object for Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.Status";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.Status";
+    }
+    leaf answer-type {
+      type string;
+      config false;
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.AnswerType";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.AnswerType";
+    }
+    leaf host-name-returned {
+      type string;
+      config false;
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.HostNameReturned";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.HostNameReturned";
+    }
+    leaf ip-addresses {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.IPAddresses";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.IPAddresses";
+    }
+    leaf dns-server-ip {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.DNSServerIP";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.DNSServerIP";
+    }
+    leaf response-time {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.ResponseTime";
+      reference
+        "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.ResponseTime";
+    }
+  }
+
+  grouping dns-relay-g {
+    description
+      "Grouping object for Device.DNS.Relay.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.DNS.Relay.Enable";
+      reference
+        "Device.DNS.Relay.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DNS.Relay.Status";
+      reference
+        "Device.DNS.Relay.Status";
+    }
+    leaf forward-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.Relay.ForwardNumberOfEntries";
+      reference
+        "Device.DNS.Relay.ForwardNumberOfEntries";
+    }
+  }
+
+  grouping dns-relay-forwarding-g {
+    description
+      "Grouping object for Device.DNS.Relay.Forwarding.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DNS.Relay.Forwarding.{i}.Enable";
+      reference
+        "Device.DNS.Relay.Forwarding.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DNS.Relay.Forwarding.{i}.Status";
+      reference
+        "Device.DNS.Relay.Forwarding.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DNS.Relay.Forwarding.{i}.Alias";
+      reference
+        "Device.DNS.Relay.Forwarding.{i}.Alias";
+    }
+    leaf dns-server {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.DNS.Relay.Forwarding.{i}.DNSServer";
+      reference
+        "Device.DNS.Relay.Forwarding.{i}.DNSServer";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DNS.Relay.Forwarding.{i}.Interface";
+      reference
+        "Device.DNS.Relay.Forwarding.{i}.Interface";
+    }
+    leaf type {
+      type string;
+      config false;
+      description
+        "Device.DNS.Relay.Forwarding.{i}.Type";
+      reference
+        "Device.DNS.Relay.Forwarding.{i}.Type";
+    }
+  }
+
+  grouping dns-sd-g {
+    description
+      "Grouping object for Device.DNS.SD.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.DNS.SD.Enable";
+      reference
+        "Device.DNS.SD.Enable";
+    }
+    leaf service-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.SD.ServiceNumberOfEntries";
+      reference
+        "Device.DNS.SD.ServiceNumberOfEntries";
+    }
+    leaf advertised-interfaces {
+      type string;
+      description
+        "Device.DNS.SD.AdvertisedInterfaces";
+      reference
+        "Device.DNS.SD.AdvertisedInterfaces";
+    }
+  }
+
+  grouping sd-service-g {
+    description
+      "Grouping object for Device.DNS.SD.Service.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf instance-name {
+      type string;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.InstanceName";
+      reference
+        "Device.DNS.SD.Service.{i}.InstanceName";
+    }
+    leaf application-protocol {
+      type string;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.ApplicationProtocol";
+      reference
+        "Device.DNS.SD.Service.{i}.ApplicationProtocol";
+    }
+    leaf transport-protocol {
+      type string;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.TransportProtocol";
+      reference
+        "Device.DNS.SD.Service.{i}.TransportProtocol";
+    }
+    leaf domain {
+      type string;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.Domain";
+      reference
+        "Device.DNS.SD.Service.{i}.Domain";
+    }
+    leaf port {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.Port";
+      reference
+        "Device.DNS.SD.Service.{i}.Port";
+    }
+    leaf target {
+      type string;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.Target";
+      reference
+        "Device.DNS.SD.Service.{i}.Target";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.Status";
+      reference
+        "Device.DNS.SD.Service.{i}.Status";
+    }
+    leaf last-update {
+      type string;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.LastUpdate";
+      reference
+        "Device.DNS.SD.Service.{i}.LastUpdate";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.Host";
+      reference
+        "Device.DNS.SD.Service.{i}.Host";
+    }
+    leaf time-to-live {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.TimeToLive";
+      reference
+        "Device.DNS.SD.Service.{i}.TimeToLive";
+    }
+    leaf priority {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.Priority";
+      reference
+        "Device.DNS.SD.Service.{i}.Priority";
+    }
+    leaf weight {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.Weight";
+      reference
+        "Device.DNS.SD.Service.{i}.Weight";
+    }
+    leaf text-record-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.TextRecordNumberOfEntries";
+      reference
+        "Device.DNS.SD.Service.{i}.TextRecordNumberOfEntries";
+    }
+  }
+
+  grouping service-text-record-g {
+    description
+      "Grouping object for Device.DNS.SD.Service.{i}.TextRecord.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf key {
+      type string;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.TextRecord.{i}.Key";
+      reference
+        "Device.DNS.SD.Service.{i}.TextRecord.{i}.Key";
+    }
+    leaf value {
+      type string;
+      config false;
+      description
+        "Device.DNS.SD.Service.{i}.TextRecord.{i}.Value";
+      reference
+        "Device.DNS.SD.Service.{i}.TextRecord.{i}.Value";
+    }
+  }
+
+  grouping device-dsl-g {
+    description
+      "Grouping object for Device.DSL.";
+    leaf line-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.LineNumberOfEntries";
+      reference
+        "Device.DSL.LineNumberOfEntries";
+    }
+    leaf channel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.ChannelNumberOfEntries";
+      reference
+        "Device.DSL.ChannelNumberOfEntries";
+    }
+    leaf bonding-group-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroupNumberOfEntries";
+      reference
+        "Device.DSL.BondingGroupNumberOfEntries";
+    }
+  }
+
+  grouping dsl-bonding-group-g {
+    description
+      "Grouping object for Device.DSL.BondingGroup.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DSL.BondingGroup.{i}.Enable";
+      reference
+        "Device.DSL.BondingGroup.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Status";
+      reference
+        "Device.DSL.BondingGroup.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DSL.BondingGroup.{i}.Alias";
+      reference
+        "Device.DSL.BondingGroup.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Name";
+      reference
+        "Device.DSL.BondingGroup.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.LastChange";
+      reference
+        "Device.DSL.BondingGroup.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.LowerLayers";
+      reference
+        "Device.DSL.BondingGroup.{i}.LowerLayers";
+    }
+    leaf group-status {
+      type string;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.GroupStatus";
+      reference
+        "Device.DSL.BondingGroup.{i}.GroupStatus";
+    }
+    leaf group-id {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.GroupID";
+      reference
+        "Device.DSL.BondingGroup.{i}.GroupID";
+    }
+    leaf bond-schemes-supported {
+      type string;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondSchemesSupported";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondSchemesSupported";
+    }
+    leaf bond-scheme {
+      type string;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondScheme";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondScheme";
+    }
+    leaf group-capacity {
+      type uint32 {
+        range "1..32";
+      }
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.GroupCapacity";
+      reference
+        "Device.DSL.BondingGroup.{i}.GroupCapacity";
+    }
+    leaf running-time {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.RunningTime";
+      reference
+        "Device.DSL.BondingGroup.{i}.RunningTime";
+    }
+    leaf target-up-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.TargetUpRate";
+      reference
+        "Device.DSL.BondingGroup.{i}.TargetUpRate";
+    }
+    leaf target-down-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.TargetDownRate";
+      reference
+        "Device.DSL.BondingGroup.{i}.TargetDownRate";
+    }
+    leaf thresh-low-up-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.ThreshLowUpRate";
+      reference
+        "Device.DSL.BondingGroup.{i}.ThreshLowUpRate";
+    }
+    leaf thresh-low-down-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.ThreshLowDownRate";
+      reference
+        "Device.DSL.BondingGroup.{i}.ThreshLowDownRate";
+    }
+    leaf upstream-differential-delay-tolerance {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.UpstreamDifferentialDelayTolerance";
+      reference
+        "Device.DSL.BondingGroup.{i}.UpstreamDifferentialDelayTolerance";
+    }
+    leaf downstream-differential-delay-tolerance {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.DownstreamDifferentialDelayTolerance";
+      reference
+        "Device.DSL.BondingGroup.{i}.DownstreamDifferentialDelayTolerance";
+    }
+    leaf bonded-channel-number-of-entries {
+      type uint32 {
+        range "1..32";
+      }
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannelNumberOfEntries";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannelNumberOfEntries";
+    }
+  }
+
+  grouping bonding-group-bonded-channel-g {
+    description
+      "Grouping object for Device.DSL.BondingGroup.{i}.BondedChannel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Alias";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Alias";
+    }
+    leaf channel {
+      type string;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Channel";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Channel";
+    }
+  }
+
+  grouping ethernet-stats-g {
+    description
+      "Grouping object for Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.";
+    leaf underflow-errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.UnderflowErrorsSent";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.UnderflowErrorsSent";
+    }
+    leaf crc-errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.CRCErrorsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.CRCErrorsReceived";
+    }
+    leaf alignment-errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.AlignmentErrorsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.AlignmentErrorsReceived";
+    }
+    leaf short-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.ShortPacketsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.ShortPacketsReceived";
+    }
+    leaf long-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.LongPacketsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.LongPacketsReceived";
+    }
+    leaf overflow-errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.OverflowErrorsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.OverflowErrorsReceived";
+    }
+    leaf pause-frames-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.PauseFramesReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.PauseFramesReceived";
+    }
+    leaf frames-dropped {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.FramesDropped";
+      reference
+        "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.FramesDropped";
+    }
+  }
+
+  grouping bonding-group-ethernet-stats-g {
+    description
+      "Grouping object for Device.DSL.BondingGroup.{i}.Ethernet.Stats.";
+    leaf paf-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFErrors";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFErrors";
+    }
+    leaf paf-small-fragments {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFSmallFragments";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFSmallFragments";
+    }
+    leaf paf-large-fragments {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFLargeFragments";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFLargeFragments";
+    }
+    leaf paf-bad-fragments {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFBadFragments";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFBadFragments";
+    }
+    leaf paf-lost-fragments {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFLostFragments";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFLostFragments";
+    }
+    leaf paf-late-fragments {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFLateFragments";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFLateFragments";
+    }
+    leaf paf-lost-starts {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFLostStarts";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFLostStarts";
+    }
+    leaf paf-lost-ends {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFLostEnds";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFLostEnds";
+    }
+    leaf paf-overflows {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFOverflows";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PAFOverflows";
+    }
+    leaf pause-frames-sent {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PauseFramesSent";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.PauseFramesSent";
+    }
+    leaf crc-errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.CRCErrorsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.CRCErrorsReceived";
+    }
+    leaf alignment-errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.AlignmentErrorsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.AlignmentErrorsReceived";
+    }
+    leaf short-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.ShortPacketsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.ShortPacketsReceived";
+    }
+    leaf long-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.LongPacketsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.LongPacketsReceived";
+    }
+    leaf overflow-errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.OverflowErrorsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.OverflowErrorsReceived";
+    }
+    leaf frames-dropped {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.FramesDropped";
+      reference
+        "Device.DSL.BondingGroup.{i}.Ethernet.Stats.FramesDropped";
+    }
+  }
+
+  grouping bonding-group-stats-g {
+    description
+      "Grouping object for Device.DSL.BondingGroup.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.BytesSent";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.BytesReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.PacketsSent";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.PacketsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.ErrorsSent";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+    leaf total-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.TotalStart";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.TotalStart";
+    }
+    leaf current-day-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDayStart";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDayStart";
+    }
+    leaf quarter-hour-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHourStart";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHourStart";
+    }
+  }
+
+  grouping stats-current-day-g {
+    description
+      "Grouping object for Device.DSL.BondingGroup.{i}.Stats.CurrentDay.";
+    leaf failure-reasons {
+      type string;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.FailureReasons";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.FailureReasons";
+    }
+    leaf upstream-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.UpstreamRate";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.UpstreamRate";
+    }
+    leaf downstream-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.DownstreamRate";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.DownstreamRate";
+    }
+    leaf upstream-packet-loss {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.UpstreamPacketLoss";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.UpstreamPacketLoss";
+    }
+    leaf downstream-packet-loss {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.DownstreamPacketLoss";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.DownstreamPacketLoss";
+    }
+    leaf upstream-differential-delay {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.UpstreamDifferentialDelay";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.UpstreamDifferentialDelay";
+    }
+    leaf downstream-differential-delay {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.DownstreamDifferentialDelay";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.DownstreamDifferentialDelay";
+    }
+    leaf failure-count {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.FailureCount";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.FailureCount";
+    }
+    leaf errored-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.ErroredSeconds";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.ErroredSeconds";
+    }
+    leaf severely-errored-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.SeverelyErroredSeconds";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.SeverelyErroredSeconds";
+    }
+    leaf unavailable-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.UnavailableSeconds";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.UnavailableSeconds";
+    }
+  }
+
+  grouping stats-quarter-hour-g {
+    description
+      "Grouping object for Device.DSL.BondingGroup.{i}.Stats.QuarterHour.";
+    leaf failure-reasons {
+      type string;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.FailureReasons";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.FailureReasons";
+    }
+    leaf upstream-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.UpstreamRate";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.UpstreamRate";
+    }
+    leaf downstream-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.DownstreamRate";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.DownstreamRate";
+    }
+    leaf upstream-packet-loss {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.UpstreamPacketLoss";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.UpstreamPacketLoss";
+    }
+    leaf downstream-packet-loss {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.DownstreamPacketLoss";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.DownstreamPacketLoss";
+    }
+    leaf upstream-differential-delay {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.UpstreamDifferentialDelay";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.UpstreamDifferentialDelay";
+    }
+    leaf downstream-differential-delay {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.DownstreamDifferentialDelay";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.DownstreamDifferentialDelay";
+    }
+    leaf failure-count {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.FailureCount";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.FailureCount";
+    }
+    leaf errored-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.ErroredSeconds";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.ErroredSeconds";
+    }
+    leaf severely-errored-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.SeverelyErroredSeconds";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.SeverelyErroredSeconds";
+    }
+    leaf unavailable-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.UnavailableSeconds";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.UnavailableSeconds";
+    }
+  }
+
+  grouping stats-total-g {
+    description
+      "Grouping object for Device.DSL.BondingGroup.{i}.Stats.Total.";
+    leaf failure-reasons {
+      type string;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.FailureReasons";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.FailureReasons";
+    }
+    leaf upstream-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.UpstreamRate";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.UpstreamRate";
+    }
+    leaf downstream-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.DownstreamRate";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.DownstreamRate";
+    }
+    leaf upstream-packet-loss {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.UpstreamPacketLoss";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.UpstreamPacketLoss";
+    }
+    leaf downstream-packet-loss {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.DownstreamPacketLoss";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.DownstreamPacketLoss";
+    }
+    leaf upstream-differential-delay {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.UpstreamDifferentialDelay";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.UpstreamDifferentialDelay";
+    }
+    leaf downstream-differential-delay {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.DownstreamDifferentialDelay";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.DownstreamDifferentialDelay";
+    }
+    leaf failure-count {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.FailureCount";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.FailureCount";
+    }
+    leaf errored-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.ErroredSeconds";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.ErroredSeconds";
+    }
+    leaf severely-errored-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.SeverelyErroredSeconds";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.SeverelyErroredSeconds";
+    }
+    leaf unavailable-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.BondingGroup.{i}.Stats.Total.UnavailableSeconds";
+      reference
+        "Device.DSL.BondingGroup.{i}.Stats.Total.UnavailableSeconds";
+    }
+  }
+
+  grouping dsl-channel-g {
+    description
+      "Grouping object for Device.DSL.Channel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DSL.Channel.{i}.Enable";
+      reference
+        "Device.DSL.Channel.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Status";
+      reference
+        "Device.DSL.Channel.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DSL.Channel.{i}.Alias";
+      reference
+        "Device.DSL.Channel.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Name";
+      reference
+        "Device.DSL.Channel.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.LastChange";
+      reference
+        "Device.DSL.Channel.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.LowerLayers";
+      reference
+        "Device.DSL.Channel.{i}.LowerLayers";
+    }
+    leaf link-encapsulation-supported {
+      type string;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.LinkEncapsulationSupported";
+      reference
+        "Device.DSL.Channel.{i}.LinkEncapsulationSupported";
+    }
+    leaf link-encapsulation-used {
+      type string;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.LinkEncapsulationUsed";
+      reference
+        "Device.DSL.Channel.{i}.LinkEncapsulationUsed";
+    }
+    leaf lpath {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.LPATH";
+      reference
+        "Device.DSL.Channel.{i}.LPATH";
+    }
+    leaf intlvdepth {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.INTLVDEPTH";
+      reference
+        "Device.DSL.Channel.{i}.INTLVDEPTH";
+    }
+    leaf intlvblock {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.INTLVBLOCK";
+      reference
+        "Device.DSL.Channel.{i}.INTLVBLOCK";
+    }
+    leaf actual-interleaving-delay {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.ActualInterleavingDelay";
+      reference
+        "Device.DSL.Channel.{i}.ActualInterleavingDelay";
+    }
+    leaf actinp {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.ACTINP";
+      reference
+        "Device.DSL.Channel.{i}.ACTINP";
+    }
+    leaf inpreport {
+      type boolean;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.INPREPORT";
+      reference
+        "Device.DSL.Channel.{i}.INPREPORT";
+    }
+    leaf nfec {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.NFEC";
+      reference
+        "Device.DSL.Channel.{i}.NFEC";
+    }
+    leaf rfec {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.RFEC";
+      reference
+        "Device.DSL.Channel.{i}.RFEC";
+    }
+    leaf lsymb {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.LSYMB";
+      reference
+        "Device.DSL.Channel.{i}.LSYMB";
+    }
+    leaf upstream-curr-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.UpstreamCurrRate";
+      reference
+        "Device.DSL.Channel.{i}.UpstreamCurrRate";
+    }
+    leaf downstream-curr-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.DownstreamCurrRate";
+      reference
+        "Device.DSL.Channel.{i}.DownstreamCurrRate";
+    }
+    leaf actndr {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.ACTNDR";
+      reference
+        "Device.DSL.Channel.{i}.ACTNDR";
+    }
+    leaf actinprein {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.DSL.Channel.{i}.ACTINPREIN";
+      reference
+        "Device.DSL.Channel.{i}.ACTINPREIN";
+    }
+  }
+
+  grouping channel-stats-g {
+    description
+      "Grouping object for Device.DSL.Channel.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.BytesSent";
+      reference
+        "Device.DSL.Channel.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.BytesReceived";
+      reference
+        "Device.DSL.Channel.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.PacketsSent";
+      reference
+        "Device.DSL.Channel.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.PacketsReceived";
+      reference
+        "Device.DSL.Channel.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.ErrorsSent";
+      reference
+        "Device.DSL.Channel.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.DSL.Channel.{i}.Stats.ErrorsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.DSL.Channel.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.DSL.Channel.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf total-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.TotalStart";
+      reference
+        "Device.DSL.Channel.{i}.Stats.TotalStart";
+    }
+    leaf showtime-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.ShowtimeStart";
+      reference
+        "Device.DSL.Channel.{i}.Stats.ShowtimeStart";
+    }
+    leaf last-showtime-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.LastShowtimeStart";
+      reference
+        "Device.DSL.Channel.{i}.Stats.LastShowtimeStart";
+    }
+    leaf current-day-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.CurrentDayStart";
+      reference
+        "Device.DSL.Channel.{i}.Stats.CurrentDayStart";
+    }
+    leaf quarter-hour-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.QuarterHourStart";
+      reference
+        "Device.DSL.Channel.{i}.Stats.QuarterHourStart";
+    }
+  }
+
+  grouping channel-stats-current-day-g {
+    description
+      "Grouping object for Device.DSL.Channel.{i}.Stats.CurrentDay.";
+    leaf xturfec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTURFECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTURFECErrors";
+    }
+    leaf xtucfec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTUCFECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTUCFECErrors";
+    }
+    leaf xturhec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTURHECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTURHECErrors";
+    }
+    leaf xtuchec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTUCHECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTUCHECErrors";
+    }
+    leaf xturcrc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTURCRCErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTURCRCErrors";
+    }
+    leaf xtuccrc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTUCCRCErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.CurrentDay.XTUCCRCErrors";
+    }
+  }
+
+  grouping stats-last-showtime-g {
+    description
+      "Grouping object for Device.DSL.Channel.{i}.Stats.LastShowtime.";
+    leaf xturfec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTURFECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTURFECErrors";
+    }
+    leaf xtucfec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTUCFECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTUCFECErrors";
+    }
+    leaf xturhec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTURHECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTURHECErrors";
+    }
+    leaf xtuchec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTUCHECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTUCHECErrors";
+    }
+    leaf xturcrc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTURCRCErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTURCRCErrors";
+    }
+    leaf xtuccrc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTUCCRCErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.LastShowtime.XTUCCRCErrors";
+    }
+  }
+
+  grouping channel-stats-quarter-hour-g {
+    description
+      "Grouping object for Device.DSL.Channel.{i}.Stats.QuarterHour.";
+    leaf xturfec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTURFECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTURFECErrors";
+    }
+    leaf xtucfec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTUCFECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTUCFECErrors";
+    }
+    leaf xturhec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTURHECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTURHECErrors";
+    }
+    leaf xtuchec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTUCHECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTUCHECErrors";
+    }
+    leaf xturcrc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTURCRCErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTURCRCErrors";
+    }
+    leaf xtuccrc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTUCCRCErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.QuarterHour.XTUCCRCErrors";
+    }
+  }
+
+  grouping stats-showtime-g {
+    description
+      "Grouping object for Device.DSL.Channel.{i}.Stats.Showtime.";
+    leaf xturfec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTURFECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTURFECErrors";
+    }
+    leaf xtucfec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTUCFECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTUCFECErrors";
+    }
+    leaf xturhec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTURHECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTURHECErrors";
+    }
+    leaf xtuchec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTUCHECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTUCHECErrors";
+    }
+    leaf xturcrc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTURCRCErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTURCRCErrors";
+    }
+    leaf xtuccrc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTUCCRCErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Showtime.XTUCCRCErrors";
+    }
+  }
+
+  grouping channel-stats-total-g {
+    description
+      "Grouping object for Device.DSL.Channel.{i}.Stats.Total.";
+    leaf xturfec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Total.XTURFECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Total.XTURFECErrors";
+    }
+    leaf xtucfec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Total.XTUCFECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Total.XTUCFECErrors";
+    }
+    leaf xturhec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Total.XTURHECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Total.XTURHECErrors";
+    }
+    leaf xtuchec-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Total.XTUCHECErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Total.XTUCHECErrors";
+    }
+    leaf xturcrc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Total.XTURCRCErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Total.XTURCRCErrors";
+    }
+    leaf xtuccrc-errors {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Channel.{i}.Stats.Total.XTUCCRCErrors";
+      reference
+        "Device.DSL.Channel.{i}.Stats.Total.XTUCCRCErrors";
+    }
+  }
+
+  grouping diagnostics-adsl-line-test-g {
+    description
+      "Grouping object for Device.DSL.Diagnostics.ADSLLineTest.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Canceled {
+          description
+            "Enum Value - Canceled";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error {
+          description
+            "Enum Value - Error";
+        }
+        enum Error_Internal {
+          description
+            "Enum Value - Error_Internal";
+        }
+        enum Error_Other {
+          description
+            "Enum Value - Error_Other";
+        }
+      }
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.DiagnosticsState";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.Interface";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.Interface";
+    }
+    leaf actps-dds {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.ACTPSDds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.ACTPSDds";
+    }
+    leaf actps-dus {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.ACTPSDus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.ACTPSDus";
+    }
+    leaf actat-pds {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.ACTATPds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.ACTATPds";
+    }
+    leaf actat-pus {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.ACTATPus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.ACTATPus";
+    }
+    leaf hlins-cds {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINSCds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINSCds";
+    }
+    leaf hlins-cus {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINSCus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINSCus";
+    }
+    leaf hlin-gds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINGds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINGds";
+    }
+    leaf hlin-gus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINGus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINGus";
+    }
+    leaf hlog-gds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGGds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGGds";
+    }
+    leaf hlog-gus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGGus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGGus";
+    }
+    leaf hlo-gpsds {
+      type string;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGpsds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGpsds";
+    }
+    leaf hlo-gpsus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGpsus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGpsus";
+    }
+    leaf hlogm-tds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGMTds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGMTds";
+    }
+    leaf hlogm-tus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGMTus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLOGMTus";
+    }
+    leaf lat-npbds {
+      type string;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.LATNpbds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.LATNpbds";
+    }
+    leaf lat-npbus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.LATNpbus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.LATNpbus";
+    }
+    leaf sat-nds {
+      type string;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.SATNds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.SATNds";
+    }
+    leaf sat-nus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.SATNus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.SATNus";
+    }
+    leaf hli-npsds {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINpsds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINpsds";
+    }
+    leaf hli-npsus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINpsus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.HLINpsus";
+    }
+    leaf qln-gds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNGds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNGds";
+    }
+    leaf qln-gus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNGus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNGus";
+    }
+    leaf ql-npsds {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNpsds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNpsds";
+    }
+    leaf ql-npsus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNpsus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNpsus";
+    }
+    leaf qlnm-tds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNMTds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNMTds";
+    }
+    leaf qlnm-tus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNMTus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.QLNMTus";
+    }
+    leaf snr-gds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRGds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRGds";
+    }
+    leaf snr-gus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRGus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRGus";
+    }
+    leaf sn-rpsds {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRpsds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRpsds";
+    }
+    leaf sn-rpsus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRpsus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRpsus";
+    }
+    leaf snrm-tds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRMTds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRMTds";
+    }
+    leaf snrm-tus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRMTus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.SNRMTus";
+    }
+    leaf bit-spsds {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.BITSpsds";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.BITSpsds";
+    }
+    leaf bit-spsus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Diagnostics.ADSLLineTest.BITSpsus";
+      reference
+        "Device.DSL.Diagnostics.ADSLLineTest.BITSpsus";
+    }
+  }
+
+  grouping dsl-line-g {
+    description
+      "Grouping object for Device.DSL.Line.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DSL.Line.{i}.Enable";
+      reference
+        "Device.DSL.Line.{i}.Enable";
+    }
+    leaf enable-data-gathering {
+      type boolean;
+      description
+        "Device.DSL.Line.{i}.EnableDataGathering";
+      reference
+        "Device.DSL.Line.{i}.EnableDataGathering";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Status";
+      reference
+        "Device.DSL.Line.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DSL.Line.{i}.Alias";
+      reference
+        "Device.DSL.Line.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Name";
+      reference
+        "Device.DSL.Line.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.LastChange";
+      reference
+        "Device.DSL.Line.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.DSL.Line.{i}.LowerLayers";
+      reference
+        "Device.DSL.Line.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Upstream";
+      reference
+        "Device.DSL.Line.{i}.Upstream";
+    }
+    leaf firmware-version {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.FirmwareVersion";
+      reference
+        "Device.DSL.Line.{i}.FirmwareVersion";
+    }
+    leaf link-status {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.LinkStatus";
+      reference
+        "Device.DSL.Line.{i}.LinkStatus";
+    }
+    leaf standards-supported {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.StandardsSupported";
+      reference
+        "Device.DSL.Line.{i}.StandardsSupported";
+    }
+    leaf xtse {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.XTSE";
+      reference
+        "Device.DSL.Line.{i}.XTSE";
+    }
+    leaf standard-used {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.StandardUsed";
+      reference
+        "Device.DSL.Line.{i}.StandardUsed";
+    }
+    leaf xts-used {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.XTSUsed";
+      reference
+        "Device.DSL.Line.{i}.XTSUsed";
+    }
+    leaf line-encoding {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.LineEncoding";
+      reference
+        "Device.DSL.Line.{i}.LineEncoding";
+    }
+    leaf allowed-profiles {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.AllowedProfiles";
+      reference
+        "Device.DSL.Line.{i}.AllowedProfiles";
+    }
+    leaf current-profile {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.CurrentProfile";
+      reference
+        "Device.DSL.Line.{i}.CurrentProfile";
+    }
+    leaf power-management-state {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.PowerManagementState";
+      reference
+        "Device.DSL.Line.{i}.PowerManagementState";
+    }
+    leaf success-failure-cause {
+      type uint32 {
+        range "0..6";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.SuccessFailureCause";
+      reference
+        "Device.DSL.Line.{i}.SuccessFailureCause";
+    }
+    leaf upbokler {
+      type uint32 {
+        range "0..1280";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.UPBOKLER";
+      reference
+        "Device.DSL.Line.{i}.UPBOKLER";
+    }
+    leaf upbokle-pb {
+      type uint32 {
+        range "0..1280 | 2047";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.UPBOKLEPb";
+      reference
+        "Device.DSL.Line.{i}.UPBOKLEPb";
+    }
+    leaf upbokler-pb {
+      type uint32 {
+        range "0..1280 | 2047";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.UPBOKLERPb";
+      reference
+        "Device.DSL.Line.{i}.UPBOKLERPb";
+    }
+    leaf rxthrs-hds {
+      type int32 {
+        range "-640..0";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.RXTHRSHds";
+      reference
+        "Device.DSL.Line.{i}.RXTHRSHds";
+    }
+    leaf actramod-eds {
+      type uint32 {
+        range "1..4";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.ACTRAMODEds";
+      reference
+        "Device.DSL.Line.{i}.ACTRAMODEds";
+    }
+    leaf actramod-eus {
+      type uint32 {
+        range "1..4";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.ACTRAMODEus";
+      reference
+        "Device.DSL.Line.{i}.ACTRAMODEus";
+    }
+    leaf actinpro-cds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.ACTINPROCds";
+      reference
+        "Device.DSL.Line.{i}.ACTINPROCds";
+    }
+    leaf actinpro-cus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.ACTINPROCus";
+      reference
+        "Device.DSL.Line.{i}.ACTINPROCus";
+    }
+    leaf snrmro-cds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.SNRMROCds";
+      reference
+        "Device.DSL.Line.{i}.SNRMROCds";
+    }
+    leaf snrmro-cus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.SNRMROCus";
+      reference
+        "Device.DSL.Line.{i}.SNRMROCus";
+    }
+    leaf last-state-transmitted-downstream {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.LastStateTransmittedDownstream";
+      reference
+        "Device.DSL.Line.{i}.LastStateTransmittedDownstream";
+    }
+    leaf last-state-transmitted-upstream {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.LastStateTransmittedUpstream";
+      reference
+        "Device.DSL.Line.{i}.LastStateTransmittedUpstream";
+    }
+    leaf upbokle {
+      type uint32 {
+        range "0..1280";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.UPBOKLE";
+      reference
+        "Device.DSL.Line.{i}.UPBOKLE";
+    }
+    leaf mrefps-dds {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.MREFPSDds";
+      reference
+        "Device.DSL.Line.{i}.MREFPSDds";
+    }
+    leaf mrefps-dus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.MREFPSDus";
+      reference
+        "Device.DSL.Line.{i}.MREFPSDus";
+    }
+    leaf limitmask {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.LIMITMASK";
+      reference
+        "Device.DSL.Line.{i}.LIMITMASK";
+    }
+    leaf u-s0-mask {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.US0MASK";
+      reference
+        "Device.DSL.Line.{i}.US0MASK";
+    }
+    leaf trelli-sds {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TRELLISds";
+      reference
+        "Device.DSL.Line.{i}.TRELLISds";
+    }
+    leaf trelli-sus {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TRELLISus";
+      reference
+        "Device.DSL.Line.{i}.TRELLISus";
+    }
+    leaf actsnrmod-eds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.ACTSNRMODEds";
+      reference
+        "Device.DSL.Line.{i}.ACTSNRMODEds";
+    }
+    leaf actsnrmod-eus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.ACTSNRMODEus";
+      reference
+        "Device.DSL.Line.{i}.ACTSNRMODEus";
+    }
+    leaf virtual-noise-ps-dds {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.VirtualNoisePSDds";
+      reference
+        "Device.DSL.Line.{i}.VirtualNoisePSDds";
+    }
+    leaf virtual-noise-ps-dus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.VirtualNoisePSDus";
+      reference
+        "Device.DSL.Line.{i}.VirtualNoisePSDus";
+    }
+    leaf actualce {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.ACTUALCE";
+      reference
+        "Device.DSL.Line.{i}.ACTUALCE";
+    }
+    leaf line-number {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.LineNumber";
+      reference
+        "Device.DSL.Line.{i}.LineNumber";
+    }
+    leaf upstream-max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.UpstreamMaxBitRate";
+      reference
+        "Device.DSL.Line.{i}.UpstreamMaxBitRate";
+    }
+    leaf downstream-max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.DownstreamMaxBitRate";
+      reference
+        "Device.DSL.Line.{i}.DownstreamMaxBitRate";
+    }
+    leaf upstream-noise-margin {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.UpstreamNoiseMargin";
+      reference
+        "Device.DSL.Line.{i}.UpstreamNoiseMargin";
+    }
+    leaf downstream-noise-margin {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.DownstreamNoiseMargin";
+      reference
+        "Device.DSL.Line.{i}.DownstreamNoiseMargin";
+    }
+    leaf snr-mpbus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.SNRMpbus";
+      reference
+        "Device.DSL.Line.{i}.SNRMpbus";
+    }
+    leaf snr-mpbds {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.SNRMpbds";
+      reference
+        "Device.DSL.Line.{i}.SNRMpbds";
+    }
+    leaf inmiat-ods {
+      type uint32 {
+        range "3..511";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.INMIATOds";
+      reference
+        "Device.DSL.Line.{i}.INMIATOds";
+    }
+    leaf inmiat-sds {
+      type uint32 {
+        range "0..7";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.INMIATSds";
+      reference
+        "Device.DSL.Line.{i}.INMIATSds";
+    }
+    leaf inmc-cds {
+      type uint32 {
+        range "0..64";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.INMCCds";
+      reference
+        "Device.DSL.Line.{i}.INMCCds";
+    }
+    leaf inminpeqmod-eds {
+      type uint32 {
+        range "0..3";
+      }
+      config false;
+      description
+        "Device.DSL.Line.{i}.INMINPEQMODEds";
+      reference
+        "Device.DSL.Line.{i}.INMINPEQMODEds";
+    }
+    leaf upstream-attenuation {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.UpstreamAttenuation";
+      reference
+        "Device.DSL.Line.{i}.UpstreamAttenuation";
+    }
+    leaf downstream-attenuation {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.DownstreamAttenuation";
+      reference
+        "Device.DSL.Line.{i}.DownstreamAttenuation";
+    }
+    leaf upstream-power {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.UpstreamPower";
+      reference
+        "Device.DSL.Line.{i}.UpstreamPower";
+    }
+    leaf downstream-power {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.DownstreamPower";
+      reference
+        "Device.DSL.Line.{i}.DownstreamPower";
+    }
+    leaf xtur-vendor {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.XTURVendor";
+      reference
+        "Device.DSL.Line.{i}.XTURVendor";
+    }
+    leaf xtur-country {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.XTURCountry";
+      reference
+        "Device.DSL.Line.{i}.XTURCountry";
+    }
+    leaf xturansi-std {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.XTURANSIStd";
+      reference
+        "Device.DSL.Line.{i}.XTURANSIStd";
+    }
+    leaf xturansi-rev {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.XTURANSIRev";
+      reference
+        "Device.DSL.Line.{i}.XTURANSIRev";
+    }
+    leaf xtuc-vendor {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.XTUCVendor";
+      reference
+        "Device.DSL.Line.{i}.XTUCVendor";
+    }
+    leaf xtuc-country {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.XTUCCountry";
+      reference
+        "Device.DSL.Line.{i}.XTUCCountry";
+    }
+    leaf xtucansi-std {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.XTUCANSIStd";
+      reference
+        "Device.DSL.Line.{i}.XTUCANSIStd";
+    }
+    leaf xtucansi-rev {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.XTUCANSIRev";
+      reference
+        "Device.DSL.Line.{i}.XTUCANSIRev";
+    }
+  }
+
+  grouping line-data-gathering-g {
+    description
+      "Grouping object for Device.DSL.Line.{i}.DataGathering.";
+    leaf logging-depth-r {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.DataGathering.LoggingDepthR";
+      reference
+        "Device.DSL.Line.{i}.DataGathering.LoggingDepthR";
+    }
+    leaf act-logging-depth-reporting-r {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.DataGathering.ActLoggingDepthReportingR";
+      reference
+        "Device.DSL.Line.{i}.DataGathering.ActLoggingDepthReportingR";
+    }
+    leaf event-trace-buffer-r {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.DataGathering.EventTraceBufferR";
+      reference
+        "Device.DSL.Line.{i}.DataGathering.EventTraceBufferR";
+    }
+  }
+
+  grouping line-stats-g {
+    description
+      "Grouping object for Device.DSL.Line.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.BytesSent";
+      reference
+        "Device.DSL.Line.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.BytesReceived";
+      reference
+        "Device.DSL.Line.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.PacketsSent";
+      reference
+        "Device.DSL.Line.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.PacketsReceived";
+      reference
+        "Device.DSL.Line.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.ErrorsSent";
+      reference
+        "Device.DSL.Line.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.DSL.Line.{i}.Stats.ErrorsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.DSL.Line.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.DSL.Line.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf total-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.TotalStart";
+      reference
+        "Device.DSL.Line.{i}.Stats.TotalStart";
+    }
+    leaf showtime-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.ShowtimeStart";
+      reference
+        "Device.DSL.Line.{i}.Stats.ShowtimeStart";
+    }
+    leaf last-showtime-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.LastShowtimeStart";
+      reference
+        "Device.DSL.Line.{i}.Stats.LastShowtimeStart";
+    }
+    leaf current-day-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.CurrentDayStart";
+      reference
+        "Device.DSL.Line.{i}.Stats.CurrentDayStart";
+    }
+    leaf quarter-hour-start {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.QuarterHourStart";
+      reference
+        "Device.DSL.Line.{i}.Stats.QuarterHourStart";
+    }
+  }
+
+  grouping line-stats-current-day-g {
+    description
+      "Grouping object for Device.DSL.Line.{i}.Stats.CurrentDay.";
+    leaf errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.CurrentDay.ErroredSecs";
+      reference
+        "Device.DSL.Line.{i}.Stats.CurrentDay.ErroredSecs";
+    }
+    leaf severely-errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.CurrentDay.SeverelyErroredSecs";
+      reference
+        "Device.DSL.Line.{i}.Stats.CurrentDay.SeverelyErroredSecs";
+    }
+  }
+
+  grouping line-stats-last-showtime-g {
+    description
+      "Grouping object for Device.DSL.Line.{i}.Stats.LastShowtime.";
+    leaf errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.LastShowtime.ErroredSecs";
+      reference
+        "Device.DSL.Line.{i}.Stats.LastShowtime.ErroredSecs";
+    }
+    leaf severely-errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.LastShowtime.SeverelyErroredSecs";
+      reference
+        "Device.DSL.Line.{i}.Stats.LastShowtime.SeverelyErroredSecs";
+    }
+  }
+
+  grouping line-stats-quarter-hour-g {
+    description
+      "Grouping object for Device.DSL.Line.{i}.Stats.QuarterHour.";
+    leaf errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.QuarterHour.ErroredSecs";
+      reference
+        "Device.DSL.Line.{i}.Stats.QuarterHour.ErroredSecs";
+    }
+    leaf severely-errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.QuarterHour.SeverelyErroredSecs";
+      reference
+        "Device.DSL.Line.{i}.Stats.QuarterHour.SeverelyErroredSecs";
+    }
+  }
+
+  grouping line-stats-showtime-g {
+    description
+      "Grouping object for Device.DSL.Line.{i}.Stats.Showtime.";
+    leaf errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.Showtime.ErroredSecs";
+      reference
+        "Device.DSL.Line.{i}.Stats.Showtime.ErroredSecs";
+    }
+    leaf severely-errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.Showtime.SeverelyErroredSecs";
+      reference
+        "Device.DSL.Line.{i}.Stats.Showtime.SeverelyErroredSecs";
+    }
+  }
+
+  grouping line-stats-total-g {
+    description
+      "Grouping object for Device.DSL.Line.{i}.Stats.Total.";
+    leaf errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.Total.ErroredSecs";
+      reference
+        "Device.DSL.Line.{i}.Stats.Total.ErroredSecs";
+    }
+    leaf severely-errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.Stats.Total.SeverelyErroredSecs";
+      reference
+        "Device.DSL.Line.{i}.Stats.Total.SeverelyErroredSecs";
+    }
+  }
+
+  grouping line-test-params-g {
+    description
+      "Grouping object for Device.DSL.Line.{i}.TestParams.";
+    leaf hlog-gds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.HLOGGds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.HLOGGds";
+    }
+    leaf hlog-gus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.HLOGGus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.HLOGGus";
+    }
+    leaf hlo-gpsds {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.HLOGpsds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.HLOGpsds";
+    }
+    leaf hlo-gpsus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.HLOGpsus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.HLOGpsus";
+    }
+    leaf hlogm-tds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.HLOGMTds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.HLOGMTds";
+    }
+    leaf hlogm-tus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.HLOGMTus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.HLOGMTus";
+    }
+    leaf qln-gds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.QLNGds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.QLNGds";
+    }
+    leaf qln-gus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.QLNGus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.QLNGus";
+    }
+    leaf ql-npsds {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.QLNpsds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.QLNpsds";
+    }
+    leaf ql-npsus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.QLNpsus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.QLNpsus";
+    }
+    leaf qlnm-tds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.QLNMTds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.QLNMTds";
+    }
+    leaf qlnm-tus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.QLNMTus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.QLNMTus";
+    }
+    leaf snr-gds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.SNRGds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.SNRGds";
+    }
+    leaf snr-gus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.SNRGus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.SNRGus";
+    }
+    leaf sn-rpsds {
+      type int32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.SNRpsds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.SNRpsds";
+    }
+    leaf sn-rpsus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.SNRpsus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.SNRpsus";
+    }
+    leaf snrm-tds {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.SNRMTds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.SNRMTds";
+    }
+    leaf snrm-tus {
+      type uint32;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.SNRMTus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.SNRMTus";
+    }
+    leaf lat-nds {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.LATNds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.LATNds";
+    }
+    leaf lat-nus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.LATNus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.LATNus";
+    }
+    leaf sat-nds {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.SATNds";
+      reference
+        "Device.DSL.Line.{i}.TestParams.SATNds";
+    }
+    leaf sat-nus {
+      type string;
+      config false;
+      description
+        "Device.DSL.Line.{i}.TestParams.SATNus";
+      reference
+        "Device.DSL.Line.{i}.TestParams.SATNus";
+    }
+  }
+
+  grouping device-ds-lite-g {
+    description
+      "Grouping object for Device.DSLite.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.DSLite.Enable";
+      reference
+        "Device.DSLite.Enable";
+    }
+    leaf interface-setting-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DSLite.InterfaceSettingNumberOfEntries";
+      reference
+        "Device.DSLite.InterfaceSettingNumberOfEntries";
+    }
+  }
+
+  grouping ds-lite-interface-setting-g {
+    description
+      "Grouping object for Device.DSLite.InterfaceSetting.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DSLite.InterfaceSetting.{i}.Enable";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DSLite.InterfaceSetting.{i}.Status";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DSLite.InterfaceSetting.{i}.Alias";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.Alias";
+    }
+    leaf endpoint-assignment-precedence {
+      type enumeration {
+        enum DHCPv6 {
+          description
+            "Enum Value - DHCPv6";
+        }
+        enum Static {
+          description
+            "Enum Value - Static";
+        }
+      }
+      description
+        "Device.DSLite.InterfaceSetting.{i}.EndpointAssignmentPrecedence";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.EndpointAssignmentPrecedence";
+    }
+    leaf endpoint-address-type-precedence {
+      type enumeration {
+        enum FQDN {
+          description
+            "Enum Value - FQDN";
+        }
+        enum IPv6Address {
+          description
+            "Enum Value - IPv6Address";
+        }
+      }
+      description
+        "Device.DSLite.InterfaceSetting.{i}.EndpointAddressTypePrecedence";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.EndpointAddressTypePrecedence";
+    }
+    leaf endpoint-address-in-use {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.DSLite.InterfaceSetting.{i}.EndpointAddressInUse";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.EndpointAddressInUse";
+    }
+    leaf endpoint-name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DSLite.InterfaceSetting.{i}.EndpointName";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.EndpointName";
+    }
+    leaf endpoint-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.DSLite.InterfaceSetting.{i}.EndpointAddress";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.EndpointAddress";
+    }
+    leaf origin {
+      type string;
+      config false;
+      description
+        "Device.DSLite.InterfaceSetting.{i}.Origin";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.Origin";
+    }
+    leaf tunnel-interface {
+      type string;
+      config false;
+      description
+        "Device.DSLite.InterfaceSetting.{i}.TunnelInterface";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.TunnelInterface";
+    }
+    leaf tunneled-interface {
+      type string;
+      config false;
+      description
+        "Device.DSLite.InterfaceSetting.{i}.TunneledInterface";
+      reference
+        "Device.DSLite.InterfaceSetting.{i}.TunneledInterface";
+    }
+  }
+
+  grouping device-device-info-g {
+    description
+      "Grouping object for Device.DeviceInfo.";
+    leaf device-category {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.DeviceCategory";
+      reference
+        "Device.DeviceInfo.DeviceCategory";
+    }
+    leaf manufacturer {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.Manufacturer";
+      reference
+        "Device.DeviceInfo.Manufacturer";
+    }
+    leaf manufacturer-oui {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ManufacturerOUI";
+      reference
+        "Device.DeviceInfo.ManufacturerOUI";
+    }
+    leaf supported-data-model-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.SupportedDataModelNumberOfEntries";
+      reference
+        "Device.DeviceInfo.SupportedDataModelNumberOfEntries";
+    }
+    leaf model-name {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ModelName";
+      reference
+        "Device.DeviceInfo.ModelName";
+    }
+    leaf model-number {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ModelNumber";
+      reference
+        "Device.DeviceInfo.ModelNumber";
+    }
+    leaf description {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.Description";
+      reference
+        "Device.DeviceInfo.Description";
+    }
+    leaf product-class {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ProductClass";
+      reference
+        "Device.DeviceInfo.ProductClass";
+    }
+    leaf serial-number {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.SerialNumber";
+      reference
+        "Device.DeviceInfo.SerialNumber";
+    }
+    leaf hardware-version {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.HardwareVersion";
+      reference
+        "Device.DeviceInfo.HardwareVersion";
+    }
+    leaf software-version {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.SoftwareVersion";
+      reference
+        "Device.DeviceInfo.SoftwareVersion";
+    }
+    leaf active-firmware-image {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ActiveFirmwareImage";
+      reference
+        "Device.DeviceInfo.ActiveFirmwareImage";
+    }
+    leaf boot-firmware-image {
+      type string;
+      description
+        "Device.DeviceInfo.BootFirmwareImage";
+      reference
+        "Device.DeviceInfo.BootFirmwareImage";
+    }
+    leaf additional-hardware-version {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.AdditionalHardwareVersion";
+      reference
+        "Device.DeviceInfo.AdditionalHardwareVersion";
+    }
+    leaf additional-software-version {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.AdditionalSoftwareVersion";
+      reference
+        "Device.DeviceInfo.AdditionalSoftwareVersion";
+    }
+    leaf provisioning-code {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DeviceInfo.ProvisioningCode";
+      reference
+        "Device.DeviceInfo.ProvisioningCode";
+    }
+    leaf up-time {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.UpTime";
+      reference
+        "Device.DeviceInfo.UpTime";
+    }
+    leaf first-use-date {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.FirstUseDate";
+      reference
+        "Device.DeviceInfo.FirstUseDate";
+    }
+    leaf firmware-image-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.FirmwareImageNumberOfEntries";
+      reference
+        "Device.DeviceInfo.FirmwareImageNumberOfEntries";
+    }
+    leaf vendor-config-file-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.VendorConfigFileNumberOfEntries";
+      reference
+        "Device.DeviceInfo.VendorConfigFileNumberOfEntries";
+    }
+    leaf processor-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.ProcessorNumberOfEntries";
+      reference
+        "Device.DeviceInfo.ProcessorNumberOfEntries";
+    }
+    leaf vendor-log-file-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.VendorLogFileNumberOfEntries";
+      reference
+        "Device.DeviceInfo.VendorLogFileNumberOfEntries";
+    }
+    leaf location-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.LocationNumberOfEntries";
+      reference
+        "Device.DeviceInfo.LocationNumberOfEntries";
+    }
+    leaf device-image-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.DeviceImageNumberOfEntries";
+      reference
+        "Device.DeviceInfo.DeviceImageNumberOfEntries";
+    }
+  }
+
+  grouping device-info-device-image-file-g {
+    description
+      "Grouping object for Device.DeviceInfo.DeviceImageFile.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DeviceInfo.DeviceImageFile.{i}.Alias";
+      reference
+        "Device.DeviceInfo.DeviceImageFile.{i}.Alias";
+    }
+    leaf location {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.DeviceImageFile.{i}.Location";
+      reference
+        "Device.DeviceInfo.DeviceImageFile.{i}.Location";
+    }
+    leaf image {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.DeviceImageFile.{i}.Image";
+      reference
+        "Device.DeviceInfo.DeviceImageFile.{i}.Image";
+    }
+  }
+
+  grouping device-info-firmware-image-g {
+    description
+      "Grouping object for Device.DeviceInfo.FirmwareImage.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DeviceInfo.FirmwareImage.{i}.Alias";
+      reference
+        "Device.DeviceInfo.FirmwareImage.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.FirmwareImage.{i}.Name";
+      reference
+        "Device.DeviceInfo.FirmwareImage.{i}.Name";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.FirmwareImage.{i}.Version";
+      reference
+        "Device.DeviceInfo.FirmwareImage.{i}.Version";
+    }
+    leaf available {
+      type boolean;
+      description
+        "Device.DeviceInfo.FirmwareImage.{i}.Available";
+      reference
+        "Device.DeviceInfo.FirmwareImage.{i}.Available";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.FirmwareImage.{i}.Status";
+      reference
+        "Device.DeviceInfo.FirmwareImage.{i}.Status";
+    }
+    leaf boot-failure-log {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.FirmwareImage.{i}.BootFailureLog";
+      reference
+        "Device.DeviceInfo.FirmwareImage.{i}.BootFailureLog";
+    }
+  }
+
+  grouping device-info-location-g {
+    description
+      "Grouping object for Device.DeviceInfo.Location.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf source {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.Location.{i}.Source";
+      reference
+        "Device.DeviceInfo.Location.{i}.Source";
+    }
+    leaf acquired-time {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.Location.{i}.AcquiredTime";
+      reference
+        "Device.DeviceInfo.Location.{i}.AcquiredTime";
+    }
+    leaf external-source {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.Location.{i}.ExternalSource";
+      reference
+        "Device.DeviceInfo.Location.{i}.ExternalSource";
+    }
+    leaf external-protocol {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.Location.{i}.ExternalProtocol";
+      reference
+        "Device.DeviceInfo.Location.{i}.ExternalProtocol";
+    }
+    leaf data-object {
+      type string {
+        length "min..1200";
+      }
+      description
+        "Device.DeviceInfo.Location.{i}.DataObject";
+      reference
+        "Device.DeviceInfo.Location.{i}.DataObject";
+    }
+  }
+
+  grouping device-info-memory-status-g {
+    description
+      "Grouping object for Device.DeviceInfo.MemoryStatus.";
+    leaf total {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.MemoryStatus.Total";
+      reference
+        "Device.DeviceInfo.MemoryStatus.Total";
+    }
+    leaf free {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.MemoryStatus.Free";
+      reference
+        "Device.DeviceInfo.MemoryStatus.Free";
+    }
+  }
+
+  grouping device-info-network-properties-g {
+    description
+      "Grouping object for Device.DeviceInfo.NetworkProperties.";
+    leaf max-tcp-window-size {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.NetworkProperties.MaxTCPWindowSize";
+      reference
+        "Device.DeviceInfo.NetworkProperties.MaxTCPWindowSize";
+    }
+    leaf tcp-implementation {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.NetworkProperties.TCPImplementation";
+      reference
+        "Device.DeviceInfo.NetworkProperties.TCPImplementation";
+    }
+  }
+
+  grouping device-info-process-status-g {
+    description
+      "Grouping object for Device.DeviceInfo.ProcessStatus.";
+    leaf cpu-usage {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.ProcessStatus.CPUUsage";
+      reference
+        "Device.DeviceInfo.ProcessStatus.CPUUsage";
+    }
+    leaf process-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.ProcessStatus.ProcessNumberOfEntries";
+      reference
+        "Device.DeviceInfo.ProcessStatus.ProcessNumberOfEntries";
+    }
+  }
+
+  grouping process-status-process-g {
+    description
+      "Grouping object for Device.DeviceInfo.ProcessStatus.Process.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf pid {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.PID";
+      reference
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.PID";
+    }
+    leaf command {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.Command";
+      reference
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.Command";
+    }
+    leaf size {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.Size";
+      reference
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.Size";
+    }
+    leaf priority {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.Priority";
+      reference
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.Priority";
+    }
+    leaf cpu-time {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.CPUTime";
+      reference
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.CPUTime";
+    }
+    leaf state {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.State";
+      reference
+        "Device.DeviceInfo.ProcessStatus.Process.{i}.State";
+    }
+  }
+
+  grouping device-info-processor-g {
+    description
+      "Grouping object for Device.DeviceInfo.Processor.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DeviceInfo.Processor.{i}.Alias";
+      reference
+        "Device.DeviceInfo.Processor.{i}.Alias";
+    }
+    leaf architecture {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.Processor.{i}.Architecture";
+      reference
+        "Device.DeviceInfo.Processor.{i}.Architecture";
+    }
+  }
+
+  grouping device-info-proxier-info-g {
+    description
+      "Grouping object for Device.DeviceInfo.ProxierInfo.";
+    leaf manufacturer-oui {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ProxierInfo.ManufacturerOUI";
+      reference
+        "Device.DeviceInfo.ProxierInfo.ManufacturerOUI";
+    }
+    leaf product-class {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ProxierInfo.ProductClass";
+      reference
+        "Device.DeviceInfo.ProxierInfo.ProductClass";
+    }
+    leaf serial-number {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ProxierInfo.SerialNumber";
+      reference
+        "Device.DeviceInfo.ProxierInfo.SerialNumber";
+    }
+    leaf proxy-protocol {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.ProxierInfo.ProxyProtocol";
+      reference
+        "Device.DeviceInfo.ProxierInfo.ProxyProtocol";
+    }
+  }
+
+  grouping device-info-supported-data-model-g {
+    description
+      "Grouping object for Device.DeviceInfo.SupportedDataModel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DeviceInfo.SupportedDataModel.{i}.Alias";
+      reference
+        "Device.DeviceInfo.SupportedDataModel.{i}.Alias";
+    }
+    leaf url {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.SupportedDataModel.{i}.URL";
+      reference
+        "Device.DeviceInfo.SupportedDataModel.{i}.URL";
+    }
+    leaf uuid {
+      type string {
+        length "min..36";
+      }
+      config false;
+      description
+        "Device.DeviceInfo.SupportedDataModel.{i}.UUID";
+      reference
+        "Device.DeviceInfo.SupportedDataModel.{i}.UUID";
+    }
+    leaf urn {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.SupportedDataModel.{i}.URN";
+      reference
+        "Device.DeviceInfo.SupportedDataModel.{i}.URN";
+    }
+    leaf features {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.SupportedDataModel.{i}.Features";
+      reference
+        "Device.DeviceInfo.SupportedDataModel.{i}.Features";
+    }
+  }
+
+  grouping device-info-temperature-status-g {
+    description
+      "Grouping object for Device.DeviceInfo.TemperatureStatus.";
+    leaf temperature-sensor-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensorNumberOfEntries";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensorNumberOfEntries";
+    }
+  }
+
+  grouping temperature-status-temperature-sensor-g {
+    description
+      "Grouping object for Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.Alias";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.Enable";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.Status";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.Status";
+    }
+    leaf reset-time {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.ResetTime";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.ResetTime";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.Name";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.Name";
+    }
+    leaf value {
+      type int32;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.Value";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.Value";
+    }
+    leaf last-update {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.LastUpdate";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.LastUpdate";
+    }
+    leaf min-value {
+      type int32;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.MinValue";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.MinValue";
+    }
+    leaf min-time {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.MinTime";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.MinTime";
+    }
+    leaf max-value {
+      type int32;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.MaxValue";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.MaxValue";
+    }
+    leaf max-time {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.MaxTime";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.MaxTime";
+    }
+    leaf low-alarm-value {
+      type int32 {
+        range "-274..max";
+      }
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.LowAlarmValue";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.LowAlarmValue";
+    }
+    leaf low-alarm-time {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.LowAlarmTime";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.LowAlarmTime";
+    }
+    leaf high-alarm-value {
+      type int32 {
+        range "-274..max";
+      }
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.HighAlarmValue";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.HighAlarmValue";
+    }
+    leaf polling-interval {
+      type uint32;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.PollingInterval";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.PollingInterval";
+    }
+    leaf high-alarm-time {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.HighAlarmTime";
+      reference
+        "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.HighAlarmTime";
+    }
+  }
+
+  grouping device-info-vendor-config-file-g {
+    description
+      "Grouping object for Device.DeviceInfo.VendorConfigFile.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DeviceInfo.VendorConfigFile.{i}.Alias";
+      reference
+        "Device.DeviceInfo.VendorConfigFile.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.VendorConfigFile.{i}.Name";
+      reference
+        "Device.DeviceInfo.VendorConfigFile.{i}.Name";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.VendorConfigFile.{i}.Version";
+      reference
+        "Device.DeviceInfo.VendorConfigFile.{i}.Version";
+    }
+    leaf date {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.VendorConfigFile.{i}.Date";
+      reference
+        "Device.DeviceInfo.VendorConfigFile.{i}.Date";
+    }
+    leaf description {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.VendorConfigFile.{i}.Description";
+      reference
+        "Device.DeviceInfo.VendorConfigFile.{i}.Description";
+    }
+    leaf use-for-backup-restore {
+      type boolean;
+      config false;
+      description
+        "Device.DeviceInfo.VendorConfigFile.{i}.UseForBackupRestore";
+      reference
+        "Device.DeviceInfo.VendorConfigFile.{i}.UseForBackupRestore";
+    }
+  }
+
+  grouping device-info-vendor-log-file-g {
+    description
+      "Grouping object for Device.DeviceInfo.VendorLogFile.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DeviceInfo.VendorLogFile.{i}.Alias";
+      reference
+        "Device.DeviceInfo.VendorLogFile.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.DeviceInfo.VendorLogFile.{i}.Name";
+      reference
+        "Device.DeviceInfo.VendorLogFile.{i}.Name";
+    }
+    leaf maximum-size {
+      type uint32;
+      config false;
+      description
+        "Device.DeviceInfo.VendorLogFile.{i}.MaximumSize";
+      reference
+        "Device.DeviceInfo.VendorLogFile.{i}.MaximumSize";
+    }
+    leaf persistent {
+      type boolean;
+      config false;
+      description
+        "Device.DeviceInfo.VendorLogFile.{i}.Persistent";
+      reference
+        "Device.DeviceInfo.VendorLogFile.{i}.Persistent";
+    }
+  }
+
+  grouping device-dynamic-dns-g {
+    description
+      "Grouping object for Device.DynamicDNS.";
+    leaf client-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DynamicDNS.ClientNumberOfEntries";
+      reference
+        "Device.DynamicDNS.ClientNumberOfEntries";
+    }
+    leaf server-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DynamicDNS.ServerNumberOfEntries";
+      reference
+        "Device.DynamicDNS.ServerNumberOfEntries";
+    }
+    leaf supported-services {
+      type string;
+      config false;
+      description
+        "Device.DynamicDNS.SupportedServices";
+      reference
+        "Device.DynamicDNS.SupportedServices";
+    }
+  }
+
+  grouping dynamic-dns-client-g {
+    description
+      "Grouping object for Device.DynamicDNS.Client.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DynamicDNS.Client.{i}.Enable";
+      reference
+        "Device.DynamicDNS.Client.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DynamicDNS.Client.{i}.Status";
+      reference
+        "Device.DynamicDNS.Client.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DynamicDNS.Client.{i}.Alias";
+      reference
+        "Device.DynamicDNS.Client.{i}.Alias";
+    }
+    leaf last-error {
+      type string;
+      config false;
+      description
+        "Device.DynamicDNS.Client.{i}.LastError";
+      reference
+        "Device.DynamicDNS.Client.{i}.LastError";
+    }
+    leaf server {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DynamicDNS.Client.{i}.Server";
+      reference
+        "Device.DynamicDNS.Client.{i}.Server";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DynamicDNS.Client.{i}.Interface";
+      reference
+        "Device.DynamicDNS.Client.{i}.Interface";
+    }
+    leaf username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DynamicDNS.Client.{i}.Username";
+      reference
+        "Device.DynamicDNS.Client.{i}.Username";
+    }
+    leaf hostname-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.DynamicDNS.Client.{i}.HostnameNumberOfEntries";
+      reference
+        "Device.DynamicDNS.Client.{i}.HostnameNumberOfEntries";
+    }
+  }
+
+  grouping client-hostname-g {
+    description
+      "Grouping object for Device.DynamicDNS.Client.{i}.Hostname.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.DynamicDNS.Client.{i}.Hostname.{i}.Enable";
+      reference
+        "Device.DynamicDNS.Client.{i}.Hostname.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.DynamicDNS.Client.{i}.Hostname.{i}.Status";
+      reference
+        "Device.DynamicDNS.Client.{i}.Hostname.{i}.Status";
+    }
+    leaf name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DynamicDNS.Client.{i}.Hostname.{i}.Name";
+      reference
+        "Device.DynamicDNS.Client.{i}.Hostname.{i}.Name";
+    }
+    leaf last-update {
+      type string;
+      config false;
+      description
+        "Device.DynamicDNS.Client.{i}.Hostname.{i}.LastUpdate";
+      reference
+        "Device.DynamicDNS.Client.{i}.Hostname.{i}.LastUpdate";
+    }
+  }
+
+  grouping dynamic-dns-server-g {
+    description
+      "Grouping object for Device.DynamicDNS.Server.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DynamicDNS.Server.{i}.Enable";
+      reference
+        "Device.DynamicDNS.Server.{i}.Enable";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DynamicDNS.Server.{i}.Name";
+      reference
+        "Device.DynamicDNS.Server.{i}.Name";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.DynamicDNS.Server.{i}.Alias";
+      reference
+        "Device.DynamicDNS.Server.{i}.Alias";
+    }
+    leaf service-name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DynamicDNS.Server.{i}.ServiceName";
+      reference
+        "Device.DynamicDNS.Server.{i}.ServiceName";
+    }
+    leaf server-address {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.DynamicDNS.Server.{i}.ServerAddress";
+      reference
+        "Device.DynamicDNS.Server.{i}.ServerAddress";
+    }
+    leaf server-port {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.DynamicDNS.Server.{i}.ServerPort";
+      reference
+        "Device.DynamicDNS.Server.{i}.ServerPort";
+    }
+    leaf supported-protocols {
+      type string;
+      config false;
+      description
+        "Device.DynamicDNS.Server.{i}.SupportedProtocols";
+      reference
+        "Device.DynamicDNS.Server.{i}.SupportedProtocols";
+    }
+    leaf protocol {
+      type string;
+      description
+        "Device.DynamicDNS.Server.{i}.Protocol";
+      reference
+        "Device.DynamicDNS.Server.{i}.Protocol";
+    }
+    leaf check-interval {
+      type uint32;
+      description
+        "Device.DynamicDNS.Server.{i}.CheckInterval";
+      reference
+        "Device.DynamicDNS.Server.{i}.CheckInterval";
+    }
+    leaf retry-interval {
+      type uint32;
+      description
+        "Device.DynamicDNS.Server.{i}.RetryInterval";
+      reference
+        "Device.DynamicDNS.Server.{i}.RetryInterval";
+    }
+    leaf max-retries {
+      type uint32;
+      description
+        "Device.DynamicDNS.Server.{i}.MaxRetries";
+      reference
+        "Device.DynamicDNS.Server.{i}.MaxRetries";
+    }
+  }
+
+  grouping device-etsi-m2-m-g {
+    description
+      "Grouping object for Device.ETSIM2M.";
+    leaf scl-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCLNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCLNumberOfEntries";
+    }
+  }
+
+  grouping etsi-m2-m-scl-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ETSIM2M.SCL.{i}.Enable";
+      reference
+        "Device.ETSIM2M.SCL.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ETSIM2M.SCL.{i}.Alias";
+      reference
+        "Device.ETSIM2M.SCL.{i}.Alias";
+    }
+    leaf announced-to-scl-list {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.AnnouncedToSCLList";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AnnouncedToSCLList";
+    }
+    leaf saf-policy-set-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySetNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySetNumberOfEntries";
+    }
+    leaf area-nwk-instance-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstanceNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstanceNumberOfEntries";
+    }
+    leaf area-nwk-device-info-instance-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstanceNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstanceNumberOfEntries";
+    }
+  }
+
+  grouping scl-area-nwk-device-info-instance-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf area-nwk-instance {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.AreaNwkInstance";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.AreaNwkInstance";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Host";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Host";
+    }
+    leaf list-of-device-neighbors {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.ListOfDeviceNeighbors";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.ListOfDeviceNeighbors";
+    }
+    leaf list-of-device-applications {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.ListOfDeviceApplications";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.ListOfDeviceApplications";
+    }
+    leaf sleep-interval {
+      type uint32;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.SleepInterval";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.SleepInterval";
+    }
+    leaf sleep-duration {
+      type uint32;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.SleepDuration";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.SleepDuration";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Status";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Status";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Active";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Active";
+    }
+    leaf property-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.PropertyNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.PropertyNumberOfEntries";
+    }
+  }
+
+  grouping area-nwk-device-info-instance-property-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Property.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Property.{i}.Name";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Property.{i}.Name";
+    }
+    leaf value {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Property.{i}.Value";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Property.{i}.Value";
+    }
+  }
+
+  grouping scl-area-nwk-instance-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf id {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.ID";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.ID";
+    }
+    leaf area-nwk-type {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.AreaNwkType";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.AreaNwkType";
+    }
+    leaf list-of-devices {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.ListOfDevices";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.ListOfDevices";
+    }
+    leaf property-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.PropertyNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.PropertyNumberOfEntries";
+    }
+  }
+
+  grouping area-nwk-instance-property-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.Property.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.Property.{i}.Name";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.Property.{i}.Name";
+    }
+    leaf value {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.Property.{i}.Value";
+      reference
+        "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.Property.{i}.Value";
+    }
+  }
+
+  grouping scl-discovery-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.Discovery.";
+    leaf max-number-of-discov-records {
+      type uint32;
+      description
+        "Device.ETSIM2M.SCL.{i}.Discovery.MaxNumberOfDiscovRecords";
+      reference
+        "Device.ETSIM2M.SCL.{i}.Discovery.MaxNumberOfDiscovRecords";
+    }
+    leaf max-size-of-discov-answer {
+      type uint32;
+      description
+        "Device.ETSIM2M.SCL.{i}.Discovery.MaxSizeOfDiscovAnswer";
+      reference
+        "Device.ETSIM2M.SCL.{i}.Discovery.MaxSizeOfDiscovAnswer";
+    }
+  }
+
+  grouping scl-reregistration-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.Reregistration.";
+    leaf reg-target-nscl-list {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.Reregistration.RegTargetNSCLList";
+      reference
+        "Device.ETSIM2M.SCL.{i}.Reregistration.RegTargetNSCLList";
+    }
+    leaf reg-search-strings {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.Reregistration.RegSearchStrings";
+      reference
+        "Device.ETSIM2M.SCL.{i}.Reregistration.RegSearchStrings";
+    }
+    leaf reg-access-right-id {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.Reregistration.RegAccessRightID";
+      reference
+        "Device.ETSIM2M.SCL.{i}.Reregistration.RegAccessRightID";
+    }
+    leaf reg-expiration-duration {
+      type int32;
+      description
+        "Device.ETSIM2M.SCL.{i}.Reregistration.RegExpirationDuration";
+      reference
+        "Device.ETSIM2M.SCL.{i}.Reregistration.RegExpirationDuration";
+    }
+  }
+
+  grouping reregistration-action-status-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.Reregistration.ActionStatus.";
+    leaf progress {
+      type uint32 {
+        range "0..100";
+      }
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.Reregistration.ActionStatus.Progress";
+      reference
+        "Device.ETSIM2M.SCL.{i}.Reregistration.ActionStatus.Progress";
+    }
+    leaf final-status {
+      type string;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.Reregistration.ActionStatus.FinalStatus";
+      reference
+        "Device.ETSIM2M.SCL.{i}.Reregistration.ActionStatus.FinalStatus";
+    }
+  }
+
+  grouping scl-saf-policy-set-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.Enable";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.Alias";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.Alias";
+    }
+    leaf policy-scope {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.PolicyScope";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.PolicyScope";
+    }
+    leaf anp-policy-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicyNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicyNumberOfEntries";
+    }
+  }
+
+  grouping saf-policy-set-anp-policy-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.Enable";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.Alias";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.Alias";
+    }
+    leaf an-name {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.ANName";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.ANName";
+    }
+    leaf block-period-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriodNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriodNumberOfEntries";
+    }
+    leaf request-category-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategoryNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategoryNumberOfEntries";
+    }
+  }
+
+  grouping anp-policy-block-period-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.Enable";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.Alias";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.Alias";
+    }
+    leaf failed-attempts {
+      type uint32;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.FailedAttempts";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.FailedAttempts";
+    }
+    leaf block-duration {
+      type int32;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.BlockDuration";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.BlockDuration";
+    }
+  }
+
+  grouping anp-policy-request-category-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Enable";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Alias";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Alias";
+    }
+    leaf rcat {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.RCAT";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.RCAT";
+    }
+    leaf schedule-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.ScheduleNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.ScheduleNumberOfEntries";
+    }
+  }
+
+  grouping request-category-schedule-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.Enable";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.Alias";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.Alias";
+    }
+    leaf schedules {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.Schedules";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.Schedules";
+    }
+    leaf abs-time-span-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpanNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpanNumberOfEntries";
+    }
+  }
+
+  grouping schedule-abs-time-span-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.Enable";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.Alias";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.Alias";
+    }
+    leaf start-time {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.StartTime";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.StartTime";
+    }
+    leaf end-time {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.EndTime";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.EndTime";
+    }
+  }
+
+  grouping saf-policy-set-m2-msp-policy-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.";
+    leaf default-rcat-value {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.DefaultRCATValue";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.DefaultRCATValue";
+    }
+    leaf request-category-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategoryNumberOfEntries";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategoryNumberOfEntries";
+    }
+  }
+
+  grouping m2-msp-policy-request-category-g {
+    description
+      "Grouping object for Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.Enable";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.Alias";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.Alias";
+    }
+    leaf rcat {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.RCAT";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.RCAT";
+    }
+    leaf tolerable-delay {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.TolerableDelay";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.TolerableDelay";
+    }
+    leaf thresh {
+      type uint32;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.Thresh";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.Thresh";
+    }
+    leaf mem {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.Mem";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.Mem";
+    }
+    leaf ranked-an-list {
+      type string;
+      description
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.RankedANList";
+      reference
+        "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.RankedANList";
+    }
+  }
+
+  grouping device-ethernet-g {
+    description
+      "Grouping object for Device.Ethernet.";
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.InterfaceNumberOfEntries";
+      reference
+        "Device.Ethernet.InterfaceNumberOfEntries";
+    }
+    leaf link-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.LinkNumberOfEntries";
+      reference
+        "Device.Ethernet.LinkNumberOfEntries";
+    }
+    leaf vlan-termination-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.VLANTerminationNumberOfEntries";
+      reference
+        "Device.Ethernet.VLANTerminationNumberOfEntries";
+    }
+    leaf rmon-stats-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.RMONStatsNumberOfEntries";
+      reference
+        "Device.Ethernet.RMONStatsNumberOfEntries";
+    }
+    leaf lag-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.LAGNumberOfEntries";
+      reference
+        "Device.Ethernet.LAGNumberOfEntries";
+    }
+  }
+
+  grouping ethernet-interface-g {
+    description
+      "Grouping object for Device.Ethernet.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Ethernet.Interface.{i}.Enable";
+      reference
+        "Device.Ethernet.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Status";
+      reference
+        "Device.Ethernet.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Ethernet.Interface.{i}.Alias";
+      reference
+        "Device.Ethernet.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Name";
+      reference
+        "Device.Ethernet.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.LastChange";
+      reference
+        "Device.Ethernet.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.Ethernet.Interface.{i}.LowerLayers";
+      reference
+        "Device.Ethernet.Interface.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Upstream";
+      reference
+        "Device.Ethernet.Interface.{i}.Upstream";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.MACAddress";
+      reference
+        "Device.Ethernet.Interface.{i}.MACAddress";
+    }
+    leaf max-bit-rate {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.Ethernet.Interface.{i}.MaxBitRate";
+      reference
+        "Device.Ethernet.Interface.{i}.MaxBitRate";
+    }
+    leaf current-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.CurrentBitRate";
+      reference
+        "Device.Ethernet.Interface.{i}.CurrentBitRate";
+    }
+    leaf duplex-mode {
+      type enumeration {
+        enum Half {
+          description
+            "Enum Value - Half";
+        }
+        enum Full {
+          description
+            "Enum Value - Full";
+        }
+        enum Auto {
+          description
+            "Enum Value - Auto";
+        }
+      }
+      description
+        "Device.Ethernet.Interface.{i}.DuplexMode";
+      reference
+        "Device.Ethernet.Interface.{i}.DuplexMode";
+    }
+    leaf eee-capability {
+      type boolean;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.EEECapability";
+      reference
+        "Device.Ethernet.Interface.{i}.EEECapability";
+    }
+    leaf eee-enable {
+      type boolean;
+      description
+        "Device.Ethernet.Interface.{i}.EEEEnable";
+      reference
+        "Device.Ethernet.Interface.{i}.EEEEnable";
+    }
+  }
+
+  grouping ethernet-interface-stats-g {
+    description
+      "Grouping object for Device.Ethernet.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.Ethernet.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping ethernet-lag-g {
+    description
+      "Grouping object for Device.Ethernet.LAG.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Ethernet.LAG.{i}.Enable";
+      reference
+        "Device.Ethernet.LAG.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Status";
+      reference
+        "Device.Ethernet.LAG.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Ethernet.LAG.{i}.Alias";
+      reference
+        "Device.Ethernet.LAG.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Name";
+      reference
+        "Device.Ethernet.LAG.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.LastChange";
+      reference
+        "Device.Ethernet.LAG.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.Ethernet.LAG.{i}.LowerLayers";
+      reference
+        "Device.Ethernet.LAG.{i}.LowerLayers";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.Ethernet.LAG.{i}.MACAddress";
+      reference
+        "Device.Ethernet.LAG.{i}.MACAddress";
+    }
+  }
+
+  grouping lag-stats-g {
+    description
+      "Grouping object for Device.Ethernet.LAG.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.BytesSent";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.BytesReceived";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.PacketsSent";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.PacketsReceived";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.ErrorsSent";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.LAG.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.Ethernet.LAG.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping ethernet-link-g {
+    description
+      "Grouping object for Device.Ethernet.Link.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Ethernet.Link.{i}.Enable";
+      reference
+        "Device.Ethernet.Link.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Status";
+      reference
+        "Device.Ethernet.Link.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Ethernet.Link.{i}.Alias";
+      reference
+        "Device.Ethernet.Link.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Name";
+      reference
+        "Device.Ethernet.Link.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.LastChange";
+      reference
+        "Device.Ethernet.Link.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.Ethernet.Link.{i}.LowerLayers";
+      reference
+        "Device.Ethernet.Link.{i}.LowerLayers";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.MACAddress";
+      reference
+        "Device.Ethernet.Link.{i}.MACAddress";
+    }
+    leaf priority-tagging {
+      type boolean;
+      description
+        "Device.Ethernet.Link.{i}.PriorityTagging";
+      reference
+        "Device.Ethernet.Link.{i}.PriorityTagging";
+    }
+  }
+
+  grouping ethernet-link-stats-g {
+    description
+      "Grouping object for Device.Ethernet.Link.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.BytesSent";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.BytesReceived";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.PacketsSent";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.PacketsReceived";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.ErrorsSent";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.Link.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.Ethernet.Link.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping ethernet-rmon-stats-g {
+    description
+      "Grouping object for Device.Ethernet.RMONStats.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Ethernet.RMONStats.{i}.Enable";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.Status";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Ethernet.RMONStats.{i}.Alias";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.Name";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Name";
+    }
+    leaf interface {
+      type string;
+      description
+        "Device.Ethernet.RMONStats.{i}.Interface";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Interface";
+    }
+    leaf vlanid {
+      type uint32 {
+        range "0..4094";
+      }
+      description
+        "Device.Ethernet.RMONStats.{i}.VLANID";
+      reference
+        "Device.Ethernet.RMONStats.{i}.VLANID";
+    }
+    leaf queue {
+      type string;
+      description
+        "Device.Ethernet.RMONStats.{i}.Queue";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Queue";
+    }
+    leaf all-queues {
+      type boolean;
+      description
+        "Device.Ethernet.RMONStats.{i}.AllQueues";
+      reference
+        "Device.Ethernet.RMONStats.{i}.AllQueues";
+    }
+    leaf drop-events {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.DropEvents";
+      reference
+        "Device.Ethernet.RMONStats.{i}.DropEvents";
+    }
+    leaf bytes {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.Bytes";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Bytes";
+    }
+    leaf packets {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.Packets";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Packets";
+    }
+    leaf broadcast-packets {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.BroadcastPackets";
+      reference
+        "Device.Ethernet.RMONStats.{i}.BroadcastPackets";
+    }
+    leaf multicast-packets {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.MulticastPackets";
+      reference
+        "Device.Ethernet.RMONStats.{i}.MulticastPackets";
+    }
+    leaf crc-errored-packets {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.CRCErroredPackets";
+      reference
+        "Device.Ethernet.RMONStats.{i}.CRCErroredPackets";
+    }
+    leaf undersize-packets {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.UndersizePackets";
+      reference
+        "Device.Ethernet.RMONStats.{i}.UndersizePackets";
+    }
+    leaf oversize-packets {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.OversizePackets";
+      reference
+        "Device.Ethernet.RMONStats.{i}.OversizePackets";
+    }
+    leaf packets64-bytes {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.Packets64Bytes";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Packets64Bytes";
+    }
+    leaf packets65to127-bytes {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.Packets65to127Bytes";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Packets65to127Bytes";
+    }
+    leaf packets128to255-bytes {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.Packets128to255Bytes";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Packets128to255Bytes";
+    }
+    leaf packets256to511-bytes {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.Packets256to511Bytes";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Packets256to511Bytes";
+    }
+    leaf packets512to1023-bytes {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.Packets512to1023Bytes";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Packets512to1023Bytes";
+    }
+    leaf packets1024to1518-bytes {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.RMONStats.{i}.Packets1024to1518Bytes";
+      reference
+        "Device.Ethernet.RMONStats.{i}.Packets1024to1518Bytes";
+    }
+  }
+
+  grouping ethernet-vlan-termination-g {
+    description
+      "Grouping object for Device.Ethernet.VLANTermination.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Enable";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Status";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Ethernet.VLANTermination.{i}.Alias";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Name";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.LastChange";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.Ethernet.VLANTermination.{i}.LowerLayers";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.LowerLayers";
+    }
+    leaf vlanid {
+      type uint32 {
+        range "1..4094";
+      }
+      description
+        "Device.Ethernet.VLANTermination.{i}.VLANID";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.VLANID";
+    }
+    leaf tpid {
+      type uint32;
+      description
+        "Device.Ethernet.VLANTermination.{i}.TPID";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.TPID";
+    }
+  }
+
+  grouping vlan-termination-stats-g {
+    description
+      "Grouping object for Device.Ethernet.VLANTermination.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.BytesSent";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.BytesReceived";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.PacketsSent";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.PacketsReceived";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.ErrorsSent";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ethernet.VLANTermination.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.Ethernet.VLANTermination.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping fap-application-platform-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.";
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Version";
+      reference
+        "Device.FAP.ApplicationPlatform.Version";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Enable";
+      reference
+        "Device.FAP.ApplicationPlatform.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Status";
+      reference
+        "Device.FAP.ApplicationPlatform.Status";
+    }
+    leaf max-number-of-applications {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.MaxNumberOfApplications";
+      reference
+        "Device.FAP.ApplicationPlatform.MaxNumberOfApplications";
+    }
+    leaf current-numberof-applications {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.CurrentNumberofApplications";
+      reference
+        "Device.FAP.ApplicationPlatform.CurrentNumberofApplications";
+    }
+  }
+
+  grouping application-platform-capabilities-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Capabilities.";
+    leaf presence-application-support {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.PresenceApplicationSupport";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.PresenceApplicationSupport";
+    }
+    leaf femto-awareness-api-support {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.FemtoAwarenessAPISupport";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.FemtoAwarenessAPISupport";
+    }
+    leaf smsapi-support {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.SMSAPISupport";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.SMSAPISupport";
+    }
+    leaf subscribe-to-notifications-of-sms-sent-to-application-support {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.SubscribeToNotificationsOfSMSSentToApplicationSupport";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.SubscribeToNotificationsOfSMSSentToApplicationSupport";
+    }
+    leaf query-sms-delivery-status-support {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.QuerySMSDeliveryStatusSupport";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.QuerySMSDeliveryStatusSupport";
+    }
+    leaf mmsapi-support {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.MMSAPISupport";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.MMSAPISupport";
+    }
+    leaf query-mms-delivery-status-support {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.QueryMMSDeliveryStatusSupport";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.QueryMMSDeliveryStatusSupport";
+    }
+    leaf subscribe-to-notifications-of-mms-sent-to-application-support {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.SubscribeToNotificationsOfMMSSentToApplicationSupport";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.SubscribeToNotificationsOfMMSSentToApplicationSupport";
+    }
+    leaf terminal-location-api-support {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.TerminalLocationAPISupport";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.TerminalLocationAPISupport";
+    }
+    leaf authentication-methods-supported {
+      type string;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.AuthenticationMethodsSupported";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.AuthenticationMethodsSupported";
+    }
+    leaf access-levels-supported {
+      type string;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.AccessLevelsSupported";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.AccessLevelsSupported";
+    }
+    leaf send-sms-target-address-type {
+      type string;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.SendSMSTargetAddressType";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.SendSMSTargetAddressType";
+    }
+    leaf send-mms-target-address-type {
+      type string;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Capabilities.SendMMSTargetAddressType";
+      reference
+        "Device.FAP.ApplicationPlatform.Capabilities.SendMMSTargetAddressType";
+    }
+  }
+
+  grouping application-platform-control-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Control.";
+    leaf authentication-method {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.AuthenticationMethod";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.AuthenticationMethod";
+    }
+    leaf tunnel-inst {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.TunnelInst";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.TunnelInst";
+    }
+  }
+
+  grouping control-femto-awareness-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Control.FemtoAwareness.";
+    leaf api-enable {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.APIEnable";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.APIEnable";
+    }
+    leaf queue-enable {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.QueueEnable";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.QueueEnable";
+    }
+    leaf queueing {
+      type enumeration {
+        enum FiFo {
+          description
+            "Enum Value - FiFo";
+        }
+        enum Priority {
+          description
+            "Enum Value - Priority";
+        }
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.Queueing";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.Queueing";
+    }
+    leaf max-api-users-number {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.MaxAPIUsersNumber";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.MaxAPIUsersNumber";
+    }
+    leaf femtozone-id {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.FemtozoneID";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.FemtozoneID";
+    }
+    leaf notifications-user-identifier-msisdn {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.NotificationsUserIdentifierMSISDN";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.NotificationsUserIdentifierMSISDN";
+    }
+    leaf subscribe-to-notifications-response-callback-data {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.SubscribeToNotificationsResponseCallbackData";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.SubscribeToNotificationsResponseCallbackData";
+    }
+    leaf query-femtocell-response-timezone {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.QueryFemtocellResponseTimezone";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.QueryFemtocellResponseTimezone";
+    }
+  }
+
+  grouping control-mms-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Control.MMS.";
+    leaf api-enable {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.MMS.APIEnable";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.MMS.APIEnable";
+    }
+    leaf queue-enable {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.MMS.QueueEnable";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.MMS.QueueEnable";
+    }
+    leaf queueing {
+      type enumeration {
+        enum FiFo {
+          description
+            "Enum Value - FiFo";
+        }
+        enum Priority {
+          description
+            "Enum Value - Priority";
+        }
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.MMS.Queueing";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.MMS.Queueing";
+    }
+    leaf max-api-users-number {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.MMS.MaxAPIUsersNumber";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.MMS.MaxAPIUsersNumber";
+    }
+    leaf min-send-mms-time-interval {
+      type uint32 {
+        range "0..3599";
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.MMS.MinSendMMSTimeInterval";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.MMS.MinSendMMSTimeInterval";
+    }
+    leaf enable-query-mms-delivery-status {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.MMS.EnableQueryMMSDeliveryStatus";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.MMS.EnableQueryMMSDeliveryStatus";
+    }
+    leaf enable-subscribe-to-notifications-of-message-sent-to-application {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.MMS.EnableSubscribeToNotificationsOfMessageSentToApplication";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.MMS.EnableSubscribeToNotificationsOfMessageSentToApplication";
+    }
+  }
+
+  grouping control-sms-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Control.SMS.";
+    leaf api-enable {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.SMS.APIEnable";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.SMS.APIEnable";
+    }
+    leaf queue-enable {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.SMS.QueueEnable";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.SMS.QueueEnable";
+    }
+    leaf queueing {
+      type enumeration {
+        enum FiFo {
+          description
+            "Enum Value - FiFo";
+        }
+        enum Priority {
+          description
+            "Enum Value - Priority";
+        }
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.SMS.Queueing";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.SMS.Queueing";
+    }
+    leaf max-api-users-number {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.SMS.MaxAPIUsersNumber";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.SMS.MaxAPIUsersNumber";
+    }
+    leaf min-send-sms-time-interval {
+      type uint32 {
+        range "0..3599";
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.SMS.MinSendSMSTimeInterval";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.SMS.MinSendSMSTimeInterval";
+    }
+    leaf enable-query-sms-delivery-status {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.SMS.EnableQuerySMSDeliveryStatus";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.SMS.EnableQuerySMSDeliveryStatus";
+    }
+    leaf enable-subscribe-to-notifications-of-message-sent-to-application {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.SMS.EnableSubscribeToNotificationsOfMessageSentToApplication";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.SMS.EnableSubscribeToNotificationsOfMessageSentToApplication";
+    }
+  }
+
+  grouping control-terminal-location-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Control.TerminalLocation.";
+    leaf api-enable {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.APIEnable";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.APIEnable";
+    }
+    leaf queue-enable {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.QueueEnable";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.QueueEnable";
+    }
+    leaf queueing {
+      type enumeration {
+        enum FiFo {
+          description
+            "Enum Value - FiFo";
+        }
+        enum Priority {
+          description
+            "Enum Value - Priority";
+        }
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.Queueing";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.Queueing";
+    }
+    leaf max-api-users-number {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.MaxAPIUsersNumber";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.MaxAPIUsersNumber";
+    }
+    leaf query-mobile-location-response-address {
+      type enumeration {
+        enum TelUri {
+          description
+            "Enum Value - TelUri";
+        }
+        enum AnonymousReference {
+          description
+            "Enum Value - AnonymousReference";
+        }
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.QueryMobileLocationResponseAddress";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.QueryMobileLocationResponseAddress";
+    }
+    leaf query-mobile-location-response-longitude-latitude {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.QueryMobileLocationResponseLongitudeLatitude";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.QueryMobileLocationResponseLongitudeLatitude";
+    }
+    leaf query-mobile-location-response-altitude {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.QueryMobileLocationResponseAltitude";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.QueryMobileLocationResponseAltitude";
+    }
+    leaf query-mobile-location-response-timestamp {
+      type uint32 {
+        range "0..86399";
+      }
+      description
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.QueryMobileLocationResponseTimestamp";
+      reference
+        "Device.FAP.ApplicationPlatform.Control.TerminalLocation.QueryMobileLocationResponseTimestamp";
+    }
+  }
+
+  grouping application-platform-monitoring-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Monitoring.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.Enable";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.Enable";
+    }
+    leaf monitoring-interval {
+      type uint32;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.MonitoringInterval";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.MonitoringInterval";
+    }
+    leaf authentication-requests-received {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.AuthenticationRequestsReceived";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.AuthenticationRequestsReceived";
+    }
+    leaf authentication-requests-rejected {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.AuthenticationRequestsRejected";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.AuthenticationRequestsRejected";
+    }
+  }
+
+  grouping monitoring-femto-awareness-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.";
+    leaf api-available {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.APIAvailable";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.APIAvailable";
+    }
+    leaf api-users {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.APIUsers";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.APIUsers";
+    }
+    leaf queue-state {
+      type string;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.QueueState";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.QueueState";
+    }
+    leaf queue-num {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.QueueNum";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.QueueNum";
+    }
+    leaf queue-received {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.QueueReceived";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.QueueReceived";
+    }
+    leaf queue-discarded {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.QueueDiscarded";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.QueueDiscarded";
+    }
+  }
+
+  grouping monitoring-mms-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Monitoring.MMS.";
+    leaf api-available {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.APIAvailable";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.APIAvailable";
+    }
+    leaf api-users {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.APIUsers";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.APIUsers";
+    }
+    leaf queue-state {
+      type string;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.QueueState";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.QueueState";
+    }
+    leaf queue-num {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.QueueNum";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.QueueNum";
+    }
+    leaf queue-received {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.QueueReceived";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.QueueReceived";
+    }
+    leaf queue-discarded {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.QueueDiscarded";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.MMS.QueueDiscarded";
+    }
+  }
+
+  grouping monitoring-sms-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Monitoring.SMS.";
+    leaf api-available {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.APIAvailable";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.APIAvailable";
+    }
+    leaf api-users {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.APIUsers";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.APIUsers";
+    }
+    leaf queue-state {
+      type string;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.QueueState";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.QueueState";
+    }
+    leaf queue-num {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.QueueNum";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.QueueNum";
+    }
+    leaf queue-received {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.QueueReceived";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.QueueReceived";
+    }
+    leaf queue-discarded {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.QueueDiscarded";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.SMS.QueueDiscarded";
+    }
+  }
+
+  grouping monitoring-terminal-location-g {
+    description
+      "Grouping object for Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.";
+    leaf api-available {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.APIAvailable";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.APIAvailable";
+    }
+    leaf api-users {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.APIUsers";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.APIUsers";
+    }
+    leaf queue-state {
+      type string;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.QueueState";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.QueueState";
+    }
+    leaf queue-num {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.QueueNum";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.QueueNum";
+    }
+    leaf queue-received {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.QueueReceived";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.QueueReceived";
+    }
+    leaf queue-discarded {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.QueueDiscarded";
+      reference
+        "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.QueueDiscarded";
+    }
+  }
+
+  grouping fap-gps-g {
+    description
+      "Grouping object for Device.FAP.GPS.";
+    leaf scan-on-boot {
+      type boolean;
+      description
+        "Device.FAP.GPS.ScanOnBoot";
+      reference
+        "Device.FAP.GPS.ScanOnBoot";
+    }
+    leaf scan-periodically {
+      type boolean;
+      description
+        "Device.FAP.GPS.ScanPeriodically";
+      reference
+        "Device.FAP.GPS.ScanPeriodically";
+    }
+    leaf periodic-interval {
+      type uint32;
+      description
+        "Device.FAP.GPS.PeriodicInterval";
+      reference
+        "Device.FAP.GPS.PeriodicInterval";
+    }
+    leaf periodic-time {
+      type string;
+      description
+        "Device.FAP.GPS.PeriodicTime";
+      reference
+        "Device.FAP.GPS.PeriodicTime";
+    }
+    leaf continuous-gps {
+      type boolean;
+      description
+        "Device.FAP.GPS.ContinuousGPS";
+      reference
+        "Device.FAP.GPS.ContinuousGPS";
+    }
+    leaf scan-timeout {
+      type uint32;
+      description
+        "Device.FAP.GPS.ScanTimeout";
+      reference
+        "Device.FAP.GPS.ScanTimeout";
+    }
+    leaf scan-status {
+      type string;
+      config false;
+      description
+        "Device.FAP.GPS.ScanStatus";
+      reference
+        "Device.FAP.GPS.ScanStatus";
+    }
+    leaf error-details {
+      type string;
+      config false;
+      description
+        "Device.FAP.GPS.ErrorDetails";
+      reference
+        "Device.FAP.GPS.ErrorDetails";
+    }
+    leaf last-scan-time {
+      type string;
+      config false;
+      description
+        "Device.FAP.GPS.LastScanTime";
+      reference
+        "Device.FAP.GPS.LastScanTime";
+    }
+    leaf last-successful-scan-time {
+      type string;
+      config false;
+      description
+        "Device.FAP.GPS.LastSuccessfulScanTime";
+      reference
+        "Device.FAP.GPS.LastSuccessfulScanTime";
+    }
+    leaf locked-latitude {
+      type int32 {
+        range "-90000000..90000000";
+      }
+      config false;
+      description
+        "Device.FAP.GPS.LockedLatitude";
+      reference
+        "Device.FAP.GPS.LockedLatitude";
+    }
+    leaf locked-longitude {
+      type int32 {
+        range "-180000000..180000000";
+      }
+      config false;
+      description
+        "Device.FAP.GPS.LockedLongitude";
+      reference
+        "Device.FAP.GPS.LockedLongitude";
+    }
+    leaf number-of-satellites {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.GPS.NumberOfSatellites";
+      reference
+        "Device.FAP.GPS.NumberOfSatellites";
+    }
+  }
+
+  grouping gps-agps-server-config-g {
+    description
+      "Grouping object for Device.FAP.GPS.AGPSServerConfig.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.FAP.GPS.AGPSServerConfig.Enable";
+      reference
+        "Device.FAP.GPS.AGPSServerConfig.Enable";
+    }
+    leaf server-url {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.FAP.GPS.AGPSServerConfig.ServerURL";
+      reference
+        "Device.FAP.GPS.AGPSServerConfig.ServerURL";
+    }
+    leaf server-port {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.FAP.GPS.AGPSServerConfig.ServerPort";
+      reference
+        "Device.FAP.GPS.AGPSServerConfig.ServerPort";
+    }
+    leaf username {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.FAP.GPS.AGPSServerConfig.Username";
+      reference
+        "Device.FAP.GPS.AGPSServerConfig.Username";
+    }
+    leaf reference-latitude {
+      type int32 {
+        range "-90000000..90000000";
+      }
+      description
+        "Device.FAP.GPS.AGPSServerConfig.ReferenceLatitude";
+      reference
+        "Device.FAP.GPS.AGPSServerConfig.ReferenceLatitude";
+    }
+    leaf reference-longitude {
+      type int32 {
+        range "-180000000..180000000";
+      }
+      description
+        "Device.FAP.GPS.AGPSServerConfig.ReferenceLongitude";
+      reference
+        "Device.FAP.GPS.AGPSServerConfig.ReferenceLongitude";
+    }
+    leaf server-in-use {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.GPS.AGPSServerConfig.ServerInUse";
+      reference
+        "Device.FAP.GPS.AGPSServerConfig.ServerInUse";
+    }
+  }
+
+  grouping gps-continuous-gps-status-g {
+    description
+      "Grouping object for Device.FAP.GPS.ContinuousGPSStatus.";
+    leaf current-fix {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.CurrentFix";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.CurrentFix";
+    }
+    leaf got-fix {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.GotFix";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.GotFix";
+    }
+    leaf timing-good {
+      type boolean;
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.TimingGood";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.TimingGood";
+    }
+    leaf latitude {
+      type int32 {
+        range "-90000000..90000000";
+      }
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.Latitude";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.Latitude";
+    }
+    leaf longitude {
+      type int32 {
+        range "-180000000..180000000";
+      }
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.Longitude";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.Longitude";
+    }
+    leaf elevation {
+      type int32 {
+        range "-5000000..25000000";
+      }
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.Elevation";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.Elevation";
+    }
+    leaf last-fix-time {
+      type string;
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.LastFixTime";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.LastFixTime";
+    }
+    leaf last-fix-duration {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.LastFixDuration";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.LastFixDuration";
+    }
+    leaf first-fix-timeout {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.FirstFixTimeout";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.FirstFixTimeout";
+    }
+    leaf satellites-tracked {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.SatellitesTracked";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.SatellitesTracked";
+    }
+    leaf satellite-tracking-interval {
+      type uint32 {
+        range "60..3600";
+      }
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.SatelliteTrackingInterval";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.SatelliteTrackingInterval";
+    }
+    leaf receiver-status {
+      type string;
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.ReceiverStatus";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.ReceiverStatus";
+    }
+    leaf location-type {
+      type string;
+      config false;
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.LocationType";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.LocationType";
+    }
+    leaf lock-time-out-duration {
+      type uint32 {
+        range "120..86400";
+      }
+      description
+        "Device.FAP.GPS.ContinuousGPSStatus.LockTimeOutDuration";
+      reference
+        "Device.FAP.GPS.ContinuousGPSStatus.LockTimeOutDuration";
+    }
+  }
+
+  grouping fap-perf-mgmt-g {
+    description
+      "Grouping object for Device.FAP.PerfMgmt.";
+    leaf config-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.FAP.PerfMgmt.ConfigNumberOfEntries";
+      reference
+        "Device.FAP.PerfMgmt.ConfigNumberOfEntries";
+    }
+  }
+
+  grouping perf-mgmt-config-g {
+    description
+      "Grouping object for Device.FAP.PerfMgmt.Config.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.FAP.PerfMgmt.Config.{i}.Enable";
+      reference
+        "Device.FAP.PerfMgmt.Config.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.FAP.PerfMgmt.Config.{i}.Alias";
+      reference
+        "Device.FAP.PerfMgmt.Config.{i}.Alias";
+    }
+    leaf url {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.FAP.PerfMgmt.Config.{i}.URL";
+      reference
+        "Device.FAP.PerfMgmt.Config.{i}.URL";
+    }
+    leaf username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.FAP.PerfMgmt.Config.{i}.Username";
+      reference
+        "Device.FAP.PerfMgmt.Config.{i}.Username";
+    }
+    leaf periodic-upload-interval {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.FAP.PerfMgmt.Config.{i}.PeriodicUploadInterval";
+      reference
+        "Device.FAP.PerfMgmt.Config.{i}.PeriodicUploadInterval";
+    }
+    leaf periodic-upload-time {
+      type string;
+      description
+        "Device.FAP.PerfMgmt.Config.{i}.PeriodicUploadTime";
+      reference
+        "Device.FAP.PerfMgmt.Config.{i}.PeriodicUploadTime";
+    }
+  }
+
+  grouping device-fast-g {
+    description
+      "Grouping object for Device.FAST.";
+    leaf line-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.LineNumberOfEntries";
+      reference
+        "Device.FAST.LineNumberOfEntries";
+    }
+  }
+
+  grouping fast-line-g {
+    description
+      "Grouping object for Device.FAST.Line.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.FAST.Line.{i}.Enable";
+      reference
+        "Device.FAST.Line.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Status";
+      reference
+        "Device.FAST.Line.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.FAST.Line.{i}.Alias";
+      reference
+        "Device.FAST.Line.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Name";
+      reference
+        "Device.FAST.Line.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.LastChange";
+      reference
+        "Device.FAST.Line.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.FAST.Line.{i}.LowerLayers";
+      reference
+        "Device.FAST.Line.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Upstream";
+      reference
+        "Device.FAST.Line.{i}.Upstream";
+    }
+    leaf firmware-version {
+      type string;
+      config false;
+      description
+        "Device.FAST.Line.{i}.FirmwareVersion";
+      reference
+        "Device.FAST.Line.{i}.FirmwareVersion";
+    }
+    leaf link-status {
+      type string;
+      config false;
+      description
+        "Device.FAST.Line.{i}.LinkStatus";
+      reference
+        "Device.FAST.Line.{i}.LinkStatus";
+    }
+    leaf allowed-profiles {
+      type string;
+      config false;
+      description
+        "Device.FAST.Line.{i}.AllowedProfiles";
+      reference
+        "Device.FAST.Line.{i}.AllowedProfiles";
+    }
+    leaf current-profile {
+      type string;
+      config false;
+      description
+        "Device.FAST.Line.{i}.CurrentProfile";
+      reference
+        "Device.FAST.Line.{i}.CurrentProfile";
+    }
+    leaf power-management-state {
+      type string;
+      config false;
+      description
+        "Device.FAST.Line.{i}.PowerManagementState";
+      reference
+        "Device.FAST.Line.{i}.PowerManagementState";
+    }
+    leaf success-failure-cause {
+      type uint32 {
+        range "0..5";
+      }
+      config false;
+      description
+        "Device.FAST.Line.{i}.SuccessFailureCause";
+      reference
+        "Device.FAST.Line.{i}.SuccessFailureCause";
+    }
+    leaf upbokler {
+      type uint32 {
+        range "0..1280";
+      }
+      config false;
+      description
+        "Device.FAST.Line.{i}.UPBOKLER";
+      reference
+        "Device.FAST.Line.{i}.UPBOKLER";
+    }
+    leaf last-transmitted-downstream-signal {
+      type uint32 {
+        range "0..21";
+      }
+      config false;
+      description
+        "Device.FAST.Line.{i}.LastTransmittedDownstreamSignal";
+      reference
+        "Device.FAST.Line.{i}.LastTransmittedDownstreamSignal";
+    }
+    leaf last-transmitted-upstream-signal {
+      type uint32 {
+        range "0..21";
+      }
+      config false;
+      description
+        "Device.FAST.Line.{i}.LastTransmittedUpstreamSignal";
+      reference
+        "Device.FAST.Line.{i}.LastTransmittedUpstreamSignal";
+    }
+    leaf upbokle {
+      type uint32 {
+        range "0..1280";
+      }
+      config false;
+      description
+        "Device.FAST.Line.{i}.UPBOKLE";
+      reference
+        "Device.FAST.Line.{i}.UPBOKLE";
+    }
+    leaf line-number {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.LineNumber";
+      reference
+        "Device.FAST.Line.{i}.LineNumber";
+    }
+    leaf upstream-max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.UpstreamMaxBitRate";
+      reference
+        "Device.FAST.Line.{i}.UpstreamMaxBitRate";
+    }
+    leaf downstream-max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.DownstreamMaxBitRate";
+      reference
+        "Device.FAST.Line.{i}.DownstreamMaxBitRate";
+    }
+    leaf upstream-noise-margin {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.UpstreamNoiseMargin";
+      reference
+        "Device.FAST.Line.{i}.UpstreamNoiseMargin";
+    }
+    leaf downstream-noise-margin {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.DownstreamNoiseMargin";
+      reference
+        "Device.FAST.Line.{i}.DownstreamNoiseMargin";
+    }
+    leaf upstream-attenuation {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.UpstreamAttenuation";
+      reference
+        "Device.FAST.Line.{i}.UpstreamAttenuation";
+    }
+    leaf downstream-attenuation {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.DownstreamAttenuation";
+      reference
+        "Device.FAST.Line.{i}.DownstreamAttenuation";
+    }
+    leaf upstream-power {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.UpstreamPower";
+      reference
+        "Device.FAST.Line.{i}.UpstreamPower";
+    }
+    leaf downstream-power {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.DownstreamPower";
+      reference
+        "Device.FAST.Line.{i}.DownstreamPower";
+    }
+    leaf snrmrm-cds {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.SNRMRMCds";
+      reference
+        "Device.FAST.Line.{i}.SNRMRMCds";
+    }
+    leaf snrmrm-cus {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.SNRMRMCus";
+      reference
+        "Device.FAST.Line.{i}.SNRMRMCus";
+    }
+    leaf bitsrm-cpsds {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.BITSRMCpsds";
+      reference
+        "Device.FAST.Line.{i}.BITSRMCpsds";
+    }
+    leaf bitsrm-cpsus {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.BITSRMCpsus";
+      reference
+        "Device.FAST.Line.{i}.BITSRMCpsus";
+    }
+    leaf fextcance-lds {
+      type boolean;
+      config false;
+      description
+        "Device.FAST.Line.{i}.FEXTCANCELds";
+      reference
+        "Device.FAST.Line.{i}.FEXTCANCELds";
+    }
+    leaf fextcance-lus {
+      type boolean;
+      config false;
+      description
+        "Device.FAST.Line.{i}.FEXTCANCELus";
+      reference
+        "Device.FAST.Line.{i}.FEXTCANCELus";
+    }
+    leaf et-rds {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.ETRds";
+      reference
+        "Device.FAST.Line.{i}.ETRds";
+    }
+    leaf et-rus {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.ETRus";
+      reference
+        "Device.FAST.Line.{i}.ETRus";
+    }
+    leaf attet-rds {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.ATTETRds";
+      reference
+        "Device.FAST.Line.{i}.ATTETRds";
+    }
+    leaf attet-rus {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.ATTETRus";
+      reference
+        "Device.FAST.Line.{i}.ATTETRus";
+    }
+    leaf mineftr {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.MINEFTR";
+      reference
+        "Device.FAST.Line.{i}.MINEFTR";
+    }
+  }
+
+  grouping fast-line-stats-g {
+    description
+      "Grouping object for Device.FAST.Line.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.BytesSent";
+      reference
+        "Device.FAST.Line.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.BytesReceived";
+      reference
+        "Device.FAST.Line.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.PacketsSent";
+      reference
+        "Device.FAST.Line.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.PacketsReceived";
+      reference
+        "Device.FAST.Line.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.ErrorsSent";
+      reference
+        "Device.FAST.Line.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.FAST.Line.{i}.Stats.ErrorsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.FAST.Line.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.FAST.Line.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf total-start {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.TotalStart";
+      reference
+        "Device.FAST.Line.{i}.Stats.TotalStart";
+    }
+    leaf showtime-start {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.ShowtimeStart";
+      reference
+        "Device.FAST.Line.{i}.Stats.ShowtimeStart";
+    }
+    leaf last-showtime-start {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtimeStart";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtimeStart";
+    }
+    leaf current-day-start {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDayStart";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDayStart";
+    }
+    leaf quarter-hour-start {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHourStart";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHourStart";
+    }
+  }
+
+  grouping fast-line-stats-current-day-g {
+    description
+      "Grouping object for Device.FAST.Line.{i}.Stats.CurrentDay.";
+    leaf errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.ErroredSecs";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.ErroredSecs";
+    }
+    leaf severely-errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SeverelyErroredSecs";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SeverelyErroredSecs";
+    }
+    leaf loss {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.LOSS";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.LOSS";
+    }
+    leaf lors {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.LORS";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.LORS";
+    }
+    leaf uas {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.UAS";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.UAS";
+    }
+    leaf rtxuc {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.RTXUC";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.RTXUC";
+    }
+    leaf rtxtx {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.RTXTX";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.RTXTX";
+    }
+    leaf success-bsw {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SuccessBSW";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SuccessBSW";
+    }
+    leaf success-sra {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SuccessSRA";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SuccessSRA";
+    }
+    leaf success-fra {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SuccessFRA";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SuccessFRA";
+    }
+    leaf success-rpa {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SuccessRPA";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SuccessRPA";
+    }
+    leaf success-tiga {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SuccessTIGA";
+      reference
+        "Device.FAST.Line.{i}.Stats.CurrentDay.SuccessTIGA";
+    }
+  }
+
+  grouping fast-line-stats-last-showtime-g {
+    description
+      "Grouping object for Device.FAST.Line.{i}.Stats.LastShowtime.";
+    leaf errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.ErroredSecs";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.ErroredSecs";
+    }
+    leaf severely-errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SeverelyErroredSecs";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SeverelyErroredSecs";
+    }
+    leaf loss {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.LOSS";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.LOSS";
+    }
+    leaf lors {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.LORS";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.LORS";
+    }
+    leaf uas {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.UAS";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.UAS";
+    }
+    leaf rtxuc {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.RTXUC";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.RTXUC";
+    }
+    leaf rtxtx {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.RTXTX";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.RTXTX";
+    }
+    leaf success-bsw {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SuccessBSW";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SuccessBSW";
+    }
+    leaf success-sra {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SuccessSRA";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SuccessSRA";
+    }
+    leaf success-fra {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SuccessFRA";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SuccessFRA";
+    }
+    leaf success-rpa {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SuccessRPA";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SuccessRPA";
+    }
+    leaf success-tiga {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SuccessTIGA";
+      reference
+        "Device.FAST.Line.{i}.Stats.LastShowtime.SuccessTIGA";
+    }
+  }
+
+  grouping fast-line-stats-quarter-hour-g {
+    description
+      "Grouping object for Device.FAST.Line.{i}.Stats.QuarterHour.";
+    leaf errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.ErroredSecs";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.ErroredSecs";
+    }
+    leaf severely-errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SeverelyErroredSecs";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SeverelyErroredSecs";
+    }
+    leaf loss {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.LOSS";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.LOSS";
+    }
+    leaf lors {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.LORS";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.LORS";
+    }
+    leaf uas {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.UAS";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.UAS";
+    }
+    leaf rtxuc {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.RTXUC";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.RTXUC";
+    }
+    leaf rtxtx {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.RTXTX";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.RTXTX";
+    }
+    leaf success-bsw {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SuccessBSW";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SuccessBSW";
+    }
+    leaf success-sra {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SuccessSRA";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SuccessSRA";
+    }
+    leaf success-fra {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SuccessFRA";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SuccessFRA";
+    }
+    leaf success-rpa {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SuccessRPA";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SuccessRPA";
+    }
+    leaf success-tiga {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SuccessTIGA";
+      reference
+        "Device.FAST.Line.{i}.Stats.QuarterHour.SuccessTIGA";
+    }
+  }
+
+  grouping fast-line-stats-showtime-g {
+    description
+      "Grouping object for Device.FAST.Line.{i}.Stats.Showtime.";
+    leaf errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.ErroredSecs";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.ErroredSecs";
+    }
+    leaf severely-errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.SeverelyErroredSecs";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.SeverelyErroredSecs";
+    }
+    leaf loss {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.LOSS";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.LOSS";
+    }
+    leaf lors {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.LORS";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.LORS";
+    }
+    leaf uas {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.UAS";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.UAS";
+    }
+    leaf rtxuc {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.RTXUC";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.RTXUC";
+    }
+    leaf rtxtx {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.RTXTX";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.RTXTX";
+    }
+    leaf success-bsw {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.SuccessBSW";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.SuccessBSW";
+    }
+    leaf success-sra {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.SuccessSRA";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.SuccessSRA";
+    }
+    leaf success-fra {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.SuccessFRA";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.SuccessFRA";
+    }
+    leaf success-rpa {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.SuccessRPA";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.SuccessRPA";
+    }
+    leaf success-tiga {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Showtime.SuccessTIGA";
+      reference
+        "Device.FAST.Line.{i}.Stats.Showtime.SuccessTIGA";
+    }
+  }
+
+  grouping fast-line-stats-total-g {
+    description
+      "Grouping object for Device.FAST.Line.{i}.Stats.Total.";
+    leaf errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.ErroredSecs";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.ErroredSecs";
+    }
+    leaf severely-errored-secs {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.SeverelyErroredSecs";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.SeverelyErroredSecs";
+    }
+    leaf loss {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.LOSS";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.LOSS";
+    }
+    leaf lors {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.LORS";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.LORS";
+    }
+    leaf uas {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.UAS";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.UAS";
+    }
+    leaf rtxuc {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.RTXUC";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.RTXUC";
+    }
+    leaf rtxtx {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.RTXTX";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.RTXTX";
+    }
+    leaf success-bsw {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.SuccessBSW";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.SuccessBSW";
+    }
+    leaf success-sra {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.SuccessSRA";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.SuccessSRA";
+    }
+    leaf success-fra {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.SuccessFRA";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.SuccessFRA";
+    }
+    leaf success-rpa {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.SuccessRPA";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.SuccessRPA";
+    }
+    leaf success-tiga {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.Stats.Total.SuccessTIGA";
+      reference
+        "Device.FAST.Line.{i}.Stats.Total.SuccessTIGA";
+    }
+  }
+
+  grouping fast-line-test-params-g {
+    description
+      "Grouping object for Device.FAST.Line.{i}.TestParams.";
+    leaf snr-gds {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.SNRGds";
+      reference
+        "Device.FAST.Line.{i}.TestParams.SNRGds";
+    }
+    leaf snr-gus {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.SNRGus";
+      reference
+        "Device.FAST.Line.{i}.TestParams.SNRGus";
+    }
+    leaf sn-rpsds {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.SNRpsds";
+      reference
+        "Device.FAST.Line.{i}.TestParams.SNRpsds";
+    }
+    leaf sn-rpsus {
+      type string;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.SNRpsus";
+      reference
+        "Device.FAST.Line.{i}.TestParams.SNRpsus";
+    }
+    leaf snrm-tds {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.SNRMTds";
+      reference
+        "Device.FAST.Line.{i}.TestParams.SNRMTds";
+    }
+    leaf snrm-tus {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.SNRMTus";
+      reference
+        "Device.FAST.Line.{i}.TestParams.SNRMTus";
+    }
+    leaf actinp {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.ACTINP";
+      reference
+        "Device.FAST.Line.{i}.TestParams.ACTINP";
+    }
+    leaf nfec {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.NFEC";
+      reference
+        "Device.FAST.Line.{i}.TestParams.NFEC";
+    }
+    leaf rfec {
+      type int32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.RFEC";
+      reference
+        "Device.FAST.Line.{i}.TestParams.RFEC";
+    }
+    leaf upstream-curr-rate {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.UpstreamCurrRate";
+      reference
+        "Device.FAST.Line.{i}.TestParams.UpstreamCurrRate";
+    }
+    leaf downstream-curr-rate {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.DownstreamCurrRate";
+      reference
+        "Device.FAST.Line.{i}.TestParams.DownstreamCurrRate";
+    }
+    leaf actinprein {
+      type uint32;
+      config false;
+      description
+        "Device.FAST.Line.{i}.TestParams.ACTINPREIN";
+      reference
+        "Device.FAST.Line.{i}.TestParams.ACTINPREIN";
+    }
+  }
+
+  grouping device-fault-mgmt-g {
+    description
+      "Grouping object for Device.FaultMgmt.";
+    leaf supported-alarm-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.FaultMgmt.SupportedAlarmNumberOfEntries";
+      reference
+        "Device.FaultMgmt.SupportedAlarmNumberOfEntries";
+    }
+    leaf max-current-alarm-entries {
+      type uint32;
+      config false;
+      description
+        "Device.FaultMgmt.MaxCurrentAlarmEntries";
+      reference
+        "Device.FaultMgmt.MaxCurrentAlarmEntries";
+    }
+    leaf current-alarm-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarmNumberOfEntries";
+      reference
+        "Device.FaultMgmt.CurrentAlarmNumberOfEntries";
+    }
+    leaf history-event-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEventNumberOfEntries";
+      reference
+        "Device.FaultMgmt.HistoryEventNumberOfEntries";
+    }
+    leaf expedited-event-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEventNumberOfEntries";
+      reference
+        "Device.FaultMgmt.ExpeditedEventNumberOfEntries";
+    }
+    leaf queued-event-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEventNumberOfEntries";
+      reference
+        "Device.FaultMgmt.QueuedEventNumberOfEntries";
+    }
+  }
+
+  grouping fault-mgmt-current-alarm-g {
+    description
+      "Grouping object for Device.FaultMgmt.CurrentAlarm.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alarm-identifier {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarm.{i}.AlarmIdentifier";
+      reference
+        "Device.FaultMgmt.CurrentAlarm.{i}.AlarmIdentifier";
+    }
+    leaf alarm-raised-time {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarm.{i}.AlarmRaisedTime";
+      reference
+        "Device.FaultMgmt.CurrentAlarm.{i}.AlarmRaisedTime";
+    }
+    leaf alarm-changed-time {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarm.{i}.AlarmChangedTime";
+      reference
+        "Device.FaultMgmt.CurrentAlarm.{i}.AlarmChangedTime";
+    }
+    leaf managed-object-instance {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarm.{i}.ManagedObjectInstance";
+      reference
+        "Device.FaultMgmt.CurrentAlarm.{i}.ManagedObjectInstance";
+    }
+    leaf event-type {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarm.{i}.EventType";
+      reference
+        "Device.FaultMgmt.CurrentAlarm.{i}.EventType";
+    }
+    leaf probable-cause {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarm.{i}.ProbableCause";
+      reference
+        "Device.FaultMgmt.CurrentAlarm.{i}.ProbableCause";
+    }
+    leaf specific-problem {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarm.{i}.SpecificProblem";
+      reference
+        "Device.FaultMgmt.CurrentAlarm.{i}.SpecificProblem";
+    }
+    leaf perceived-severity {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarm.{i}.PerceivedSeverity";
+      reference
+        "Device.FaultMgmt.CurrentAlarm.{i}.PerceivedSeverity";
+    }
+    leaf additional-text {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarm.{i}.AdditionalText";
+      reference
+        "Device.FaultMgmt.CurrentAlarm.{i}.AdditionalText";
+    }
+    leaf additional-information {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.CurrentAlarm.{i}.AdditionalInformation";
+      reference
+        "Device.FaultMgmt.CurrentAlarm.{i}.AdditionalInformation";
+    }
+  }
+
+  grouping fault-mgmt-expedited-event-g {
+    description
+      "Grouping object for Device.FaultMgmt.ExpeditedEvent.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf event-time {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEvent.{i}.EventTime";
+      reference
+        "Device.FaultMgmt.ExpeditedEvent.{i}.EventTime";
+    }
+    leaf alarm-identifier {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEvent.{i}.AlarmIdentifier";
+      reference
+        "Device.FaultMgmt.ExpeditedEvent.{i}.AlarmIdentifier";
+    }
+    leaf notification-type {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEvent.{i}.NotificationType";
+      reference
+        "Device.FaultMgmt.ExpeditedEvent.{i}.NotificationType";
+    }
+    leaf managed-object-instance {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEvent.{i}.ManagedObjectInstance";
+      reference
+        "Device.FaultMgmt.ExpeditedEvent.{i}.ManagedObjectInstance";
+    }
+    leaf event-type {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEvent.{i}.EventType";
+      reference
+        "Device.FaultMgmt.ExpeditedEvent.{i}.EventType";
+    }
+    leaf probable-cause {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEvent.{i}.ProbableCause";
+      reference
+        "Device.FaultMgmt.ExpeditedEvent.{i}.ProbableCause";
+    }
+    leaf specific-problem {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEvent.{i}.SpecificProblem";
+      reference
+        "Device.FaultMgmt.ExpeditedEvent.{i}.SpecificProblem";
+    }
+    leaf perceived-severity {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEvent.{i}.PerceivedSeverity";
+      reference
+        "Device.FaultMgmt.ExpeditedEvent.{i}.PerceivedSeverity";
+    }
+    leaf additional-text {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEvent.{i}.AdditionalText";
+      reference
+        "Device.FaultMgmt.ExpeditedEvent.{i}.AdditionalText";
+    }
+    leaf additional-information {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.ExpeditedEvent.{i}.AdditionalInformation";
+      reference
+        "Device.FaultMgmt.ExpeditedEvent.{i}.AdditionalInformation";
+    }
+  }
+
+  grouping fault-mgmt-history-event-g {
+    description
+      "Grouping object for Device.FaultMgmt.HistoryEvent.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf event-time {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEvent.{i}.EventTime";
+      reference
+        "Device.FaultMgmt.HistoryEvent.{i}.EventTime";
+    }
+    leaf alarm-identifier {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEvent.{i}.AlarmIdentifier";
+      reference
+        "Device.FaultMgmt.HistoryEvent.{i}.AlarmIdentifier";
+    }
+    leaf notification-type {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEvent.{i}.NotificationType";
+      reference
+        "Device.FaultMgmt.HistoryEvent.{i}.NotificationType";
+    }
+    leaf managed-object-instance {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEvent.{i}.ManagedObjectInstance";
+      reference
+        "Device.FaultMgmt.HistoryEvent.{i}.ManagedObjectInstance";
+    }
+    leaf event-type {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEvent.{i}.EventType";
+      reference
+        "Device.FaultMgmt.HistoryEvent.{i}.EventType";
+    }
+    leaf probable-cause {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEvent.{i}.ProbableCause";
+      reference
+        "Device.FaultMgmt.HistoryEvent.{i}.ProbableCause";
+    }
+    leaf specific-problem {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEvent.{i}.SpecificProblem";
+      reference
+        "Device.FaultMgmt.HistoryEvent.{i}.SpecificProblem";
+    }
+    leaf perceived-severity {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEvent.{i}.PerceivedSeverity";
+      reference
+        "Device.FaultMgmt.HistoryEvent.{i}.PerceivedSeverity";
+    }
+    leaf additional-text {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEvent.{i}.AdditionalText";
+      reference
+        "Device.FaultMgmt.HistoryEvent.{i}.AdditionalText";
+    }
+    leaf additional-information {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.HistoryEvent.{i}.AdditionalInformation";
+      reference
+        "Device.FaultMgmt.HistoryEvent.{i}.AdditionalInformation";
+    }
+  }
+
+  grouping fault-mgmt-queued-event-g {
+    description
+      "Grouping object for Device.FaultMgmt.QueuedEvent.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf event-time {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEvent.{i}.EventTime";
+      reference
+        "Device.FaultMgmt.QueuedEvent.{i}.EventTime";
+    }
+    leaf alarm-identifier {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEvent.{i}.AlarmIdentifier";
+      reference
+        "Device.FaultMgmt.QueuedEvent.{i}.AlarmIdentifier";
+    }
+    leaf notification-type {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEvent.{i}.NotificationType";
+      reference
+        "Device.FaultMgmt.QueuedEvent.{i}.NotificationType";
+    }
+    leaf managed-object-instance {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEvent.{i}.ManagedObjectInstance";
+      reference
+        "Device.FaultMgmt.QueuedEvent.{i}.ManagedObjectInstance";
+    }
+    leaf event-type {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEvent.{i}.EventType";
+      reference
+        "Device.FaultMgmt.QueuedEvent.{i}.EventType";
+    }
+    leaf probable-cause {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEvent.{i}.ProbableCause";
+      reference
+        "Device.FaultMgmt.QueuedEvent.{i}.ProbableCause";
+    }
+    leaf specific-problem {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEvent.{i}.SpecificProblem";
+      reference
+        "Device.FaultMgmt.QueuedEvent.{i}.SpecificProblem";
+    }
+    leaf perceived-severity {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEvent.{i}.PerceivedSeverity";
+      reference
+        "Device.FaultMgmt.QueuedEvent.{i}.PerceivedSeverity";
+    }
+    leaf additional-text {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEvent.{i}.AdditionalText";
+      reference
+        "Device.FaultMgmt.QueuedEvent.{i}.AdditionalText";
+    }
+    leaf additional-information {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.QueuedEvent.{i}.AdditionalInformation";
+      reference
+        "Device.FaultMgmt.QueuedEvent.{i}.AdditionalInformation";
+    }
+  }
+
+  grouping fault-mgmt-supported-alarm-g {
+    description
+      "Grouping object for Device.FaultMgmt.SupportedAlarm.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf event-type {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.SupportedAlarm.{i}.EventType";
+      reference
+        "Device.FaultMgmt.SupportedAlarm.{i}.EventType";
+    }
+    leaf probable-cause {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.SupportedAlarm.{i}.ProbableCause";
+      reference
+        "Device.FaultMgmt.SupportedAlarm.{i}.ProbableCause";
+    }
+    leaf specific-problem {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.SupportedAlarm.{i}.SpecificProblem";
+      reference
+        "Device.FaultMgmt.SupportedAlarm.{i}.SpecificProblem";
+    }
+    leaf perceived-severity {
+      type string;
+      config false;
+      description
+        "Device.FaultMgmt.SupportedAlarm.{i}.PerceivedSeverity";
+      reference
+        "Device.FaultMgmt.SupportedAlarm.{i}.PerceivedSeverity";
+    }
+    leaf reporting-mechanism {
+      type enumeration {
+        enum "0 Expedited" {
+          description
+            "Enum Value - 0 Expedited";
+        }
+        enum "1 Queued" {
+          description
+            "Enum Value - 1 Queued";
+        }
+        enum "2 Logged" {
+          description
+            "Enum Value - 2 Logged";
+        }
+        enum "3 Disabled" {
+          description
+            "Enum Value - 3 Disabled";
+        }
+      }
+      description
+        "Device.FaultMgmt.SupportedAlarm.{i}.ReportingMechanism";
+      reference
+        "Device.FaultMgmt.SupportedAlarm.{i}.ReportingMechanism";
+    }
+  }
+
+  grouping device-firewall-g {
+    description
+      "Grouping object for Device.Firewall.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.Firewall.Enable";
+      reference
+        "Device.Firewall.Enable";
+    }
+    leaf config {
+      type enumeration {
+        enum High {
+          description
+            "Enum Value - High";
+        }
+        enum Low {
+          description
+            "Enum Value - Low";
+        }
+        enum Off {
+          description
+            "Enum Value - Off";
+        }
+        enum Advanced {
+          description
+            "Enum Value - Advanced";
+        }
+      }
+      description
+        "Device.Firewall.Config";
+      reference
+        "Device.Firewall.Config";
+    }
+    leaf advanced-level {
+      type string;
+      description
+        "Device.Firewall.AdvancedLevel";
+      reference
+        "Device.Firewall.AdvancedLevel";
+    }
+    leaf type {
+      type string;
+      config false;
+      description
+        "Device.Firewall.Type";
+      reference
+        "Device.Firewall.Type";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.Firewall.Version";
+      reference
+        "Device.Firewall.Version";
+    }
+    leaf last-change {
+      type string;
+      config false;
+      description
+        "Device.Firewall.LastChange";
+      reference
+        "Device.Firewall.LastChange";
+    }
+    leaf level-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Firewall.LevelNumberOfEntries";
+      reference
+        "Device.Firewall.LevelNumberOfEntries";
+    }
+    leaf chain-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Firewall.ChainNumberOfEntries";
+      reference
+        "Device.Firewall.ChainNumberOfEntries";
+    }
+  }
+
+  grouping firewall-chain-g {
+    description
+      "Grouping object for Device.Firewall.Chain.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Enable";
+      reference
+        "Device.Firewall.Chain.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Alias";
+      reference
+        "Device.Firewall.Chain.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Name";
+      reference
+        "Device.Firewall.Chain.{i}.Name";
+    }
+    leaf creator {
+      type string;
+      config false;
+      description
+        "Device.Firewall.Chain.{i}.Creator";
+      reference
+        "Device.Firewall.Chain.{i}.Creator";
+    }
+    leaf rule-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Firewall.Chain.{i}.RuleNumberOfEntries";
+      reference
+        "Device.Firewall.Chain.{i}.RuleNumberOfEntries";
+    }
+  }
+
+  grouping chain-rule-g {
+    description
+      "Grouping object for Device.Firewall.Chain.{i}.Rule.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.Enable";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.Status";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.Status";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.Order";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.Order";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.Alias";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.Alias";
+    }
+    leaf description {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.Description";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.Description";
+    }
+    leaf target {
+      type enumeration {
+        enum Drop {
+          description
+            "Enum Value - Drop";
+        }
+        enum Accept {
+          description
+            "Enum Value - Accept";
+        }
+        enum Reject {
+          description
+            "Enum Value - Reject";
+        }
+        enum Return {
+          description
+            "Enum Value - Return";
+        }
+        enum TargetChain {
+          description
+            "Enum Value - TargetChain";
+        }
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.Target";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.Target";
+    }
+    leaf target-chain {
+      type string;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.TargetChain";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.TargetChain";
+    }
+    leaf log {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.Log";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.Log";
+    }
+    leaf creation-date {
+      type string;
+      config false;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.CreationDate";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.CreationDate";
+    }
+    leaf expiry-date {
+      type string;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.ExpiryDate";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.ExpiryDate";
+    }
+    leaf source-interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceInterface";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceInterface";
+    }
+    leaf source-interface-exclude {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceInterfaceExclude";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceInterfaceExclude";
+    }
+    leaf source-all-interfaces {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceAllInterfaces";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceAllInterfaces";
+    }
+    leaf dest-interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestInterface";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestInterface";
+    }
+    leaf dest-interface-exclude {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestInterfaceExclude";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestInterfaceExclude";
+    }
+    leaf dest-all-interfaces {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestAllInterfaces";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestAllInterfaces";
+    }
+    leaf ip-version {
+      type int32 {
+        range "-1..15";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.IPVersion";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.IPVersion";
+    }
+    leaf dest-ip {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestIP";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestIP";
+    }
+    leaf dest-mask {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestMask";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestMask";
+    }
+    leaf dest-ip-exclude {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestIPExclude";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestIPExclude";
+    }
+    leaf source-ip {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceIP";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceIP";
+    }
+    leaf source-mask {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceMask";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceMask";
+    }
+    leaf source-ip-exclude {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceIPExclude";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourceIPExclude";
+    }
+    leaf protocol {
+      type int32 {
+        range "-1..255";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.Protocol";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.Protocol";
+    }
+    leaf protocol-exclude {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.ProtocolExclude";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.ProtocolExclude";
+    }
+    leaf dest-port {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestPort";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestPort";
+    }
+    leaf dest-port-range-max {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestPortRangeMax";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestPortRangeMax";
+    }
+    leaf dest-port-exclude {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestPortExclude";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DestPortExclude";
+    }
+    leaf source-port {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourcePort";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourcePort";
+    }
+    leaf source-port-range-max {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourcePortRangeMax";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourcePortRangeMax";
+    }
+    leaf source-port-exclude {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourcePortExclude";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.SourcePortExclude";
+    }
+    leaf dscp {
+      type int32 {
+        range "-1..63";
+      }
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DSCP";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DSCP";
+    }
+    leaf dscp-exclude {
+      type boolean;
+      description
+        "Device.Firewall.Chain.{i}.Rule.{i}.DSCPExclude";
+      reference
+        "Device.Firewall.Chain.{i}.Rule.{i}.DSCPExclude";
+    }
+  }
+
+  grouping firewall-level-g {
+    description
+      "Grouping object for Device.Firewall.Level.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Firewall.Level.{i}.Alias";
+      reference
+        "Device.Firewall.Level.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Firewall.Level.{i}.Name";
+      reference
+        "Device.Firewall.Level.{i}.Name";
+    }
+    leaf description {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Firewall.Level.{i}.Description";
+      reference
+        "Device.Firewall.Level.{i}.Description";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.Firewall.Level.{i}.Order";
+      reference
+        "Device.Firewall.Level.{i}.Order";
+    }
+    leaf chain {
+      type string;
+      config false;
+      description
+        "Device.Firewall.Level.{i}.Chain";
+      reference
+        "Device.Firewall.Level.{i}.Chain";
+    }
+    leaf port-mapping-enabled {
+      type boolean;
+      description
+        "Device.Firewall.Level.{i}.PortMappingEnabled";
+      reference
+        "Device.Firewall.Level.{i}.PortMappingEnabled";
+    }
+    leaf default-policy {
+      type enumeration {
+        enum Drop {
+          description
+            "Enum Value - Drop";
+        }
+        enum Accept {
+          description
+            "Enum Value - Accept";
+        }
+        enum Reject {
+          description
+            "Enum Value - Reject";
+        }
+      }
+      description
+        "Device.Firewall.Level.{i}.DefaultPolicy";
+      reference
+        "Device.Firewall.Level.{i}.DefaultPolicy";
+    }
+    leaf default-log-policy {
+      type boolean;
+      description
+        "Device.Firewall.Level.{i}.DefaultLogPolicy";
+      reference
+        "Device.Firewall.Level.{i}.DefaultLogPolicy";
+    }
+  }
+
+  grouping device-gre-g {
+    description
+      "Grouping object for Device.GRE.";
+    leaf tunnel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.TunnelNumberOfEntries";
+      reference
+        "Device.GRE.TunnelNumberOfEntries";
+    }
+    leaf filter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.FilterNumberOfEntries";
+      reference
+        "Device.GRE.FilterNumberOfEntries";
+    }
+  }
+
+  grouping gre-filter-g {
+    description
+      "Grouping object for Device.GRE.Filter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.GRE.Filter.{i}.Enable";
+      reference
+        "Device.GRE.Filter.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.GRE.Filter.{i}.Status";
+      reference
+        "Device.GRE.Filter.{i}.Status";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.GRE.Filter.{i}.Order";
+      reference
+        "Device.GRE.Filter.{i}.Order";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.GRE.Filter.{i}.Alias";
+      reference
+        "Device.GRE.Filter.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.GRE.Filter.{i}.Interface";
+      reference
+        "Device.GRE.Filter.{i}.Interface";
+    }
+    leaf all-interfaces {
+      type boolean;
+      description
+        "Device.GRE.Filter.{i}.AllInterfaces";
+      reference
+        "Device.GRE.Filter.{i}.AllInterfaces";
+    }
+    leaf vlanid-check {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.GRE.Filter.{i}.VLANIDCheck";
+      reference
+        "Device.GRE.Filter.{i}.VLANIDCheck";
+    }
+    leaf vlanid-exclude {
+      type boolean;
+      description
+        "Device.GRE.Filter.{i}.VLANIDExclude";
+      reference
+        "Device.GRE.Filter.{i}.VLANIDExclude";
+    }
+    leaf dscp-mark-policy {
+      type int32 {
+        range "-2..63";
+      }
+      description
+        "Device.GRE.Filter.{i}.DSCPMarkPolicy";
+      reference
+        "Device.GRE.Filter.{i}.DSCPMarkPolicy";
+    }
+  }
+
+  grouping gre-tunnel-g {
+    description
+      "Grouping object for Device.GRE.Tunnel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.GRE.Tunnel.{i}.Enable";
+      reference
+        "Device.GRE.Tunnel.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Status";
+      reference
+        "Device.GRE.Tunnel.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.GRE.Tunnel.{i}.Alias";
+      reference
+        "Device.GRE.Tunnel.{i}.Alias";
+    }
+    leaf remote-endpoints {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.GRE.Tunnel.{i}.RemoteEndpoints";
+      reference
+        "Device.GRE.Tunnel.{i}.RemoteEndpoints";
+    }
+    leaf keep-alive-policy {
+      type enumeration {
+        enum ICMP {
+          description
+            "Enum Value - ICMP";
+        }
+        enum None {
+          description
+            "Enum Value - None";
+        }
+      }
+      description
+        "Device.GRE.Tunnel.{i}.KeepAlivePolicy";
+      reference
+        "Device.GRE.Tunnel.{i}.KeepAlivePolicy";
+    }
+    leaf keep-alive-timeout {
+      type uint32;
+      description
+        "Device.GRE.Tunnel.{i}.KeepAliveTimeout";
+      reference
+        "Device.GRE.Tunnel.{i}.KeepAliveTimeout";
+    }
+    leaf keep-alive-threshold {
+      type uint32;
+      description
+        "Device.GRE.Tunnel.{i}.KeepAliveThreshold";
+      reference
+        "Device.GRE.Tunnel.{i}.KeepAliveThreshold";
+    }
+    leaf delivery-header-protocol {
+      type enumeration {
+        enum IPv4 {
+          description
+            "Enum Value - IPv4";
+        }
+        enum IPv6 {
+          description
+            "Enum Value - IPv6";
+        }
+      }
+      description
+        "Device.GRE.Tunnel.{i}.DeliveryHeaderProtocol";
+      reference
+        "Device.GRE.Tunnel.{i}.DeliveryHeaderProtocol";
+    }
+    leaf default-dscp-mark {
+      type uint32;
+      description
+        "Device.GRE.Tunnel.{i}.DefaultDSCPMark";
+      reference
+        "Device.GRE.Tunnel.{i}.DefaultDSCPMark";
+    }
+    leaf connected-remote-endpoint {
+      type string;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.ConnectedRemoteEndpoint";
+      reference
+        "Device.GRE.Tunnel.{i}.ConnectedRemoteEndpoint";
+    }
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.InterfaceNumberOfEntries";
+      reference
+        "Device.GRE.Tunnel.{i}.InterfaceNumberOfEntries";
+    }
+  }
+
+  grouping tunnel-interface-g {
+    description
+      "Grouping object for Device.GRE.Tunnel.{i}.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Enable";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Status";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Alias";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Name";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.LastChange";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.LowerLayers";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.LowerLayers";
+    }
+    leaf protocol-id-override {
+      type uint32;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.ProtocolIdOverride";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.ProtocolIdOverride";
+    }
+    leaf use-checksum {
+      type boolean;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.UseChecksum";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.UseChecksum";
+    }
+    leaf key-identifier-generation-policy {
+      type enumeration {
+        enum Disabled {
+          description
+            "Enum Value - Disabled";
+        }
+        enum Provisioned {
+          description
+            "Enum Value - Provisioned";
+        }
+        enum CPE_Generated {
+          description
+            "Enum Value - CPE_Generated";
+        }
+      }
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.KeyIdentifierGenerationPolicy";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.KeyIdentifierGenerationPolicy";
+    }
+    leaf key-identifier {
+      type uint32;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.KeyIdentifier";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.KeyIdentifier";
+    }
+    leaf use-sequence-number {
+      type boolean;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.UseSequenceNumber";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.UseSequenceNumber";
+    }
+  }
+
+  grouping tunnel-interface-stats-g {
+    description
+      "Grouping object for Device.GRE.Tunnel.{i}.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf discard-checksum-received {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.DiscardChecksumReceived";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.DiscardChecksumReceived";
+    }
+    leaf discard-sequence-number-received {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.DiscardSequenceNumberReceived";
+      reference
+        "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.DiscardSequenceNumberReceived";
+    }
+  }
+
+  grouping tunnel-stats-g {
+    description
+      "Grouping object for Device.GRE.Tunnel.{i}.Stats.";
+    leaf keep-alive-sent {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Stats.KeepAliveSent";
+      reference
+        "Device.GRE.Tunnel.{i}.Stats.KeepAliveSent";
+    }
+    leaf keep-alive-received {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Stats.KeepAliveReceived";
+      reference
+        "Device.GRE.Tunnel.{i}.Stats.KeepAliveReceived";
+    }
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Stats.BytesSent";
+      reference
+        "Device.GRE.Tunnel.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Stats.BytesReceived";
+      reference
+        "Device.GRE.Tunnel.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Stats.PacketsSent";
+      reference
+        "Device.GRE.Tunnel.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Stats.PacketsReceived";
+      reference
+        "Device.GRE.Tunnel.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Stats.ErrorsSent";
+      reference
+        "Device.GRE.Tunnel.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.GRE.Tunnel.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.GRE.Tunnel.{i}.Stats.ErrorsReceived";
+    }
+  }
+
+  grouping device-gateway-info-g {
+    description
+      "Grouping object for Device.GatewayInfo.";
+    leaf manufacturer-oui {
+      type string;
+      config false;
+      description
+        "Device.GatewayInfo.ManufacturerOUI";
+      reference
+        "Device.GatewayInfo.ManufacturerOUI";
+    }
+    leaf product-class {
+      type string;
+      config false;
+      description
+        "Device.GatewayInfo.ProductClass";
+      reference
+        "Device.GatewayInfo.ProductClass";
+    }
+    leaf serial-number {
+      type string;
+      config false;
+      description
+        "Device.GatewayInfo.SerialNumber";
+      reference
+        "Device.GatewayInfo.SerialNumber";
+    }
+  }
+
+  grouping device-ghn-g {
+    description
+      "Grouping object for Device.Ghn.";
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.InterfaceNumberOfEntries";
+      reference
+        "Device.Ghn.InterfaceNumberOfEntries";
+    }
+  }
+
+  grouping diagnostics-phy-throughput-g {
+    description
+      "Grouping object for Device.Ghn.Diagnostics.PHYThroughput.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Canceled {
+          description
+            "Enum Value - Canceled";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error {
+          description
+            "Enum Value - Error";
+        }
+      }
+      description
+        "Device.Ghn.Diagnostics.PHYThroughput.DiagnosticsState";
+      reference
+        "Device.Ghn.Diagnostics.PHYThroughput.DiagnosticsState";
+    }
+    leaf interface {
+      type string;
+      description
+        "Device.Ghn.Diagnostics.PHYThroughput.Interface";
+      reference
+        "Device.Ghn.Diagnostics.PHYThroughput.Interface";
+    }
+    leaf diagnose-mac-address {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.Ghn.Diagnostics.PHYThroughput.DiagnoseMACAddress";
+      reference
+        "Device.Ghn.Diagnostics.PHYThroughput.DiagnoseMACAddress";
+    }
+    leaf phy-throughput-result-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PHYThroughput.PHYThroughputResultNumberOfEntries";
+      reference
+        "Device.Ghn.Diagnostics.PHYThroughput.PHYThroughputResultNumberOfEntries";
+    }
+  }
+
+  grouping phy-throughput-result-g {
+    description
+      "Grouping object for Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf destination-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.DestinationMACAddress";
+      reference
+        "Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.DestinationMACAddress";
+    }
+    leaf link-state {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.LinkState";
+      reference
+        "Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.LinkState";
+    }
+    leaf tx-phy-rate {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.TxPhyRate";
+      reference
+        "Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.TxPhyRate";
+    }
+    leaf rx-phy-rate {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.RxPhyRate";
+      reference
+        "Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.RxPhyRate";
+    }
+  }
+
+  grouping diagnostics-performance-monitoring-g {
+    description
+      "Grouping object for Device.Ghn.Diagnostics.PerformanceMonitoring.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Canceled {
+          description
+            "Enum Value - Canceled";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error {
+          description
+            "Enum Value - Error";
+        }
+      }
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.DiagnosticsState";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.DiagnosticsState";
+    }
+    leaf interface {
+      type string;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Interface";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Interface";
+    }
+    leaf diagnose-mac-address {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.DiagnoseMACAddress";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.DiagnoseMACAddress";
+    }
+    leaf sample-interval {
+      type uint32;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.SampleInterval";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.SampleInterval";
+    }
+    leaf snr-group-length {
+      type uint32 {
+        range "1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256";
+      }
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.SNRGroupLength";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.SNRGroupLength";
+    }
+  }
+
+  grouping performance-monitoring-channels-g {
+    description
+      "Grouping object for Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.";
+    leaf time-stamp {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.TimeStamp";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.TimeStamp";
+    }
+    leaf channel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.ChannelNumberOfEntries";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.ChannelNumberOfEntries";
+    }
+  }
+
+  grouping channels-channel-g {
+    description
+      "Grouping object for Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf destination-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.DestinationMACAddress";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.DestinationMACAddress";
+    }
+    leaf snr {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.SNR";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.SNR";
+    }
+  }
+
+  grouping performance-monitoring-nodes-g {
+    description
+      "Grouping object for Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.";
+    leaf current-start {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.CurrentStart";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.CurrentStart";
+    }
+    leaf current-end {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.CurrentEnd";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.CurrentEnd";
+    }
+    leaf node-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.NodeNumberOfEntries";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.NodeNumberOfEntries";
+    }
+  }
+
+  grouping nodes-node-g {
+    description
+      "Grouping object for Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf destination-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.DestinationMACAddress";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.DestinationMACAddress";
+    }
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BytesSent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BytesReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsSent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ErrorsSent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ErrorsReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.UnicastPacketsSent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.UnicastPacketsReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.DiscardPacketsSent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.DiscardPacketsReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MulticastPacketsSent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MulticastPacketsReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsSent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.UnknownProtoPacketsReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.UnknownProtoPacketsReceived";
+    }
+    leaf mgmt-bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MgmtBytesSent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MgmtBytesSent";
+    }
+    leaf mgmt-bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MgmtBytesReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MgmtBytesReceived";
+    }
+    leaf mgmt-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MgmtPacketsSent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MgmtPacketsSent";
+    }
+    leaf mgmt-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MgmtPacketsReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MgmtPacketsReceived";
+    }
+    leaf blocks-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BlocksSent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BlocksSent";
+    }
+    leaf blocks-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BlocksReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BlocksReceived";
+    }
+    leaf blocks-resent {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BlocksResent";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BlocksResent";
+    }
+    leaf blocks-errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BlocksErrorsReceived";
+      reference
+        "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BlocksErrorsReceived";
+    }
+  }
+
+  grouping ghn-interface-g {
+    description
+      "Grouping object for Device.Ghn.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Ghn.Interface.{i}.Enable";
+      reference
+        "Device.Ghn.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Status";
+      reference
+        "Device.Ghn.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Ghn.Interface.{i}.Alias";
+      reference
+        "Device.Ghn.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Name";
+      reference
+        "Device.Ghn.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.LastChange";
+      reference
+        "Device.Ghn.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.Ghn.Interface.{i}.LowerLayers";
+      reference
+        "Device.Ghn.Interface.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Upstream";
+      reference
+        "Device.Ghn.Interface.{i}.Upstream";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.MACAddress";
+      reference
+        "Device.Ghn.Interface.{i}.MACAddress";
+    }
+    leaf firmware-version {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.FirmwareVersion";
+      reference
+        "Device.Ghn.Interface.{i}.FirmwareVersion";
+    }
+    leaf connection-type {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.ConnectionType";
+      reference
+        "Device.Ghn.Interface.{i}.ConnectionType";
+    }
+    leaf max-transmit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.MaxTransmitRate";
+      reference
+        "Device.Ghn.Interface.{i}.MaxTransmitRate";
+    }
+    leaf target-domain-names {
+      type string {
+        length "min..32";
+      }
+      description
+        "Device.Ghn.Interface.{i}.TargetDomainNames";
+      reference
+        "Device.Ghn.Interface.{i}.TargetDomainNames";
+    }
+    leaf domain-name {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.DomainName";
+      reference
+        "Device.Ghn.Interface.{i}.DomainName";
+    }
+    leaf domain-name-identifier {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.DomainNameIdentifier";
+      reference
+        "Device.Ghn.Interface.{i}.DomainNameIdentifier";
+    }
+    leaf domain-id {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.DomainId";
+      reference
+        "Device.Ghn.Interface.{i}.DomainId";
+    }
+    leaf device-id {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.DeviceId";
+      reference
+        "Device.Ghn.Interface.{i}.DeviceId";
+    }
+    leaf max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.MaxBitRate";
+      reference
+        "Device.Ghn.Interface.{i}.MaxBitRate";
+    }
+    leaf node-type-dm-capable {
+      type boolean;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.NodeTypeDMCapable";
+      reference
+        "Device.Ghn.Interface.{i}.NodeTypeDMCapable";
+    }
+    leaf dm-requested {
+      type boolean;
+      description
+        "Device.Ghn.Interface.{i}.DMRequested";
+      reference
+        "Device.Ghn.Interface.{i}.DMRequested";
+    }
+    leaf is-dm {
+      type boolean;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.IsDM";
+      reference
+        "Device.Ghn.Interface.{i}.IsDM";
+    }
+    leaf node-type-sc-capable {
+      type boolean;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.NodeTypeSCCapable";
+      reference
+        "Device.Ghn.Interface.{i}.NodeTypeSCCapable";
+    }
+    leaf sc-requested {
+      type boolean;
+      description
+        "Device.Ghn.Interface.{i}.SCRequested";
+      reference
+        "Device.Ghn.Interface.{i}.SCRequested";
+    }
+    leaf is-sc {
+      type boolean;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.IsSC";
+      reference
+        "Device.Ghn.Interface.{i}.IsSC";
+    }
+    leaf standard-versions {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.StandardVersions";
+      reference
+        "Device.Ghn.Interface.{i}.StandardVersions";
+    }
+    leaf max-band-plan {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.MaxBandPlan";
+      reference
+        "Device.Ghn.Interface.{i}.MaxBandPlan";
+    }
+    leaf medium-type {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.MediumType";
+      reference
+        "Device.Ghn.Interface.{i}.MediumType";
+    }
+    leaf taifg {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.TAIFG";
+      reference
+        "Device.Ghn.Interface.{i}.TAIFG";
+    }
+    leaf notched-amateur-radio-bands {
+      type string {
+        length "min..2";
+      }
+      description
+        "Device.Ghn.Interface.{i}.NotchedAmateurRadioBands";
+      reference
+        "Device.Ghn.Interface.{i}.NotchedAmateurRadioBands";
+    }
+    leaf phy-throughput-diagnostics-enable {
+      type string;
+      description
+        "Device.Ghn.Interface.{i}.PHYThroughputDiagnosticsEnable";
+      reference
+        "Device.Ghn.Interface.{i}.PHYThroughputDiagnosticsEnable";
+    }
+    leaf performance-monitoring-diagnostics-enable {
+      type string;
+      description
+        "Device.Ghn.Interface.{i}.PerformanceMonitoringDiagnosticsEnable";
+      reference
+        "Device.Ghn.Interface.{i}.PerformanceMonitoringDiagnosticsEnable";
+    }
+    leaf sm-masked-band-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.SMMaskedBandNumberOfEntries";
+      reference
+        "Device.Ghn.Interface.{i}.SMMaskedBandNumberOfEntries";
+    }
+    leaf node-type-dm-config {
+      type boolean;
+      description
+        "Device.Ghn.Interface.{i}.NodeTypeDMConfig";
+      reference
+        "Device.Ghn.Interface.{i}.NodeTypeDMConfig";
+    }
+    leaf node-type-dm-status {
+      type boolean;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.NodeTypeDMStatus";
+      reference
+        "Device.Ghn.Interface.{i}.NodeTypeDMStatus";
+    }
+    leaf node-type-sc-status {
+      type boolean;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.NodeTypeSCStatus";
+      reference
+        "Device.Ghn.Interface.{i}.NodeTypeSCStatus";
+    }
+    leaf associated-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.AssociatedDeviceNumberOfEntries";
+      reference
+        "Device.Ghn.Interface.{i}.AssociatedDeviceNumberOfEntries";
+    }
+    leaf psm {
+      type uint32 {
+        range "min..max";
+      }
+      description
+        "Device.Ghn.Interface.{i}.PSM";
+      reference
+        "Device.Ghn.Interface.{i}.PSM";
+    }
+  }
+
+  grouping interface-associated-device-g {
+    description
+      "Grouping object for Device.Ghn.Interface.{i}.AssociatedDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.MACAddress";
+      reference
+        "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.MACAddress";
+    }
+    leaf device-id {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.DeviceId";
+      reference
+        "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.DeviceId";
+    }
+    leaf tx-phy-rate {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.TxPhyRate";
+      reference
+        "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.TxPhyRate";
+    }
+    leaf rx-phy-rate {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.RxPhyRate";
+      reference
+        "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.RxPhyRate";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.Active";
+      reference
+        "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.Active";
+    }
+  }
+
+  grouping interface-dm-info-g {
+    description
+      "Grouping object for Device.Ghn.Interface.{i}.DMInfo.";
+    leaf domain-name {
+      type string {
+        length "min..32";
+      }
+      description
+        "Device.Ghn.Interface.{i}.DMInfo.DomainName";
+      reference
+        "Device.Ghn.Interface.{i}.DMInfo.DomainName";
+    }
+    leaf domain-name-identifier {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.DMInfo.DomainNameIdentifier";
+      reference
+        "Device.Ghn.Interface.{i}.DMInfo.DomainNameIdentifier";
+    }
+    leaf domain-id {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.DMInfo.DomainId";
+      reference
+        "Device.Ghn.Interface.{i}.DMInfo.DomainId";
+    }
+    leaf mac-cycle-duration {
+      type uint32 {
+        range "0 | 10..200";
+      }
+      description
+        "Device.Ghn.Interface.{i}.DMInfo.MACCycleDuration";
+      reference
+        "Device.Ghn.Interface.{i}.DMInfo.MACCycleDuration";
+    }
+    leaf sc-device-id {
+      type uint32;
+      description
+        "Device.Ghn.Interface.{i}.DMInfo.SCDeviceId";
+      reference
+        "Device.Ghn.Interface.{i}.DMInfo.SCDeviceId";
+    }
+    leaf scmac-address {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.Ghn.Interface.{i}.DMInfo.SCMACAddress";
+      reference
+        "Device.Ghn.Interface.{i}.DMInfo.SCMACAddress";
+    }
+    leaf reregistration-time-period {
+      type uint32 {
+        range "5..63";
+      }
+      description
+        "Device.Ghn.Interface.{i}.DMInfo.ReregistrationTimePeriod";
+      reference
+        "Device.Ghn.Interface.{i}.DMInfo.ReregistrationTimePeriod";
+    }
+    leaf topology-periodic-interval {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "Device.Ghn.Interface.{i}.DMInfo.TopologyPeriodicInterval";
+      reference
+        "Device.Ghn.Interface.{i}.DMInfo.TopologyPeriodicInterval";
+    }
+    leaf min-supported-bandplan {
+      type uint32;
+      description
+        "Device.Ghn.Interface.{i}.DMInfo.MinSupportedBandplan";
+      reference
+        "Device.Ghn.Interface.{i}.DMInfo.MinSupportedBandplan";
+    }
+    leaf max-supported-bandplan {
+      type uint32;
+      description
+        "Device.Ghn.Interface.{i}.DMInfo.MaxSupportedBandplan";
+      reference
+        "Device.Ghn.Interface.{i}.DMInfo.MaxSupportedBandplan";
+    }
+  }
+
+  grouping interface-sc-info-g {
+    description
+      "Grouping object for Device.Ghn.Interface.{i}.SCInfo.";
+    leaf modes-supported {
+      type string;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.SCInfo.ModesSupported";
+      reference
+        "Device.Ghn.Interface.{i}.SCInfo.ModesSupported";
+    }
+    leaf mode-enabled {
+      type string;
+      description
+        "Device.Ghn.Interface.{i}.SCInfo.ModeEnabled";
+      reference
+        "Device.Ghn.Interface.{i}.SCInfo.ModeEnabled";
+    }
+    leaf mic-size {
+      type enumeration {
+        enum "4-byte MIC" {
+          description
+            "Enum Value - 4-byte MIC";
+        }
+        enum "8-byte MIC" {
+          description
+            "Enum Value - 8-byte MIC";
+        }
+        enum "16-byte MIC" {
+          description
+            "Enum Value - 16-byte MIC";
+        }
+      }
+      description
+        "Device.Ghn.Interface.{i}.SCInfo.MICSize";
+      reference
+        "Device.Ghn.Interface.{i}.SCInfo.MICSize";
+    }
+    leaf location {
+      type boolean;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.SCInfo.Location";
+      reference
+        "Device.Ghn.Interface.{i}.SCInfo.Location";
+    }
+  }
+
+  grouping interface-sm-masked-band-g {
+    description
+      "Grouping object for Device.Ghn.Interface.{i}.SMMaskedBand.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Ghn.Interface.{i}.SMMaskedBand.{i}.Enable";
+      reference
+        "Device.Ghn.Interface.{i}.SMMaskedBand.{i}.Enable";
+    }
+    leaf band-number {
+      type uint32;
+      description
+        "Device.Ghn.Interface.{i}.SMMaskedBand.{i}.BandNumber";
+      reference
+        "Device.Ghn.Interface.{i}.SMMaskedBand.{i}.BandNumber";
+    }
+    leaf start-sub-carrier {
+      type uint32;
+      description
+        "Device.Ghn.Interface.{i}.SMMaskedBand.{i}.StartSubCarrier";
+      reference
+        "Device.Ghn.Interface.{i}.SMMaskedBand.{i}.StartSubCarrier";
+    }
+    leaf stop-sub-carrier {
+      type uint32;
+      description
+        "Device.Ghn.Interface.{i}.SMMaskedBand.{i}.StopSubCarrier";
+      reference
+        "Device.Ghn.Interface.{i}.SMMaskedBand.{i}.StopSubCarrier";
+    }
+  }
+
+  grouping ghn-interface-stats-g {
+    description
+      "Grouping object for Device.Ghn.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+    leaf mgmt-bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.MgmtBytesSent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.MgmtBytesSent";
+    }
+    leaf mgmt-bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.MgmtBytesReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.MgmtBytesReceived";
+    }
+    leaf mgmt-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.MgmtPacketsSent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.MgmtPacketsSent";
+    }
+    leaf mgmt-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.MgmtPacketsReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.MgmtPacketsReceived";
+    }
+    leaf blocks-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.BlocksSent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.BlocksSent";
+    }
+    leaf blocks-received {
+      type uint64;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.BlocksReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.BlocksReceived";
+    }
+    leaf blocks-resent {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.BlocksResent";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.BlocksResent";
+    }
+    leaf blocks-errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.Ghn.Interface.{i}.Stats.BlocksErrorsReceived";
+      reference
+        "Device.Ghn.Interface.{i}.Stats.BlocksErrorsReceived";
+    }
+  }
+
+  grouping device-hpna-g {
+    description
+      "Grouping object for Device.HPNA.";
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.InterfaceNumberOfEntries";
+      reference
+        "Device.HPNA.InterfaceNumberOfEntries";
+    }
+  }
+
+  grouping hpna-diagnostics-phy-throughput-g {
+    description
+      "Grouping object for Device.HPNA.Diagnostics.PHYThroughput.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Canceled {
+          description
+            "Enum Value - Canceled";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error {
+          description
+            "Enum Value - Error";
+        }
+        enum Error_FailToEnableCert {
+          description
+            "Enum Value - Error_FailToEnableCert";
+        }
+        enum Error_CertCmdTimeout {
+          description
+            "Enum Value - Error_CertCmdTimeout";
+        }
+        enum Error_UnknownErr {
+          description
+            "Enum Value - Error_UnknownErr";
+        }
+        enum Error_UnsupportedOpcode {
+          description
+            "Enum Value - Error_UnsupportedOpcode";
+        }
+        enum Error_InvalidParam {
+          description
+            "Enum Value - Error_InvalidParam";
+        }
+        enum Error_UnsupportedCmdSegment {
+          description
+            "Enum Value - Error_UnsupportedCmdSegment";
+        }
+        enum Error_UnsupportedDataGen {
+          description
+            "Enum Value - Error_UnsupportedDataGen";
+        }
+        enum Error_InvalidSequence {
+          description
+            "Enum Value - Error_InvalidSequence";
+        }
+        enum Error_InvalidFrame {
+          description
+            "Enum Value - Error_InvalidFrame";
+        }
+        enum Eror_InvalidOpcode {
+          description
+            "Enum Value - Eror_InvalidOpcode";
+        }
+      }
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.DiagnosticsState";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.Interface";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.Interface";
+    }
+    leaf num-packets-in-burst {
+      type uint32;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.NumPacketsInBurst";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.NumPacketsInBurst";
+    }
+    leaf burst-interval {
+      type uint32;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.BurstInterval";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.BurstInterval";
+    }
+    leaf test-packet-payload-length {
+      type uint32 {
+        range "0..1480";
+      }
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.TestPacketPayloadLength";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.TestPacketPayloadLength";
+    }
+    leaf payload-encoding {
+      type uint32;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.PayloadEncoding";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.PayloadEncoding";
+    }
+    leaf payload-data-gen {
+      type uint32;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.PayloadDataGen";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.PayloadDataGen";
+    }
+    leaf payload-type {
+      type enumeration {
+        enum Pattern {
+          description
+            "Enum Value - Pattern";
+        }
+        enum IncrementByte {
+          description
+            "Enum Value - IncrementByte";
+        }
+      }
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.PayloadType";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.PayloadType";
+    }
+    leaf priority-level {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.PriorityLevel";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.PriorityLevel";
+    }
+    leaf result-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.ResultNumberOfEntries";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.ResultNumberOfEntries";
+    }
+  }
+
+  grouping diagnostics-phy-throughput-result-g {
+    description
+      "Grouping object for Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf src-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.SrcMACAddress";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.SrcMACAddress";
+    }
+    leaf dest-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.DestMACAddress";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.DestMACAddress";
+    }
+    leaf phy-rate {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.PHYRate";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.PHYRate";
+    }
+    leaf baud-rate {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.BaudRate";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.BaudRate";
+    }
+    leaf snr {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.SNR";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.SNR";
+    }
+    leaf packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.PacketsReceived";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.PacketsReceived";
+    }
+    leaf attenuation {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.Attenuation";
+      reference
+        "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.Attenuation";
+    }
+  }
+
+  grouping hpna-diagnostics-performance-monitoring-g {
+    description
+      "Grouping object for Device.HPNA.Diagnostics.PerformanceMonitoring.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Canceled {
+          description
+            "Enum Value - Canceled";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error {
+          description
+            "Enum Value - Error";
+        }
+        enum Error_SampleIntervalTooSmall {
+          description
+            "Enum Value - Error_SampleIntervalTooSmall";
+        }
+      }
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.DiagnosticsState";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Interface";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Interface";
+    }
+    leaf sample-interval {
+      type uint32;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.SampleInterval";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.SampleInterval";
+    }
+  }
+
+  grouping diagnostics-performance-monitoring-channels-g {
+    description
+      "Grouping object for Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.";
+    leaf time-stamp {
+      type string;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.TimeStamp";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.TimeStamp";
+    }
+    leaf channel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.ChannelNumberOfEntries";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.ChannelNumberOfEntries";
+    }
+  }
+
+  grouping performance-monitoring-channels-channel-g {
+    description
+      "Grouping object for Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf host-src-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.HostSrcMACAddress";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.HostSrcMACAddress";
+    }
+    leaf host-dest-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.HostDestMACAddress";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.HostDestMACAddress";
+    }
+    leaf hpna-src-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.HPNASrcMACAddress";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.HPNASrcMACAddress";
+    }
+    leaf hpna-dest-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.HPNADestMACAddress";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.HPNADestMACAddress";
+    }
+    leaf phy-rate {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.PHYRate";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.PHYRate";
+    }
+    leaf baud-rate {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.BaudRate";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.BaudRate";
+    }
+    leaf snr {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.SNR";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.SNR";
+    }
+    leaf packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.PacketsSent";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.PacketsSent";
+    }
+    leaf packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.PacketsReceived";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.PacketsReceived";
+    }
+    leaf larq-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.LARQPacketsReceived";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.LARQPacketsReceived";
+    }
+    leaf flow-spec {
+      type string;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.FlowSpec";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.FlowSpec";
+    }
+  }
+
+  grouping diagnostics-performance-monitoring-nodes-g {
+    description
+      "Grouping object for Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.";
+    leaf current-start {
+      type string;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.CurrentStart";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.CurrentStart";
+    }
+    leaf current-end {
+      type string;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.CurrentEnd";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.CurrentEnd";
+    }
+    leaf node-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.NodeNumberOfEntries";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.NodeNumberOfEntries";
+    }
+  }
+
+  grouping performance-monitoring-nodes-node-g {
+    description
+      "Grouping object for Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MACAddress";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MACAddress";
+    }
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BytesSent";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BytesReceived";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsSent";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsReceived";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsSent";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsReceived";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MulticastPacketsSent";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MulticastPacketsReceived";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MulticastPacketsReceived";
+    }
+    leaf packets-crc-errored {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsCrcErrored";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsCrcErrored";
+    }
+    leaf packets-crc-errored-host {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsCrcErroredHost";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsCrcErroredHost";
+    }
+    leaf packets-short-errored {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsShortErrored";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsShortErrored";
+    }
+    leaf packets-short-errored-host {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsShortErroredHost";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsShortErroredHost";
+    }
+    leaf rx-packets-dropped {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.RxPacketsDropped";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.RxPacketsDropped";
+    }
+    leaf tx-packets-dropped {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.TxPacketsDropped";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.TxPacketsDropped";
+    }
+    leaf control-request-local {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ControlRequestLocal";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ControlRequestLocal";
+    }
+    leaf control-reply-local {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ControlReplyLocal";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ControlReplyLocal";
+    }
+    leaf control-request-remote {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ControlRequestRemote";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ControlRequestRemote";
+    }
+    leaf control-reply-remote {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ControlReplyRemote";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.ControlReplyRemote";
+    }
+    leaf packets-sent-wire {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsSentWire";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsSentWire";
+    }
+    leaf broadcast-packets-sent-wire {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsSentWire";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsSentWire";
+    }
+    leaf multicast-packets-sent-wire {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MulticastPacketsSentWire";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.MulticastPacketsSentWire";
+    }
+    leaf packets-internal-control {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsInternalControl";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsInternalControl";
+    }
+    leaf broadcast-packets-internal-control {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsInternalControl";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.BroadcastPacketsInternalControl";
+    }
+    leaf packets-received-queued {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsReceivedQueued";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsReceivedQueued";
+    }
+    leaf packets-received-forward-unknown {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsReceivedForwardUnknown";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.PacketsReceivedForwardUnknown";
+    }
+    leaf node-utilization {
+      type uint32 {
+        range "0..1000";
+      }
+      config false;
+      description
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.NodeUtilization";
+      reference
+        "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.NodeUtilization";
+    }
+  }
+
+  grouping hpna-interface-g {
+    description
+      "Grouping object for Device.HPNA.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.HPNA.Interface.{i}.Enable";
+      reference
+        "Device.HPNA.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Status";
+      reference
+        "Device.HPNA.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.HPNA.Interface.{i}.Alias";
+      reference
+        "Device.HPNA.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Name";
+      reference
+        "Device.HPNA.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.LastChange";
+      reference
+        "Device.HPNA.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.HPNA.Interface.{i}.LowerLayers";
+      reference
+        "Device.HPNA.Interface.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Upstream";
+      reference
+        "Device.HPNA.Interface.{i}.Upstream";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.MACAddress";
+      reference
+        "Device.HPNA.Interface.{i}.MACAddress";
+    }
+    leaf firmware-version {
+      type string;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.FirmwareVersion";
+      reference
+        "Device.HPNA.Interface.{i}.FirmwareVersion";
+    }
+    leaf node-id {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.NodeID";
+      reference
+        "Device.HPNA.Interface.{i}.NodeID";
+    }
+    leaf is-master {
+      type boolean;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.IsMaster";
+      reference
+        "Device.HPNA.Interface.{i}.IsMaster";
+    }
+    leaf synced {
+      type boolean;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Synced";
+      reference
+        "Device.HPNA.Interface.{i}.Synced";
+    }
+    leaf total-sync-time {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.TotalSyncTime";
+      reference
+        "Device.HPNA.Interface.{i}.TotalSyncTime";
+    }
+    leaf max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.MaxBitRate";
+      reference
+        "Device.HPNA.Interface.{i}.MaxBitRate";
+    }
+    leaf network-utilization {
+      type uint32 {
+        range "0..1000";
+      }
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.NetworkUtilization";
+      reference
+        "Device.HPNA.Interface.{i}.NetworkUtilization";
+    }
+    leaf possible-connection-types {
+      type string;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.PossibleConnectionTypes";
+      reference
+        "Device.HPNA.Interface.{i}.PossibleConnectionTypes";
+    }
+    leaf connection-type {
+      type string;
+      description
+        "Device.HPNA.Interface.{i}.ConnectionType";
+      reference
+        "Device.HPNA.Interface.{i}.ConnectionType";
+    }
+    leaf possible-spectral-modes {
+      type string;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.PossibleSpectralModes";
+      reference
+        "Device.HPNA.Interface.{i}.PossibleSpectralModes";
+    }
+    leaf spectral-mode {
+      type string;
+      description
+        "Device.HPNA.Interface.{i}.SpectralMode";
+      reference
+        "Device.HPNA.Interface.{i}.SpectralMode";
+    }
+    leaf mtu {
+      type uint32;
+      description
+        "Device.HPNA.Interface.{i}.MTU";
+      reference
+        "Device.HPNA.Interface.{i}.MTU";
+    }
+    leaf noise-margin {
+      type uint32;
+      description
+        "Device.HPNA.Interface.{i}.NoiseMargin";
+      reference
+        "Device.HPNA.Interface.{i}.NoiseMargin";
+    }
+    leaf default-non-larqper {
+      type uint32;
+      description
+        "Device.HPNA.Interface.{i}.DefaultNonLARQPER";
+      reference
+        "Device.HPNA.Interface.{i}.DefaultNonLARQPER";
+    }
+    leaf larq-enable {
+      type boolean;
+      description
+        "Device.HPNA.Interface.{i}.LARQEnable";
+      reference
+        "Device.HPNA.Interface.{i}.LARQEnable";
+    }
+    leaf min-multicast-rate {
+      type uint32;
+      description
+        "Device.HPNA.Interface.{i}.MinMulticastRate";
+      reference
+        "Device.HPNA.Interface.{i}.MinMulticastRate";
+    }
+    leaf neg-multicast-rate {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.NegMulticastRate";
+      reference
+        "Device.HPNA.Interface.{i}.NegMulticastRate";
+    }
+    leaf master-selection-mode {
+      type enumeration {
+        enum Automatic {
+          description
+            "Enum Value - Automatic";
+        }
+        enum ForceEndpoint {
+          description
+            "Enum Value - ForceEndpoint";
+        }
+        enum ForceMaster {
+          description
+            "Enum Value - ForceMaster";
+        }
+      }
+      description
+        "Device.HPNA.Interface.{i}.MasterSelectionMode";
+      reference
+        "Device.HPNA.Interface.{i}.MasterSelectionMode";
+    }
+    leaf associated-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.AssociatedDeviceNumberOfEntries";
+      reference
+        "Device.HPNA.Interface.{i}.AssociatedDeviceNumberOfEntries";
+    }
+  }
+
+  grouping hpna-interface-associated-device-g {
+    description
+      "Grouping object for Device.HPNA.Interface.{i}.AssociatedDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.MACAddress";
+      reference
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.MACAddress";
+    }
+    leaf node-id {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.NodeID";
+      reference
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.NodeID";
+    }
+    leaf is-master {
+      type boolean;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.IsMaster";
+      reference
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.IsMaster";
+    }
+    leaf synced {
+      type boolean;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.Synced";
+      reference
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.Synced";
+    }
+    leaf total-sync-time {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.TotalSyncTime";
+      reference
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.TotalSyncTime";
+    }
+    leaf max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.MaxBitRate";
+      reference
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.MaxBitRate";
+    }
+    leaf phy-diagnostics-enable {
+      type boolean;
+      description
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.PHYDiagnosticsEnable";
+      reference
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.PHYDiagnosticsEnable";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.Active";
+      reference
+        "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.Active";
+    }
+  }
+
+  grouping interface-qo-s-g {
+    description
+      "Grouping object for Device.HPNA.Interface.{i}.QoS.";
+    leaf flow-spec-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpecNumberOfEntries";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpecNumberOfEntries";
+    }
+  }
+
+  grouping qo-s-flow-spec-g {
+    description
+      "Grouping object for Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Enable";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Status";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Alias";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Alias";
+    }
+    leaf traffic-classes {
+      type uint32;
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.TrafficClasses";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.TrafficClasses";
+    }
+    leaf flow-type {
+      type enumeration {
+        enum CBR {
+          description
+            "Enum Value - CBR";
+        }
+        enum VBR {
+          description
+            "Enum Value - VBR";
+        }
+        enum VBR-NRT {
+          description
+            "Enum Value - VBR-NRT";
+        }
+        enum BE {
+          description
+            "Enum Value - BE";
+        }
+      }
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.FlowType";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.FlowType";
+    }
+    leaf priority {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Priority";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Priority";
+    }
+    leaf latency {
+      type uint32 {
+        range "0..999";
+      }
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Latency";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Latency";
+    }
+    leaf jitter {
+      type uint32 {
+        range "0..999";
+      }
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Jitter";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Jitter";
+    }
+    leaf packet-size {
+      type uint32 {
+        range "0..max";
+      }
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.PacketSize";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.PacketSize";
+    }
+    leaf min-rate {
+      type uint32;
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.MinRate";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.MinRate";
+    }
+    leaf avg-rate {
+      type uint32;
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.AvgRate";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.AvgRate";
+    }
+    leaf max-rate {
+      type uint32;
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.MaxRate";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.MaxRate";
+    }
+    leaf per {
+      type uint32;
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.PER";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.PER";
+    }
+    leaf timeout {
+      type uint32;
+      description
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Timeout";
+      reference
+        "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.Timeout";
+    }
+  }
+
+  grouping hpna-interface-stats-g {
+    description
+      "Grouping object for Device.HPNA.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.HPNA.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.HPNA.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping device-home-plug-g {
+    description
+      "Grouping object for Device.HomePlug.";
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.InterfaceNumberOfEntries";
+      reference
+        "Device.HomePlug.InterfaceNumberOfEntries";
+    }
+  }
+
+  grouping home-plug-interface-g {
+    description
+      "Grouping object for Device.HomePlug.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.HomePlug.Interface.{i}.Enable";
+      reference
+        "Device.HomePlug.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Status";
+      reference
+        "Device.HomePlug.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.HomePlug.Interface.{i}.Alias";
+      reference
+        "Device.HomePlug.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Name";
+      reference
+        "Device.HomePlug.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.LastChange";
+      reference
+        "Device.HomePlug.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.HomePlug.Interface.{i}.LowerLayers";
+      reference
+        "Device.HomePlug.Interface.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Upstream";
+      reference
+        "Device.HomePlug.Interface.{i}.Upstream";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.MACAddress";
+      reference
+        "Device.HomePlug.Interface.{i}.MACAddress";
+    }
+    leaf logical-network {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.HomePlug.Interface.{i}.LogicalNetwork";
+      reference
+        "Device.HomePlug.Interface.{i}.LogicalNetwork";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Version";
+      reference
+        "Device.HomePlug.Interface.{i}.Version";
+    }
+    leaf firmware-version {
+      type string;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.FirmwareVersion";
+      reference
+        "Device.HomePlug.Interface.{i}.FirmwareVersion";
+    }
+    leaf force-c-co {
+      type boolean;
+      description
+        "Device.HomePlug.Interface.{i}.ForceCCo";
+      reference
+        "Device.HomePlug.Interface.{i}.ForceCCo";
+    }
+    leaf other-networks-present {
+      type string;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.OtherNetworksPresent";
+      reference
+        "Device.HomePlug.Interface.{i}.OtherNetworksPresent";
+    }
+    leaf max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.MaxBitRate";
+      reference
+        "Device.HomePlug.Interface.{i}.MaxBitRate";
+    }
+    leaf associated-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.AssociatedDeviceNumberOfEntries";
+      reference
+        "Device.HomePlug.Interface.{i}.AssociatedDeviceNumberOfEntries";
+    }
+  }
+
+  grouping home-plug-interface-associated-device-g {
+    description
+      "Grouping object for Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.MACAddress";
+      reference
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.MACAddress";
+    }
+    leaf tx-phy-rate {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.TxPhyRate";
+      reference
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.TxPhyRate";
+    }
+    leaf rx-phy-rate {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.RxPhyRate";
+      reference
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.RxPhyRate";
+    }
+    leaf snr-per-tone {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.SNRPerTone";
+      reference
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.SNRPerTone";
+    }
+    leaf avg-attenuation {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.AvgAttenuation";
+      reference
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.AvgAttenuation";
+    }
+    leaf end-station-ma-cs {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.EndStationMACs";
+      reference
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.EndStationMACs";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.Active";
+      reference
+        "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.Active";
+    }
+  }
+
+  grouping home-plug-interface-stats-g {
+    description
+      "Grouping object for Device.HomePlug.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+    leaf mpdu-tx-ack {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.MPDUTxAck";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.MPDUTxAck";
+    }
+    leaf mpdu-tx-col {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.MPDUTxCol";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.MPDUTxCol";
+    }
+    leaf mpdu-tx-failed {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.MPDUTxFailed";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.MPDUTxFailed";
+    }
+    leaf mpdu-rx-ack {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.MPDURxAck";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.MPDURxAck";
+    }
+    leaf mpdu-rx-failed {
+      type uint64;
+      config false;
+      description
+        "Device.HomePlug.Interface.{i}.Stats.MPDURxFailed";
+      reference
+        "Device.HomePlug.Interface.{i}.Stats.MPDURxFailed";
+    }
+  }
+
+  grouping device-hosts-g {
+    description
+      "Grouping object for Device.Hosts.";
+    leaf host-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Hosts.HostNumberOfEntries";
+      reference
+        "Device.Hosts.HostNumberOfEntries";
+    }
+  }
+
+  grouping hosts-host-g {
+    description
+      "Grouping object for Device.Hosts.Host.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Hosts.Host.{i}.Alias";
+      reference
+        "Device.Hosts.Host.{i}.Alias";
+    }
+    leaf phys-address {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.PhysAddress";
+      reference
+        "Device.Hosts.Host.{i}.PhysAddress";
+    }
+    leaf ip-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.Hosts.Host.{i}.IPAddress";
+      reference
+        "Device.Hosts.Host.{i}.IPAddress";
+    }
+    leaf address-source {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.AddressSource";
+      reference
+        "Device.Hosts.Host.{i}.AddressSource";
+    }
+    leaf dhcp-client {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.DHCPClient";
+      reference
+        "Device.Hosts.Host.{i}.DHCPClient";
+    }
+    leaf lease-time-remaining {
+      type int32;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.LeaseTimeRemaining";
+      reference
+        "Device.Hosts.Host.{i}.LeaseTimeRemaining";
+    }
+    leaf associated-device {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.AssociatedDevice";
+      reference
+        "Device.Hosts.Host.{i}.AssociatedDevice";
+    }
+    leaf layer1-interface {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.Layer1Interface";
+      reference
+        "Device.Hosts.Host.{i}.Layer1Interface";
+    }
+    leaf layer3-interface {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.Layer3Interface";
+      reference
+        "Device.Hosts.Host.{i}.Layer3Interface";
+    }
+    leaf vendor-class-id {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.VendorClassID";
+      reference
+        "Device.Hosts.Host.{i}.VendorClassID";
+    }
+    leaf client-id {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.ClientID";
+      reference
+        "Device.Hosts.Host.{i}.ClientID";
+    }
+    leaf user-class-id {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.UserClassID";
+      reference
+        "Device.Hosts.Host.{i}.UserClassID";
+    }
+    leaf host-name {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.HostName";
+      reference
+        "Device.Hosts.Host.{i}.HostName";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.Active";
+      reference
+        "Device.Hosts.Host.{i}.Active";
+    }
+    leaf active-last-change {
+      type string;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.ActiveLastChange";
+      reference
+        "Device.Hosts.Host.{i}.ActiveLastChange";
+    }
+    leaf ipv4-address-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.IPv4AddressNumberOfEntries";
+      reference
+        "Device.Hosts.Host.{i}.IPv4AddressNumberOfEntries";
+    }
+    leaf ipv6-address-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.IPv6AddressNumberOfEntries";
+      reference
+        "Device.Hosts.Host.{i}.IPv6AddressNumberOfEntries";
+    }
+  }
+
+  grouping host-ipv4-address-g {
+    description
+      "Grouping object for Device.Hosts.Host.{i}.IPv4Address.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf ip-address {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.Hosts.Host.{i}.IPv4Address.{i}.IPAddress";
+      reference
+        "Device.Hosts.Host.{i}.IPv4Address.{i}.IPAddress";
+    }
+  }
+
+  grouping host-ipv6-address-g {
+    description
+      "Grouping object for Device.Hosts.Host.{i}.IPv6Address.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf ip-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.Hosts.Host.{i}.IPv6Address.{i}.IPAddress";
+      reference
+        "Device.Hosts.Host.{i}.IPv6Address.{i}.IPAddress";
+    }
+  }
+
+  grouping host-wan-stats-g {
+    description
+      "Grouping object for Device.Hosts.Host.{i}.WANStats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.WANStats.BytesSent";
+      reference
+        "Device.Hosts.Host.{i}.WANStats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.WANStats.BytesReceived";
+      reference
+        "Device.Hosts.Host.{i}.WANStats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.WANStats.PacketsSent";
+      reference
+        "Device.Hosts.Host.{i}.WANStats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.WANStats.PacketsReceived";
+      reference
+        "Device.Hosts.Host.{i}.WANStats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.WANStats.ErrorsSent";
+      reference
+        "Device.Hosts.Host.{i}.WANStats.ErrorsSent";
+    }
+    leaf retrans-count {
+      type uint32;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.WANStats.RetransCount";
+      reference
+        "Device.Hosts.Host.{i}.WANStats.RetransCount";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Hosts.Host.{i}.WANStats.DiscardPacketsSent";
+      reference
+        "Device.Hosts.Host.{i}.WANStats.DiscardPacketsSent";
+    }
+  }
+
+  grouping device-ieee1905-g {
+    description
+      "Grouping object for Device.IEEE1905.";
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.Version";
+      reference
+        "Device.IEEE1905.Version";
+    }
+  }
+
+  grouping ieee1905-al-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.";
+    leaf ieee1905-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.IEEE1905Id";
+      reference
+        "Device.IEEE1905.AL.IEEE1905Id";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Status";
+      reference
+        "Device.IEEE1905.AL.Status";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.LastChange";
+      reference
+        "Device.IEEE1905.AL.LastChange";
+    }
+    leaf lower-layers {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.LowerLayers";
+      reference
+        "Device.IEEE1905.AL.LowerLayers";
+    }
+    leaf registrar-freq-band {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.RegistrarFreqBand";
+      reference
+        "Device.IEEE1905.AL.RegistrarFreqBand";
+    }
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.InterfaceNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.InterfaceNumberOfEntries";
+    }
+  }
+
+  grouping al-forwarding-table-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.ForwardingTable.";
+    leaf set-forwarding-enabled {
+      type boolean;
+      description
+        "Device.IEEE1905.AL.ForwardingTable.SetForwardingEnabled";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.SetForwardingEnabled";
+    }
+    leaf forwarding-rule-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRuleNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRuleNumberOfEntries";
+    }
+  }
+
+  grouping forwarding-table-forwarding-rule-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf interface-list {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.InterfaceList";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.InterfaceList";
+    }
+    leaf mac-destination-address {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.MACDestinationAddress";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.MACDestinationAddress";
+    }
+    leaf mac-destination-address-flag {
+      type boolean;
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.MACDestinationAddressFlag";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.MACDestinationAddressFlag";
+    }
+    leaf mac-source-address {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.MACSourceAddress";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.MACSourceAddress";
+    }
+    leaf mac-source-address-flag {
+      type boolean;
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.MACSourceAddressFlag";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.MACSourceAddressFlag";
+    }
+    leaf ether-type {
+      type uint32;
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.EtherType";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.EtherType";
+    }
+    leaf ether-type-flag {
+      type boolean;
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.EtherTypeFlag";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.EtherTypeFlag";
+    }
+    leaf vid {
+      type uint32 {
+        range "0..4095";
+      }
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.Vid";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.Vid";
+    }
+    leaf vid-flag {
+      type boolean;
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.VidFlag";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.VidFlag";
+    }
+    leaf pcp {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.PCP";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.PCP";
+    }
+    leaf pcp-flag {
+      type boolean;
+      description
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.PCPFlag";
+      reference
+        "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.PCPFlag";
+    }
+  }
+
+  grouping al-interface-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf interface-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.InterfaceId";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.InterfaceId";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Status";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Status";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.LastChange";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.LowerLayers";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.LowerLayers";
+    }
+    leaf interface-stack-reference {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.InterfaceStackReference";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.InterfaceStackReference";
+    }
+    leaf media-type {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.MediaType";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.MediaType";
+    }
+    leaf generic-phy-oui {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.GenericPhyOUI";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.GenericPhyOUI";
+    }
+    leaf generic-phy-variant {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.GenericPhyVariant";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.GenericPhyVariant";
+    }
+    leaf generic-phy-url {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.GenericPhyURL";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.GenericPhyURL";
+    }
+    leaf set-intf-power-state-enabled {
+      type boolean;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.SetIntfPowerStateEnabled";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.SetIntfPowerStateEnabled";
+    }
+    leaf power-state {
+      type enumeration {
+        enum On {
+          description
+            "Enum Value - On";
+        }
+        enum Power_Save {
+          description
+            "Enum Value - Power_Save";
+        }
+        enum Off {
+          description
+            "Enum Value - Off";
+        }
+        enum Unsupported {
+          description
+            "Enum Value - Unsupported";
+        }
+      }
+      description
+        "Device.IEEE1905.AL.Interface.{i}.PowerState";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.PowerState";
+    }
+    leaf vendor-properties-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.VendorPropertiesNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.VendorPropertiesNumberOfEntries";
+    }
+    leaf link-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.LinkNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.LinkNumberOfEntries";
+    }
+  }
+
+  grouping interface-link-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.Interface.{i}.Link.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf interface-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.InterfaceId";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.InterfaceId";
+    }
+    leaf ieee1905-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.IEEE1905Id";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.IEEE1905Id";
+    }
+    leaf media-type {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.MediaType";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.MediaType";
+    }
+    leaf generic-phy-oui {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.GenericPhyOUI";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.GenericPhyOUI";
+    }
+    leaf generic-phy-variant {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.GenericPhyVariant";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.GenericPhyVariant";
+    }
+    leaf generic-phy-url {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.GenericPhyURL";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.GenericPhyURL";
+    }
+  }
+
+  grouping link-metric-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.";
+    leaf ieee802dot1-bridge {
+      type boolean;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.IEEE802dot1Bridge";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.IEEE802dot1Bridge";
+    }
+    leaf packet-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.PacketErrors";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.PacketErrors";
+    }
+    leaf packet-errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.PacketErrorsReceived";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.PacketErrorsReceived";
+    }
+    leaf transmitted-packets {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.TransmittedPackets";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.TransmittedPackets";
+    }
+    leaf packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.PacketsReceived";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.PacketsReceived";
+    }
+    leaf mac-throughput-capacity {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.MACThroughputCapacity";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.MACThroughputCapacity";
+    }
+    leaf link-availability {
+      type uint32 {
+        range "0..100";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.LinkAvailability";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.LinkAvailability";
+    }
+    leaf phy-rate {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.PHYRate";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.PHYRate";
+    }
+    leaf rssi {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.RSSI";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.RSSI";
+    }
+  }
+
+  grouping interface-vendor-properties-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.Interface.{i}.VendorProperties.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf oui {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.VendorProperties.{i}.OUI";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.VendorProperties.{i}.OUI";
+    }
+    leaf information {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.Interface.{i}.VendorProperties.{i}.Information";
+      reference
+        "Device.IEEE1905.AL.Interface.{i}.VendorProperties.{i}.Information";
+    }
+  }
+
+  grouping al-network-topology-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.Enable";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.Status";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.Status";
+    }
+    leaf max-change-log-entries {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IEEE1905.AL.NetworkTopology.MaxChangeLogEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.MaxChangeLogEntries";
+    }
+    leaf last-change {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.LastChange";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.LastChange";
+    }
+    leaf ieee1905-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905DeviceNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905DeviceNumberOfEntries";
+    }
+    leaf change-log-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLogNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLogNumberOfEntries";
+    }
+  }
+
+  grouping network-topology-change-log-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf time-stamp {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.TimeStamp";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.TimeStamp";
+    }
+    leaf event-type {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.EventType";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.EventType";
+    }
+    leaf reporter-device-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.ReporterDeviceId";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.ReporterDeviceId";
+    }
+    leaf reporter-interface-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.ReporterInterfaceId";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.ReporterInterfaceId";
+    }
+    leaf neighbor-type {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.NeighborType";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.NeighborType";
+    }
+    leaf neighbor-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.NeighborId";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.NeighborId";
+    }
+  }
+
+  grouping network-topology-ieee1905-device-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf ieee1905-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Id";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Id";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Version";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Version";
+    }
+    leaf registrar-freq-band {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.RegistrarFreqBand";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.RegistrarFreqBand";
+    }
+    leaf friendly-name {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.FriendlyName";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.FriendlyName";
+    }
+    leaf manufacturer-name {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.ManufacturerName";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.ManufacturerName";
+    }
+    leaf manufacturer-model {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.ManufacturerModel";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.ManufacturerModel";
+    }
+    leaf control-url {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.ControlURL";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.ControlURL";
+    }
+    leaf vendor-properties-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorPropertiesNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorPropertiesNumberOfEntries";
+    }
+    leaf ipv4-address-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4AddressNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4AddressNumberOfEntries";
+    }
+    leaf ipv6-address-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6AddressNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6AddressNumberOfEntries";
+    }
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.InterfaceNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.InterfaceNumberOfEntries";
+    }
+    leaf non-ieee1905-neighbor-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905NeighborNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905NeighborNumberOfEntries";
+    }
+    leaf ieee1905-neighbor-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905NeighborNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905NeighborNumberOfEntries";
+    }
+    leaf l2-neighbor-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2NeighborNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2NeighborNumberOfEntries";
+    }
+    leaf bridging-tuple-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.BridgingTupleNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.BridgingTupleNumberOfEntries";
+    }
+  }
+
+  grouping ieee1905-device-bridging-tuple-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.BridgingTuple.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf interface-list {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.BridgingTuple.{i}.InterfaceList";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.BridgingTuple.{i}.InterfaceList";
+    }
+  }
+
+  grouping ieee1905-device-ieee1905-neighbor-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf local-interface {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.LocalInterface";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.LocalInterface";
+    }
+    leaf neighbor-device-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.NeighborDeviceId";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.NeighborDeviceId";
+    }
+    leaf metric-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.MetricNumberOfEntries";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.MetricNumberOfEntries";
+    }
+  }
+
+  grouping ieee1905-neighbor-metric-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf neighbor-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.NeighborMACAddress";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.NeighborMACAddress";
+    }
+    leaf ieee802dot1-bridge {
+      type boolean;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.IEEE802dot1Bridge";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.IEEE802dot1Bridge";
+    }
+    leaf packet-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.PacketErrors";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.PacketErrors";
+    }
+    leaf packet-errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.PacketErrorsReceived";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.PacketErrorsReceived";
+    }
+    leaf transmitted-packets {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.TransmittedPackets";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.TransmittedPackets";
+    }
+    leaf packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.PacketsReceived";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.PacketsReceived";
+    }
+    leaf mac-throughput-capacity {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.MACThroughputCapacity";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.MACThroughputCapacity";
+    }
+    leaf link-availability {
+      type uint32 {
+        range "0..100";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.LinkAvailability";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.LinkAvailability";
+    }
+    leaf phy-rate {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.PHYRate";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.PHYRate";
+    }
+    leaf rssi {
+      type uint32 {
+        range "0..255";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.RSSI";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.RSSI";
+    }
+  }
+
+  grouping ieee1905-device-ipv4-address-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.MACAddress";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.MACAddress";
+    }
+    leaf ipv4-address {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.IPv4Address";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.IPv4Address";
+    }
+    leaf ipv4-address-type {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.IPv4AddressType";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.IPv4AddressType";
+    }
+    leaf dhcp-server {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.DHCPServer";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.DHCPServer";
+    }
+  }
+
+  grouping ieee1905-device-ipv6-address-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.MACAddress";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.MACAddress";
+    }
+    leaf ipv6-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.IPv6Address";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.IPv6Address";
+    }
+    leaf ipv6-address-type {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.IPv6AddressType";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.IPv6AddressType";
+    }
+    leaf ipv6-address-origin {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.IPv6AddressOrigin";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.IPv6AddressOrigin";
+    }
+  }
+
+  grouping ieee1905-device-interface-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf interface-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.InterfaceId";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.InterfaceId";
+    }
+    leaf media-type {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.MediaType";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.MediaType";
+    }
+    leaf power-state {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.PowerState";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.PowerState";
+    }
+    leaf generic-phy-oui {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.GenericPhyOUI";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.GenericPhyOUI";
+    }
+    leaf generic-phy-variant {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.GenericPhyVariant";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.GenericPhyVariant";
+    }
+    leaf generic-phy-url {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.GenericPhyURL";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.GenericPhyURL";
+    }
+    leaf network-membership {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.NetworkMembership";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.NetworkMembership";
+    }
+    leaf role {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.Role";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.Role";
+    }
+    leaf ap-channel-band {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.APChannelBand";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.APChannelBand";
+    }
+    leaf frequency-index1 {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.FrequencyIndex1";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.FrequencyIndex1";
+    }
+    leaf frequency-index2 {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.FrequencyIndex2";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.FrequencyIndex2";
+    }
+  }
+
+  grouping ieee1905-device-l2-neighbor-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2Neighbor.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf local-interface {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2Neighbor.{i}.LocalInterface";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2Neighbor.{i}.LocalInterface";
+    }
+    leaf neighbor-interface-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2Neighbor.{i}.NeighborInterfaceId";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2Neighbor.{i}.NeighborInterfaceId";
+    }
+    leaf behind-interface-ids {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2Neighbor.{i}.BehindInterfaceIds";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2Neighbor.{i}.BehindInterfaceIds";
+    }
+  }
+
+  grouping ieee1905-device-non-ieee1905-neighbor-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905Neighbor.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf local-interface {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905Neighbor.{i}.LocalInterface";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905Neighbor.{i}.LocalInterface";
+    }
+    leaf neighbor-interface-id {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905Neighbor.{i}.NeighborInterfaceId";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905Neighbor.{i}.NeighborInterfaceId";
+    }
+  }
+
+  grouping ieee1905-device-vendor-properties-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorProperties.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf message-type {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorProperties.{i}.MessageType";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorProperties.{i}.MessageType";
+    }
+    leaf oui {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorProperties.{i}.OUI";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorProperties.{i}.OUI";
+    }
+    leaf information {
+      type string;
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorProperties.{i}.Information";
+      reference
+        "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorProperties.{i}.Information";
+    }
+  }
+
+  grouping al-networking-registrar-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.NetworkingRegistrar.";
+    leaf registrar2dot4 {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkingRegistrar.Registrar2dot4";
+      reference
+        "Device.IEEE1905.AL.NetworkingRegistrar.Registrar2dot4";
+    }
+    leaf registrar5 {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkingRegistrar.Registrar5";
+      reference
+        "Device.IEEE1905.AL.NetworkingRegistrar.Registrar5";
+    }
+    leaf registrar60 {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE1905.AL.NetworkingRegistrar.Registrar60";
+      reference
+        "Device.IEEE1905.AL.NetworkingRegistrar.Registrar60";
+    }
+  }
+
+  grouping al-security-g {
+    description
+      "Grouping object for Device.IEEE1905.AL.Security.";
+    leaf setup-method {
+      type enumeration {
+        enum UCPK {
+          description
+            "Enum Value - UCPK";
+        }
+        enum PBC {
+          description
+            "Enum Value - PBC";
+        }
+        enum NFCNK {
+          description
+            "Enum Value - NFCNK";
+        }
+      }
+      description
+        "Device.IEEE1905.AL.Security.SetupMethod";
+      reference
+        "Device.IEEE1905.AL.Security.SetupMethod";
+    }
+  }
+
+  grouping device-ieee8021x-g {
+    description
+      "Grouping object for Device.IEEE8021x.";
+    leaf supplicant-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.SupplicantNumberOfEntries";
+      reference
+        "Device.IEEE8021x.SupplicantNumberOfEntries";
+    }
+  }
+
+  grouping ieee8021x-supplicant-g {
+    description
+      "Grouping object for Device.IEEE8021x.Supplicant.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Enable";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Status";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Alias";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Interface";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Interface";
+    }
+    leaf pae-state {
+      type string;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.PAEState";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.PAEState";
+    }
+    leaf eap-identity {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IEEE8021x.Supplicant.{i}.EAPIdentity";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.EAPIdentity";
+    }
+    leaf max-start {
+      type uint32 {
+        range "1..10";
+      }
+      description
+        "Device.IEEE8021x.Supplicant.{i}.MaxStart";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.MaxStart";
+    }
+    leaf start-period {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IEEE8021x.Supplicant.{i}.StartPeriod";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.StartPeriod";
+    }
+    leaf held-period {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IEEE8021x.Supplicant.{i}.HeldPeriod";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.HeldPeriod";
+    }
+    leaf auth-period {
+      type uint32;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.AuthPeriod";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.AuthPeriod";
+    }
+    leaf authentication-capabilities {
+      type string;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.AuthenticationCapabilities";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.AuthenticationCapabilities";
+    }
+    leaf start-failure-policy {
+      type enumeration {
+        enum FailAuthentication {
+          description
+            "Enum Value - FailAuthentication";
+        }
+        enum AssumeAuthentication {
+          description
+            "Enum Value - AssumeAuthentication";
+        }
+      }
+      description
+        "Device.IEEE8021x.Supplicant.{i}.StartFailurePolicy";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.StartFailurePolicy";
+    }
+    leaf authentication-success-policy {
+      type enumeration {
+        enum NoAction {
+          description
+            "Enum Value - NoAction";
+        }
+        enum RenewConnection {
+          description
+            "Enum Value - RenewConnection";
+        }
+      }
+      description
+        "Device.IEEE8021x.Supplicant.{i}.AuthenticationSuccessPolicy";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.AuthenticationSuccessPolicy";
+    }
+  }
+
+  grouping supplicant-eapm-d5-g {
+    description
+      "Grouping object for Device.IEEE8021x.Supplicant.{i}.EAPMD5.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.EAPMD5.Enable";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.EAPMD5.Enable";
+    }
+  }
+
+  grouping supplicant-eaptls-g {
+    description
+      "Grouping object for Device.IEEE8021x.Supplicant.{i}.EAPTLS.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.EAPTLS.Enable";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.EAPTLS.Enable";
+    }
+    leaf mutual-authentication-enable {
+      type boolean;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.EAPTLS.MutualAuthenticationEnable";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.EAPTLS.MutualAuthenticationEnable";
+    }
+  }
+
+  grouping supplicant-stats-g {
+    description
+      "Grouping object for Device.IEEE8021x.Supplicant.{i}.Stats.";
+    leaf received-frames {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.ReceivedFrames";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.ReceivedFrames";
+    }
+    leaf transmitted-frames {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.TransmittedFrames";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.TransmittedFrames";
+    }
+    leaf transmitted-start-frames {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.TransmittedStartFrames";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.TransmittedStartFrames";
+    }
+    leaf transmitted-logoff-frames {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.TransmittedLogoffFrames";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.TransmittedLogoffFrames";
+    }
+    leaf transmitted-response-id-frames {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.TransmittedResponseIdFrames";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.TransmittedResponseIdFrames";
+    }
+    leaf transmitted-response-frames {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.TransmittedResponseFrames";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.TransmittedResponseFrames";
+    }
+    leaf received-request-id-frames {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.ReceivedRequestIdFrames";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.ReceivedRequestIdFrames";
+    }
+    leaf received-request-frames {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.ReceivedRequestFrames";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.ReceivedRequestFrames";
+    }
+    leaf received-invalid-frames {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.ReceivedInvalidFrames";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.ReceivedInvalidFrames";
+    }
+    leaf received-length-error-frames {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.ReceivedLengthErrorFrames";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.ReceivedLengthErrorFrames";
+    }
+    leaf last-frame-version {
+      type uint32;
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.LastFrameVersion";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.LastFrameVersion";
+    }
+    leaf last-frame-source-mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.IEEE8021x.Supplicant.{i}.Stats.LastFrameSourceMACAddress";
+      reference
+        "Device.IEEE8021x.Supplicant.{i}.Stats.LastFrameSourceMACAddress";
+    }
+  }
+
+  grouping device-ip-g {
+    description
+      "Grouping object for Device.IP.";
+    leaf ipv4-capable {
+      type boolean;
+      config false;
+      description
+        "Device.IP.IPv4Capable";
+      reference
+        "Device.IP.IPv4Capable";
+    }
+    leaf ipv4-enable {
+      type boolean;
+      description
+        "Device.IP.IPv4Enable";
+      reference
+        "Device.IP.IPv4Enable";
+    }
+    leaf ipv4-status {
+      type string;
+      config false;
+      description
+        "Device.IP.IPv4Status";
+      reference
+        "Device.IP.IPv4Status";
+    }
+    leaf ipv6-capable {
+      type boolean;
+      config false;
+      description
+        "Device.IP.IPv6Capable";
+      reference
+        "Device.IP.IPv6Capable";
+    }
+    leaf ipv6-enable {
+      type boolean;
+      description
+        "Device.IP.IPv6Enable";
+      reference
+        "Device.IP.IPv6Enable";
+    }
+    leaf ipv6-status {
+      type string;
+      config false;
+      description
+        "Device.IP.IPv6Status";
+      reference
+        "Device.IP.IPv6Status";
+    }
+    leaf ula-prefix {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.IP.ULAPrefix";
+      reference
+        "Device.IP.ULAPrefix";
+    }
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.InterfaceNumberOfEntries";
+      reference
+        "Device.IP.InterfaceNumberOfEntries";
+    }
+    leaf active-port-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.ActivePortNumberOfEntries";
+      reference
+        "Device.IP.ActivePortNumberOfEntries";
+    }
+  }
+
+  grouping ip-active-port-g {
+    description
+      "Grouping object for Device.IP.ActivePort.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf local-ip-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IP.ActivePort.{i}.LocalIPAddress";
+      reference
+        "Device.IP.ActivePort.{i}.LocalIPAddress";
+    }
+    leaf local-port {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.IP.ActivePort.{i}.LocalPort";
+      reference
+        "Device.IP.ActivePort.{i}.LocalPort";
+    }
+    leaf remote-ip-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IP.ActivePort.{i}.RemoteIPAddress";
+      reference
+        "Device.IP.ActivePort.{i}.RemoteIPAddress";
+    }
+    leaf remote-port {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.IP.ActivePort.{i}.RemotePort";
+      reference
+        "Device.IP.ActivePort.{i}.RemotePort";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IP.ActivePort.{i}.Status";
+      reference
+        "Device.IP.ActivePort.{i}.Status";
+    }
+  }
+
+  grouping ip-diagnostics-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.";
+    leaf ipv4-ping-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv4PingSupported";
+      reference
+        "Device.IP.Diagnostics.IPv4PingSupported";
+    }
+    leaf ipv6-ping-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv6PingSupported";
+      reference
+        "Device.IP.Diagnostics.IPv6PingSupported";
+    }
+    leaf ipv4-trace-route-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv4TraceRouteSupported";
+      reference
+        "Device.IP.Diagnostics.IPv4TraceRouteSupported";
+    }
+    leaf ipv6-trace-route-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv6TraceRouteSupported";
+      reference
+        "Device.IP.Diagnostics.IPv6TraceRouteSupported";
+    }
+    leaf ipv4-download-diagnostics-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv4DownloadDiagnosticsSupported";
+      reference
+        "Device.IP.Diagnostics.IPv4DownloadDiagnosticsSupported";
+    }
+    leaf ipv6-download-diagnostics-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv6DownloadDiagnosticsSupported";
+      reference
+        "Device.IP.Diagnostics.IPv6DownloadDiagnosticsSupported";
+    }
+    leaf ipv4-upload-diagnostics-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv4UploadDiagnosticsSupported";
+      reference
+        "Device.IP.Diagnostics.IPv4UploadDiagnosticsSupported";
+    }
+    leaf ipv6-upload-diagnostics-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv6UploadDiagnosticsSupported";
+      reference
+        "Device.IP.Diagnostics.IPv6UploadDiagnosticsSupported";
+    }
+    leaf ipv4-udp-echo-diagnostics-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv4UDPEchoDiagnosticsSupported";
+      reference
+        "Device.IP.Diagnostics.IPv4UDPEchoDiagnosticsSupported";
+    }
+    leaf ipv6-udp-echo-diagnostics-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv6UDPEchoDiagnosticsSupported";
+      reference
+        "Device.IP.Diagnostics.IPv6UDPEchoDiagnosticsSupported";
+    }
+    leaf ipv4-server-selection-diagnostics-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv4ServerSelectionDiagnosticsSupported";
+      reference
+        "Device.IP.Diagnostics.IPv4ServerSelectionDiagnosticsSupported";
+    }
+    leaf ipv6-server-selection-diagnostics-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPv6ServerSelectionDiagnosticsSupported";
+      reference
+        "Device.IP.Diagnostics.IPv6ServerSelectionDiagnosticsSupported";
+    }
+  }
+
+  grouping diagnostics-download-diagnostics-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.DownloadDiagnostics.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Completed {
+          description
+            "Enum Value - Completed";
+        }
+        enum Error_CannotResolveHostName {
+          description
+            "Enum Value - Error_CannotResolveHostName";
+        }
+        enum Error_NoRouteToHost {
+          description
+            "Enum Value - Error_NoRouteToHost";
+        }
+        enum Error_InitConnectionFailed {
+          description
+            "Enum Value - Error_InitConnectionFailed";
+        }
+        enum Error_NoResponse {
+          description
+            "Enum Value - Error_NoResponse";
+        }
+        enum Error_TransferFailed {
+          description
+            "Enum Value - Error_TransferFailed";
+        }
+        enum Error_PasswordRequestFailed {
+          description
+            "Enum Value - Error_PasswordRequestFailed";
+        }
+        enum Error_LoginFailed {
+          description
+            "Enum Value - Error_LoginFailed";
+        }
+        enum Error_NoTransferMode {
+          description
+            "Enum Value - Error_NoTransferMode";
+        }
+        enum Error_NoPASV {
+          description
+            "Enum Value - Error_NoPASV";
+        }
+        enum Error_IncorrectSize {
+          description
+            "Enum Value - Error_IncorrectSize";
+        }
+        enum Error_Timeout {
+          description
+            "Enum Value - Error_Timeout";
+        }
+        enum Error_Internal {
+          description
+            "Enum Value - Error_Internal";
+        }
+        enum Error_Other {
+          description
+            "Enum Value - Error_Other";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.Interface";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.Interface";
+    }
+    leaf download-url {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.DownloadURL";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.DownloadURL";
+    }
+    leaf download-transports {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.DownloadTransports";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.DownloadTransports";
+    }
+    leaf download-diagnostic-max-connections {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.DownloadDiagnosticMaxConnections";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.DownloadDiagnosticMaxConnections";
+    }
+    leaf download-diagnostics-max-incremental-result {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.DownloadDiagnosticsMaxIncrementalResult";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.DownloadDiagnosticsMaxIncrementalResult";
+    }
+    leaf dscp {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.DSCP";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.DSCP";
+    }
+    leaf ethernet-priority {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.EthernetPriority";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.EthernetPriority";
+    }
+    leaf time-based-test-duration {
+      type uint32 {
+        range "0..999";
+      }
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TimeBasedTestDuration";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TimeBasedTestDuration";
+    }
+    leaf time-based-test-measurement-interval {
+      type uint32 {
+        range "0..999";
+      }
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TimeBasedTestMeasurementInterval";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TimeBasedTestMeasurementInterval";
+    }
+    leaf time-based-test-measurement-offset {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TimeBasedTestMeasurementOffset";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TimeBasedTestMeasurementOffset";
+    }
+    leaf protocol-version {
+      type enumeration {
+        enum Any {
+          description
+            "Enum Value - Any";
+        }
+        enum IPv4 {
+          description
+            "Enum Value - IPv4";
+        }
+        enum IPv6 {
+          description
+            "Enum Value - IPv6";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.ProtocolVersion";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.ProtocolVersion";
+    }
+    leaf number-of-connections {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.NumberOfConnections";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.NumberOfConnections";
+    }
+    leaf ip-address-used {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.IPAddressUsed";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.IPAddressUsed";
+    }
+    leaf rom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.ROMTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.ROMTime";
+    }
+    leaf bom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.BOMTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.BOMTime";
+    }
+    leaf eom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.EOMTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.EOMTime";
+    }
+    leaf test-bytes-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TestBytesReceived";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TestBytesReceived";
+    }
+    leaf total-bytes-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TotalBytesReceived";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TotalBytesReceived";
+    }
+    leaf total-bytes-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TotalBytesSent";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TotalBytesSent";
+    }
+    leaf test-bytes-received-under-full-loading {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TestBytesReceivedUnderFullLoading";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TestBytesReceivedUnderFullLoading";
+    }
+    leaf total-bytes-received-under-full-loading {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TotalBytesReceivedUnderFullLoading";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TotalBytesReceivedUnderFullLoading";
+    }
+    leaf total-bytes-sent-under-full-loading {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TotalBytesSentUnderFullLoading";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TotalBytesSentUnderFullLoading";
+    }
+    leaf period-of-full-loading {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.PeriodOfFullLoading";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.PeriodOfFullLoading";
+    }
+    leaf tcp-open-request-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TCPOpenRequestTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TCPOpenRequestTime";
+    }
+    leaf tcp-open-response-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.TCPOpenResponseTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.TCPOpenResponseTime";
+    }
+    leaf per-connection-result-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResultNumberOfEntries";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResultNumberOfEntries";
+    }
+    leaf enable-per-connection-results {
+      type boolean;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.EnablePerConnectionResults";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.EnablePerConnectionResults";
+    }
+    leaf incremental-result-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResultNumberOfEntries";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResultNumberOfEntries";
+    }
+  }
+
+  grouping download-diagnostics-incremental-result-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf test-bytes-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.TestBytesReceived";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.TestBytesReceived";
+    }
+    leaf total-bytes-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.TotalBytesReceived";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.TotalBytesReceived";
+    }
+    leaf total-bytes-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.TotalBytesSent";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.TotalBytesSent";
+    }
+    leaf start-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.StartTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.StartTime";
+    }
+    leaf end-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.EndTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.EndTime";
+    }
+  }
+
+  grouping download-diagnostics-per-connection-result-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf rom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.ROMTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.ROMTime";
+    }
+    leaf bom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.BOMTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.BOMTime";
+    }
+    leaf eom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.EOMTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.EOMTime";
+    }
+    leaf test-bytes-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.TestBytesReceived";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.TestBytesReceived";
+    }
+    leaf total-bytes-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.TotalBytesReceived";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.TotalBytesReceived";
+    }
+    leaf total-bytes-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.TotalBytesSent";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.TotalBytesSent";
+    }
+    leaf tcp-open-request-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.TCPOpenRequestTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.TCPOpenRequestTime";
+    }
+    leaf tcp-open-response-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.TCPOpenResponseTime";
+      reference
+        "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.TCPOpenResponseTime";
+    }
+  }
+
+  grouping diagnostics-ip-ping-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.IPPing.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Canceled {
+          description
+            "Enum Value - Canceled";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error {
+          description
+            "Enum Value - Error";
+        }
+        enum Error_CannotResolveHostName {
+          description
+            "Enum Value - Error_CannotResolveHostName";
+        }
+        enum Error_NoRouteToHost {
+          description
+            "Enum Value - Error_NoRouteToHost";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.IPPing.DiagnosticsState";
+      reference
+        "Device.IP.Diagnostics.IPPing.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.IPPing.Interface";
+      reference
+        "Device.IP.Diagnostics.IPPing.Interface";
+    }
+    leaf protocol-version {
+      type enumeration {
+        enum Any {
+          description
+            "Enum Value - Any";
+        }
+        enum IPv4 {
+          description
+            "Enum Value - IPv4";
+        }
+        enum IPv6 {
+          description
+            "Enum Value - IPv6";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.IPPing.ProtocolVersion";
+      reference
+        "Device.IP.Diagnostics.IPPing.ProtocolVersion";
+    }
+    leaf host {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.IPPing.Host";
+      reference
+        "Device.IP.Diagnostics.IPPing.Host";
+    }
+    leaf number-of-repetitions {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IP.Diagnostics.IPPing.NumberOfRepetitions";
+      reference
+        "Device.IP.Diagnostics.IPPing.NumberOfRepetitions";
+    }
+    leaf timeout {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IP.Diagnostics.IPPing.Timeout";
+      reference
+        "Device.IP.Diagnostics.IPPing.Timeout";
+    }
+    leaf data-block-size {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.IP.Diagnostics.IPPing.DataBlockSize";
+      reference
+        "Device.IP.Diagnostics.IPPing.DataBlockSize";
+    }
+    leaf dscp {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "Device.IP.Diagnostics.IPPing.DSCP";
+      reference
+        "Device.IP.Diagnostics.IPPing.DSCP";
+    }
+    leaf ip-address-used {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IP.Diagnostics.IPPing.IPAddressUsed";
+      reference
+        "Device.IP.Diagnostics.IPPing.IPAddressUsed";
+    }
+    leaf success-count {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPPing.SuccessCount";
+      reference
+        "Device.IP.Diagnostics.IPPing.SuccessCount";
+    }
+    leaf failure-count {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPPing.FailureCount";
+      reference
+        "Device.IP.Diagnostics.IPPing.FailureCount";
+    }
+    leaf average-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPPing.AverageResponseTime";
+      reference
+        "Device.IP.Diagnostics.IPPing.AverageResponseTime";
+    }
+    leaf minimum-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPPing.MinimumResponseTime";
+      reference
+        "Device.IP.Diagnostics.IPPing.MinimumResponseTime";
+    }
+    leaf maximum-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPPing.MaximumResponseTime";
+      reference
+        "Device.IP.Diagnostics.IPPing.MaximumResponseTime";
+    }
+    leaf average-response-time-detailed {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPPing.AverageResponseTimeDetailed";
+      reference
+        "Device.IP.Diagnostics.IPPing.AverageResponseTimeDetailed";
+    }
+    leaf minimum-response-time-detailed {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPPing.MinimumResponseTimeDetailed";
+      reference
+        "Device.IP.Diagnostics.IPPing.MinimumResponseTimeDetailed";
+    }
+    leaf maximum-response-time-detailed {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.IPPing.MaximumResponseTimeDetailed";
+      reference
+        "Device.IP.Diagnostics.IPPing.MaximumResponseTimeDetailed";
+    }
+  }
+
+  grouping diagnostics-server-selection-diagnostics-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.ServerSelectionDiagnostics.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Completed {
+          description
+            "Enum Value - Completed";
+        }
+        enum Error_CannotResolveHostName {
+          description
+            "Enum Value - Error_CannotResolveHostName";
+        }
+        enum Error_Internal {
+          description
+            "Enum Value - Error_Internal";
+        }
+        enum Error_Other {
+          description
+            "Enum Value - Error_Other";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.Interface";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.Interface";
+    }
+    leaf protocol-version {
+      type enumeration {
+        enum Any {
+          description
+            "Enum Value - Any";
+        }
+        enum IPv4 {
+          description
+            "Enum Value - IPv4";
+        }
+        enum IPv6 {
+          description
+            "Enum Value - IPv6";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.ProtocolVersion";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.ProtocolVersion";
+    }
+    leaf protocol {
+      type enumeration {
+        enum ICMP {
+          description
+            "Enum Value - ICMP";
+        }
+        enum "UDP Echo" {
+          description
+            "Enum Value - UDP Echo";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.Protocol";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.Protocol";
+    }
+    leaf host-list {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.HostList";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.HostList";
+    }
+    leaf number-of-repetitions {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.NumberOfRepetitions";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.NumberOfRepetitions";
+    }
+    leaf timeout {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.Timeout";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.Timeout";
+    }
+    leaf fastest-host {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.FastestHost";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.FastestHost";
+    }
+    leaf minimum-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.MinimumResponseTime";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.MinimumResponseTime";
+    }
+    leaf average-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.AverageResponseTime";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.AverageResponseTime";
+    }
+    leaf maximum-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.MaximumResponseTime";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.MaximumResponseTime";
+    }
+    leaf ip-address-used {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.IPAddressUsed";
+      reference
+        "Device.IP.Diagnostics.ServerSelectionDiagnostics.IPAddressUsed";
+    }
+  }
+
+  grouping diagnostics-trace-route-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.TraceRoute.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Canceled {
+          description
+            "Enum Value - Canceled";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error {
+          description
+            "Enum Value - Error";
+        }
+        enum Error_MaxHopCountExceeded {
+          description
+            "Enum Value - Error_MaxHopCountExceeded";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.TraceRoute.DiagnosticsState";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.TraceRoute.Interface";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.Interface";
+    }
+    leaf protocol-version {
+      type enumeration {
+        enum Any {
+          description
+            "Enum Value - Any";
+        }
+        enum IPv4 {
+          description
+            "Enum Value - IPv4";
+        }
+        enum IPv6 {
+          description
+            "Enum Value - IPv6";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.TraceRoute.ProtocolVersion";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.ProtocolVersion";
+    }
+    leaf host {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.TraceRoute.Host";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.Host";
+    }
+    leaf number-of-tries {
+      type uint32 {
+        range "1..3";
+      }
+      description
+        "Device.IP.Diagnostics.TraceRoute.NumberOfTries";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.NumberOfTries";
+    }
+    leaf timeout {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IP.Diagnostics.TraceRoute.Timeout";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.Timeout";
+    }
+    leaf data-block-size {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.IP.Diagnostics.TraceRoute.DataBlockSize";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.DataBlockSize";
+    }
+    leaf dscp {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "Device.IP.Diagnostics.TraceRoute.DSCP";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.DSCP";
+    }
+    leaf max-hop-count {
+      type uint32 {
+        range "1..64";
+      }
+      description
+        "Device.IP.Diagnostics.TraceRoute.MaxHopCount";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.MaxHopCount";
+    }
+    leaf ip-address-used {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IP.Diagnostics.TraceRoute.IPAddressUsed";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.IPAddressUsed";
+    }
+    leaf response-time {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.TraceRoute.ResponseTime";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.ResponseTime";
+    }
+    leaf route-hops-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.TraceRoute.RouteHopsNumberOfEntries";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.RouteHopsNumberOfEntries";
+    }
+  }
+
+  grouping trace-route-route-hops-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.Host";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.Host";
+    }
+    leaf host-address {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.HostAddress";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.HostAddress";
+    }
+    leaf error-code {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.ErrorCode";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.ErrorCode";
+    }
+    leaf rt-times {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.RTTimes";
+      reference
+        "Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.RTTimes";
+    }
+  }
+
+  grouping diagnostics-udp-echo-config-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.UDPEchoConfig.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.Enable";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.Enable";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.Interface";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.Interface";
+    }
+    leaf source-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.SourceIPAddress";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.SourceIPAddress";
+    }
+    leaf udp-port {
+      type uint32;
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.UDPPort";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.UDPPort";
+    }
+    leaf echo-plus-enabled {
+      type boolean;
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.EchoPlusEnabled";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.EchoPlusEnabled";
+    }
+    leaf echo-plus-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.EchoPlusSupported";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.EchoPlusSupported";
+    }
+    leaf packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.PacketsReceived";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.PacketsReceived";
+    }
+    leaf packets-responded {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.PacketsResponded";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.PacketsResponded";
+    }
+    leaf bytes-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.BytesReceived";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.BytesReceived";
+    }
+    leaf bytes-responded {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.BytesResponded";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.BytesResponded";
+    }
+    leaf time-first-packet-received {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.TimeFirstPacketReceived";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.TimeFirstPacketReceived";
+    }
+    leaf time-last-packet-received {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoConfig.TimeLastPacketReceived";
+      reference
+        "Device.IP.Diagnostics.UDPEchoConfig.TimeLastPacketReceived";
+    }
+  }
+
+  grouping diagnostics-udp-echo-diagnostics-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.UDPEchoDiagnostics.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Completed {
+          description
+            "Enum Value - Completed";
+        }
+        enum Error_CannotResolveHostName {
+          description
+            "Enum Value - Error_CannotResolveHostName";
+        }
+        enum Error_Internal {
+          description
+            "Enum Value - Error_Internal";
+        }
+        enum Error_Other {
+          description
+            "Enum Value - Error_Other";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.Interface";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.Interface";
+    }
+    leaf host {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.Host";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.Host";
+    }
+    leaf port {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.Port";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.Port";
+    }
+    leaf number-of-repetitions {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.NumberOfRepetitions";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.NumberOfRepetitions";
+    }
+    leaf timeout {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.Timeout";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.Timeout";
+    }
+    leaf data-block-size {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.DataBlockSize";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.DataBlockSize";
+    }
+    leaf dscp {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.DSCP";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.DSCP";
+    }
+    leaf inter-transmission-time {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.InterTransmissionTime";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.InterTransmissionTime";
+    }
+    leaf protocol-version {
+      type enumeration {
+        enum Any {
+          description
+            "Enum Value - Any";
+        }
+        enum IPv4 {
+          description
+            "Enum Value - IPv4";
+        }
+        enum IPv6 {
+          description
+            "Enum Value - IPv6";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.ProtocolVersion";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.ProtocolVersion";
+    }
+    leaf ip-address-used {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IPAddressUsed";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IPAddressUsed";
+    }
+    leaf success-count {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.SuccessCount";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.SuccessCount";
+    }
+    leaf failure-count {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.FailureCount";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.FailureCount";
+    }
+    leaf average-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.AverageResponseTime";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.AverageResponseTime";
+    }
+    leaf minimum-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.MinimumResponseTime";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.MinimumResponseTime";
+    }
+    leaf maximum-response-time {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.MaximumResponseTime";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.MaximumResponseTime";
+    }
+    leaf enable-individual-packet-results {
+      type boolean;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.EnableIndividualPacketResults";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.EnableIndividualPacketResults";
+    }
+    leaf individual-packet-result-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResultNumberOfEntries";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResultNumberOfEntries";
+    }
+    leaf udp-echo-diagnostics-max-results {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.UDPEchoDiagnosticsMaxResults";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.UDPEchoDiagnosticsMaxResults";
+    }
+  }
+
+  grouping udp-echo-diagnostics-individual-packet-result-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf packet-success {
+      type boolean;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.PacketSuccess";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.PacketSuccess";
+    }
+    leaf packet-send-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.PacketSendTime";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.PacketSendTime";
+    }
+    leaf packet-receive-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.PacketReceiveTime";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.PacketReceiveTime";
+    }
+    leaf test-gen-sn {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.TestGenSN";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.TestGenSN";
+    }
+    leaf test-resp-sn {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.TestRespSN";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.TestRespSN";
+    }
+    leaf test-resp-rcv-time-stamp {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.TestRespRcvTimeStamp";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.TestRespRcvTimeStamp";
+    }
+    leaf test-resp-reply-time-stamp {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.TestRespReplyTimeStamp";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.TestRespReplyTimeStamp";
+    }
+    leaf test-resp-reply-failure-count {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.TestRespReplyFailureCount";
+      reference
+        "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.TestRespReplyFailureCount";
+    }
+  }
+
+  grouping diagnostics-upload-diagnostics-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.UploadDiagnostics.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Completed {
+          description
+            "Enum Value - Completed";
+        }
+        enum Error_CannotResolveHostName {
+          description
+            "Enum Value - Error_CannotResolveHostName";
+        }
+        enum Error_NoRouteToHost {
+          description
+            "Enum Value - Error_NoRouteToHost";
+        }
+        enum Error_InitConnectionFailed {
+          description
+            "Enum Value - Error_InitConnectionFailed";
+        }
+        enum Error_NoResponse {
+          description
+            "Enum Value - Error_NoResponse";
+        }
+        enum Error_PasswordRequestFailed {
+          description
+            "Enum Value - Error_PasswordRequestFailed";
+        }
+        enum Error_LoginFailed {
+          description
+            "Enum Value - Error_LoginFailed";
+        }
+        enum Error_NoTransferMode {
+          description
+            "Enum Value - Error_NoTransferMode";
+        }
+        enum Error_NoPASV {
+          description
+            "Enum Value - Error_NoPASV";
+        }
+        enum Error_NoCWD {
+          description
+            "Enum Value - Error_NoCWD";
+        }
+        enum Error_NoSTOR {
+          description
+            "Enum Value - Error_NoSTOR";
+        }
+        enum Error_NoTransferComplete {
+          description
+            "Enum Value - Error_NoTransferComplete";
+        }
+        enum Error_Timeout {
+          description
+            "Enum Value - Error_Timeout";
+        }
+        enum Error_Internal {
+          description
+            "Enum Value - Error_Internal";
+        }
+        enum Error_Other {
+          description
+            "Enum Value - Error_Other";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.Interface";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.Interface";
+    }
+    leaf upload-url {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.UploadURL";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.UploadURL";
+    }
+    leaf upload-transports {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.UploadTransports";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.UploadTransports";
+    }
+    leaf upload-diagnostics-max-connections {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.UploadDiagnosticsMaxConnections";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.UploadDiagnosticsMaxConnections";
+    }
+    leaf upload-diagnostics-max-incremental-result {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.UploadDiagnosticsMaxIncrementalResult";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.UploadDiagnosticsMaxIncrementalResult";
+    }
+    leaf dscp {
+      type uint32 {
+        range "0..63";
+      }
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.DSCP";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.DSCP";
+    }
+    leaf ethernet-priority {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.EthernetPriority";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.EthernetPriority";
+    }
+    leaf test-file-length {
+      type uint32;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TestFileLength";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TestFileLength";
+    }
+    leaf time-based-test-duration {
+      type uint32 {
+        range "0..999";
+      }
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TimeBasedTestDuration";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TimeBasedTestDuration";
+    }
+    leaf time-based-test-measurement-interval {
+      type uint32 {
+        range "0..999";
+      }
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TimeBasedTestMeasurementInterval";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TimeBasedTestMeasurementInterval";
+    }
+    leaf time-based-test-measurement-offset {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TimeBasedTestMeasurementOffset";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TimeBasedTestMeasurementOffset";
+    }
+    leaf protocol-version {
+      type enumeration {
+        enum Any {
+          description
+            "Enum Value - Any";
+        }
+        enum IPv4 {
+          description
+            "Enum Value - IPv4";
+        }
+        enum IPv6 {
+          description
+            "Enum Value - IPv6";
+        }
+      }
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.ProtocolVersion";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.ProtocolVersion";
+    }
+    leaf number-of-connections {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.NumberOfConnections";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.NumberOfConnections";
+    }
+    leaf ip-address-used {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.IPAddressUsed";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.IPAddressUsed";
+    }
+    leaf rom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.ROMTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.ROMTime";
+    }
+    leaf bom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.BOMTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.BOMTime";
+    }
+    leaf eom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.EOMTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.EOMTime";
+    }
+    leaf test-bytes-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TestBytesSent";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TestBytesSent";
+    }
+    leaf total-bytes-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TotalBytesReceived";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TotalBytesReceived";
+    }
+    leaf total-bytes-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TotalBytesSent";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TotalBytesSent";
+    }
+    leaf test-bytes-sent-under-full-loading {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TestBytesSentUnderFullLoading";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TestBytesSentUnderFullLoading";
+    }
+    leaf total-bytes-received-under-full-loading {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TotalBytesReceivedUnderFullLoading";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TotalBytesReceivedUnderFullLoading";
+    }
+    leaf total-bytes-sent-under-full-loading {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TotalBytesSentUnderFullLoading";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TotalBytesSentUnderFullLoading";
+    }
+    leaf period-of-full-loading {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.PeriodOfFullLoading";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.PeriodOfFullLoading";
+    }
+    leaf tcp-open-request-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TCPOpenRequestTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TCPOpenRequestTime";
+    }
+    leaf tcp-open-response-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.TCPOpenResponseTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.TCPOpenResponseTime";
+    }
+    leaf per-connection-result-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResultNumberOfEntries";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResultNumberOfEntries";
+    }
+    leaf enable-per-connection-results {
+      type boolean;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.EnablePerConnectionResults";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.EnablePerConnectionResults";
+    }
+    leaf incremental-result-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResultNumberOfEntries";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResultNumberOfEntries";
+    }
+  }
+
+  grouping upload-diagnostics-incremental-result-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf test-bytes-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.TestBytesSent";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.TestBytesSent";
+    }
+    leaf total-bytes-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.TotalBytesReceived";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.TotalBytesReceived";
+    }
+    leaf total-bytes-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.TotalBytesSent";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.TotalBytesSent";
+    }
+    leaf start-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.StartTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.StartTime";
+    }
+    leaf end-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.EndTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.EndTime";
+    }
+  }
+
+  grouping upload-diagnostics-per-connection-result-g {
+    description
+      "Grouping object for Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf rom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.ROMTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.ROMTime";
+    }
+    leaf bom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.BOMTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.BOMTime";
+    }
+    leaf eom-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.EOMTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.EOMTime";
+    }
+    leaf test-bytes-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.TestBytesSent";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.TestBytesSent";
+    }
+    leaf total-bytes-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.TotalBytesReceived";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.TotalBytesReceived";
+    }
+    leaf total-bytes-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.TotalBytesSent";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.TotalBytesSent";
+    }
+    leaf tcp-open-request-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.TCPOpenRequestTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.TCPOpenRequestTime";
+    }
+    leaf tcp-open-response-time {
+      type string;
+      config false;
+      description
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.TCPOpenResponseTime";
+      reference
+        "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.TCPOpenResponseTime";
+    }
+  }
+
+  grouping ip-interface-g {
+    description
+      "Grouping object for Device.IP.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.Enable";
+      reference
+        "Device.IP.Interface.{i}.Enable";
+    }
+    leaf ipv4-enable {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.IPv4Enable";
+      reference
+        "Device.IP.Interface.{i}.IPv4Enable";
+    }
+    leaf ipv6-enable {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.IPv6Enable";
+      reference
+        "Device.IP.Interface.{i}.IPv6Enable";
+    }
+    leaf ula-enable {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.ULAEnable";
+      reference
+        "Device.IP.Interface.{i}.ULAEnable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Status";
+      reference
+        "Device.IP.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IP.Interface.{i}.Alias";
+      reference
+        "Device.IP.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Name";
+      reference
+        "Device.IP.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Interface.{i}.LastChange";
+      reference
+        "Device.IP.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.IP.Interface.{i}.LowerLayers";
+      reference
+        "Device.IP.Interface.{i}.LowerLayers";
+    }
+    leaf router {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IP.Interface.{i}.Router";
+      reference
+        "Device.IP.Interface.{i}.Router";
+    }
+    leaf max-mtu-size {
+      type uint32 {
+        range "64..65535";
+      }
+      description
+        "Device.IP.Interface.{i}.MaxMTUSize";
+      reference
+        "Device.IP.Interface.{i}.MaxMTUSize";
+    }
+    leaf type {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Type";
+      reference
+        "Device.IP.Interface.{i}.Type";
+    }
+    leaf loopback {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.Loopback";
+      reference
+        "Device.IP.Interface.{i}.Loopback";
+    }
+    leaf ipv4-address-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv4AddressNumberOfEntries";
+      reference
+        "Device.IP.Interface.{i}.IPv4AddressNumberOfEntries";
+    }
+    leaf ipv6-address-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv6AddressNumberOfEntries";
+      reference
+        "Device.IP.Interface.{i}.IPv6AddressNumberOfEntries";
+    }
+    leaf ipv6-prefix-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv6PrefixNumberOfEntries";
+      reference
+        "Device.IP.Interface.{i}.IPv6PrefixNumberOfEntries";
+    }
+    leaf auto-ip-enable {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.AutoIPEnable";
+      reference
+        "Device.IP.Interface.{i}.AutoIPEnable";
+    }
+    leaf twamp-reflector-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Interface.{i}.TWAMPReflectorNumberOfEntries";
+      reference
+        "Device.IP.Interface.{i}.TWAMPReflectorNumberOfEntries";
+    }
+  }
+
+  grouping interface-ipv4-address-g {
+    description
+      "Grouping object for Device.IP.Interface.{i}.IPv4Address.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.IPv4Address.{i}.Enable";
+      reference
+        "Device.IP.Interface.{i}.IPv4Address.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv4Address.{i}.Status";
+      reference
+        "Device.IP.Interface.{i}.IPv4Address.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IP.Interface.{i}.IPv4Address.{i}.Alias";
+      reference
+        "Device.IP.Interface.{i}.IPv4Address.{i}.Alias";
+    }
+    leaf ip-address {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.IP.Interface.{i}.IPv4Address.{i}.IPAddress";
+      reference
+        "Device.IP.Interface.{i}.IPv4Address.{i}.IPAddress";
+    }
+    leaf subnet-mask {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.IP.Interface.{i}.IPv4Address.{i}.SubnetMask";
+      reference
+        "Device.IP.Interface.{i}.IPv4Address.{i}.SubnetMask";
+    }
+    leaf addressing-type {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv4Address.{i}.AddressingType";
+      reference
+        "Device.IP.Interface.{i}.IPv4Address.{i}.AddressingType";
+    }
+  }
+
+  grouping interface-ipv6-address-g {
+    description
+      "Grouping object for Device.IP.Interface.{i}.IPv6Address.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Enable";
+      reference
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Status";
+      reference
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Status";
+    }
+    leaf ip-address-status {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv6Address.{i}.IPAddressStatus";
+      reference
+        "Device.IP.Interface.{i}.IPv6Address.{i}.IPAddressStatus";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Alias";
+      reference
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Alias";
+    }
+    leaf ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.IP.Interface.{i}.IPv6Address.{i}.IPAddress";
+      reference
+        "Device.IP.Interface.{i}.IPv6Address.{i}.IPAddress";
+    }
+    leaf origin {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Origin";
+      reference
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Origin";
+    }
+    leaf prefix {
+      type string;
+      description
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Prefix";
+      reference
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Prefix";
+    }
+    leaf preferred-lifetime {
+      type string;
+      description
+        "Device.IP.Interface.{i}.IPv6Address.{i}.PreferredLifetime";
+      reference
+        "Device.IP.Interface.{i}.IPv6Address.{i}.PreferredLifetime";
+    }
+    leaf valid-lifetime {
+      type string;
+      description
+        "Device.IP.Interface.{i}.IPv6Address.{i}.ValidLifetime";
+      reference
+        "Device.IP.Interface.{i}.IPv6Address.{i}.ValidLifetime";
+    }
+    leaf anycast {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Anycast";
+      reference
+        "Device.IP.Interface.{i}.IPv6Address.{i}.Anycast";
+    }
+  }
+
+  grouping interface-ipv6-prefix-g {
+    description
+      "Grouping object for Device.IP.Interface.{i}.IPv6Prefix.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Enable";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Status";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Status";
+    }
+    leaf prefix-status {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.PrefixStatus";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.PrefixStatus";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Alias";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Alias";
+    }
+    leaf prefix {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Prefix";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Prefix";
+    }
+    leaf origin {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Origin";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Origin";
+    }
+    leaf static-type {
+      type enumeration {
+        enum Static {
+          description
+            "Enum Value - Static";
+        }
+        enum Inapplicable {
+          description
+            "Enum Value - Inapplicable";
+        }
+        enum PrefixDelegation {
+          description
+            "Enum Value - PrefixDelegation";
+        }
+        enum Child {
+          description
+            "Enum Value - Child";
+        }
+      }
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.StaticType";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.StaticType";
+    }
+    leaf parent-prefix {
+      type string;
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.ParentPrefix";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.ParentPrefix";
+    }
+    leaf child-prefix-bits {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.ChildPrefixBits";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.ChildPrefixBits";
+    }
+    leaf on-link {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.OnLink";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.OnLink";
+    }
+    leaf autonomous {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Autonomous";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.Autonomous";
+    }
+    leaf preferred-lifetime {
+      type string;
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.PreferredLifetime";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.PreferredLifetime";
+    }
+    leaf valid-lifetime {
+      type string;
+      description
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.ValidLifetime";
+      reference
+        "Device.IP.Interface.{i}.IPv6Prefix.{i}.ValidLifetime";
+    }
+  }
+
+  grouping ip-interface-stats-g {
+    description
+      "Grouping object for Device.IP.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.IP.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.IP.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.IP.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.IP.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.IP.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.IP.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.IP.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.IP.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.IP.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.IP.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.IP.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.IP.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.IP.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.IP.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.IP.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.IP.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping interface-twamp-reflector-g {
+    description
+      "Grouping object for Device.IP.Interface.{i}.TWAMPReflector.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.Enable";
+      reference
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.Status";
+      reference
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.Alias";
+      reference
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.Alias";
+    }
+    leaf port {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.Port";
+      reference
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.Port";
+    }
+    leaf maximum-ttl {
+      type uint32 {
+        range "1..255";
+      }
+      description
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.MaximumTTL";
+      reference
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.MaximumTTL";
+    }
+    leaf ip-allowed-list {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.IPAllowedList";
+      reference
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.IPAllowedList";
+    }
+    leaf port-allowed-list {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.PortAllowedList";
+      reference
+        "Device.IP.Interface.{i}.TWAMPReflector.{i}.PortAllowedList";
+    }
+  }
+
+  grouping device-i-psec-g {
+    description
+      "Grouping object for Device.IPsec.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.IPsec.Enable";
+      reference
+        "Device.IPsec.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IPsec.Status";
+      reference
+        "Device.IPsec.Status";
+    }
+    leaf ah-supported {
+      type boolean;
+      config false;
+      description
+        "Device.IPsec.AHSupported";
+      reference
+        "Device.IPsec.AHSupported";
+    }
+    leaf ikev2-supported-encryption-algorithms {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SupportedEncryptionAlgorithms";
+      reference
+        "Device.IPsec.IKEv2SupportedEncryptionAlgorithms";
+    }
+    leaf esp-supported-encryption-algorithms {
+      type string;
+      config false;
+      description
+        "Device.IPsec.ESPSupportedEncryptionAlgorithms";
+      reference
+        "Device.IPsec.ESPSupportedEncryptionAlgorithms";
+    }
+    leaf ikev2-supported-pseudo-random-functions {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SupportedPseudoRandomFunctions";
+      reference
+        "Device.IPsec.IKEv2SupportedPseudoRandomFunctions";
+    }
+    leaf supported-integrity-algorithms {
+      type string;
+      config false;
+      description
+        "Device.IPsec.SupportedIntegrityAlgorithms";
+      reference
+        "Device.IPsec.SupportedIntegrityAlgorithms";
+    }
+    leaf supported-diffie-hellman-group-transforms {
+      type string;
+      config false;
+      description
+        "Device.IPsec.SupportedDiffieHellmanGroupTransforms";
+      reference
+        "Device.IPsec.SupportedDiffieHellmanGroupTransforms";
+    }
+    leaf max-filter-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.MaxFilterEntries";
+      reference
+        "Device.IPsec.MaxFilterEntries";
+    }
+    leaf max-profile-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.MaxProfileEntries";
+      reference
+        "Device.IPsec.MaxProfileEntries";
+    }
+    leaf filter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.FilterNumberOfEntries";
+      reference
+        "Device.IPsec.FilterNumberOfEntries";
+    }
+    leaf profile-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.ProfileNumberOfEntries";
+      reference
+        "Device.IPsec.ProfileNumberOfEntries";
+    }
+    leaf tunnel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.TunnelNumberOfEntries";
+      reference
+        "Device.IPsec.TunnelNumberOfEntries";
+    }
+    leaf ikev2-sa-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SANumberOfEntries";
+      reference
+        "Device.IPsec.IKEv2SANumberOfEntries";
+    }
+  }
+
+  grouping i-psec-filter-g {
+    description
+      "Grouping object for Device.IPsec.Filter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.IPsec.Filter.{i}.Enable";
+      reference
+        "Device.IPsec.Filter.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IPsec.Filter.{i}.Status";
+      reference
+        "Device.IPsec.Filter.{i}.Status";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.IPsec.Filter.{i}.Order";
+      reference
+        "Device.IPsec.Filter.{i}.Order";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IPsec.Filter.{i}.Alias";
+      reference
+        "Device.IPsec.Filter.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IPsec.Filter.{i}.Interface";
+      reference
+        "Device.IPsec.Filter.{i}.Interface";
+    }
+    leaf all-interfaces {
+      type boolean;
+      description
+        "Device.IPsec.Filter.{i}.AllInterfaces";
+      reference
+        "Device.IPsec.Filter.{i}.AllInterfaces";
+    }
+    leaf dest-ip {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.IPsec.Filter.{i}.DestIP";
+      reference
+        "Device.IPsec.Filter.{i}.DestIP";
+    }
+    leaf dest-mask {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.IPsec.Filter.{i}.DestMask";
+      reference
+        "Device.IPsec.Filter.{i}.DestMask";
+    }
+    leaf dest-ip-exclude {
+      type boolean;
+      description
+        "Device.IPsec.Filter.{i}.DestIPExclude";
+      reference
+        "Device.IPsec.Filter.{i}.DestIPExclude";
+    }
+    leaf source-ip {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.IPsec.Filter.{i}.SourceIP";
+      reference
+        "Device.IPsec.Filter.{i}.SourceIP";
+    }
+    leaf source-mask {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.IPsec.Filter.{i}.SourceMask";
+      reference
+        "Device.IPsec.Filter.{i}.SourceMask";
+    }
+    leaf source-ip-exclude {
+      type boolean;
+      description
+        "Device.IPsec.Filter.{i}.SourceIPExclude";
+      reference
+        "Device.IPsec.Filter.{i}.SourceIPExclude";
+    }
+    leaf protocol {
+      type int32 {
+        range "-1..255";
+      }
+      description
+        "Device.IPsec.Filter.{i}.Protocol";
+      reference
+        "Device.IPsec.Filter.{i}.Protocol";
+    }
+    leaf protocol-exclude {
+      type boolean;
+      description
+        "Device.IPsec.Filter.{i}.ProtocolExclude";
+      reference
+        "Device.IPsec.Filter.{i}.ProtocolExclude";
+    }
+    leaf dest-port {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.IPsec.Filter.{i}.DestPort";
+      reference
+        "Device.IPsec.Filter.{i}.DestPort";
+    }
+    leaf dest-port-range-max {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.IPsec.Filter.{i}.DestPortRangeMax";
+      reference
+        "Device.IPsec.Filter.{i}.DestPortRangeMax";
+    }
+    leaf dest-port-exclude {
+      type boolean;
+      description
+        "Device.IPsec.Filter.{i}.DestPortExclude";
+      reference
+        "Device.IPsec.Filter.{i}.DestPortExclude";
+    }
+    leaf source-port {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.IPsec.Filter.{i}.SourcePort";
+      reference
+        "Device.IPsec.Filter.{i}.SourcePort";
+    }
+    leaf source-port-range-max {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.IPsec.Filter.{i}.SourcePortRangeMax";
+      reference
+        "Device.IPsec.Filter.{i}.SourcePortRangeMax";
+    }
+    leaf source-port-exclude {
+      type boolean;
+      description
+        "Device.IPsec.Filter.{i}.SourcePortExclude";
+      reference
+        "Device.IPsec.Filter.{i}.SourcePortExclude";
+    }
+    leaf processing-choice {
+      type enumeration {
+        enum Discard {
+          description
+            "Enum Value - Discard";
+        }
+        enum Bypass {
+          description
+            "Enum Value - Bypass";
+        }
+        enum Protect {
+          description
+            "Enum Value - Protect";
+        }
+      }
+      description
+        "Device.IPsec.Filter.{i}.ProcessingChoice";
+      reference
+        "Device.IPsec.Filter.{i}.ProcessingChoice";
+    }
+    leaf profile {
+      type string;
+      description
+        "Device.IPsec.Filter.{i}.Profile";
+      reference
+        "Device.IPsec.Filter.{i}.Profile";
+    }
+  }
+
+  grouping i-psec-ikev2-sa-g {
+    description
+      "Grouping object for Device.IPsec.IKEv2SA.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.Status";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IPsec.IKEv2SA.{i}.Alias";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Alias";
+    }
+    leaf tunnel {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.Tunnel";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Tunnel";
+    }
+    leaf local-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.LocalAddress";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.LocalAddress";
+    }
+    leaf remote-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.RemoteAddress";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.RemoteAddress";
+    }
+    leaf encryption-algorithm {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.EncryptionAlgorithm";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.EncryptionAlgorithm";
+    }
+    leaf encryption-key-length {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.EncryptionKeyLength";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.EncryptionKeyLength";
+    }
+    leaf pseudo-random-function {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.PseudoRandomFunction";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.PseudoRandomFunction";
+    }
+    leaf integrity-algorithm {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.IntegrityAlgorithm";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.IntegrityAlgorithm";
+    }
+    leaf diffie-hellman-group-transform {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.DiffieHellmanGroupTransform";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.DiffieHellmanGroupTransform";
+    }
+    leaf creation-time {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.CreationTime";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.CreationTime";
+    }
+    leaf nat-detected {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.NATDetected";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.NATDetected";
+    }
+    leaf received-cp-attr-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ReceivedCPAttrNumberOfEntries";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ReceivedCPAttrNumberOfEntries";
+    }
+    leaf child-sa-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSANumberOfEntries";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSANumberOfEntries";
+    }
+  }
+
+  grouping ikev2-sa-child-sa-g {
+    description
+      "Grouping object for Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Status";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Alias";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Alias";
+    }
+    leaf inbound-spi {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.InboundSPI";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.InboundSPI";
+    }
+    leaf outbound-spi {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.OutboundSPI";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.OutboundSPI";
+    }
+    leaf creation-time {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.CreationTime";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.CreationTime";
+    }
+  }
+
+  grouping child-sa-stats-g {
+    description
+      "Grouping object for Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.BytesSent";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.BytesReceived";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.PacketsSent";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.PacketsReceived";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.ErrorsSent";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.ErrorsSent";
+    }
+    leaf decryption-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.DecryptionErrors";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.DecryptionErrors";
+    }
+    leaf integrity-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.IntegrityErrors";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.IntegrityErrors";
+    }
+    leaf replay-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.ReplayErrors";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.ReplayErrors";
+    }
+    leaf policy-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.PolicyErrors";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.PolicyErrors";
+    }
+    leaf other-receive-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.OtherReceiveErrors";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.OtherReceiveErrors";
+    }
+  }
+
+  grouping ikev2-sa-received-cp-attr-g {
+    description
+      "Grouping object for Device.IPsec.IKEv2SA.{i}.ReceivedCPAttr.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf type {
+      type uint32 {
+        range "0..32767";
+      }
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ReceivedCPAttr.{i}.Type";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ReceivedCPAttr.{i}.Type";
+    }
+    leaf value {
+      type string;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.ReceivedCPAttr.{i}.Value";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.ReceivedCPAttr.{i}.Value";
+    }
+  }
+
+  grouping ikev2-sa-stats-g {
+    description
+      "Grouping object for Device.IPsec.IKEv2SA.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.Stats.BytesSent";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.Stats.BytesReceived";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.Stats.PacketsSent";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.Stats.PacketsReceived";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.Stats.ErrorsSent";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Stats.ErrorsSent";
+    }
+    leaf decryption-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.Stats.DecryptionErrors";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Stats.DecryptionErrors";
+    }
+    leaf integrity-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.Stats.IntegrityErrors";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Stats.IntegrityErrors";
+    }
+    leaf other-receive-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.IKEv2SA.{i}.Stats.OtherReceiveErrors";
+      reference
+        "Device.IPsec.IKEv2SA.{i}.Stats.OtherReceiveErrors";
+    }
+  }
+
+  grouping i-psec-profile-g {
+    description
+      "Grouping object for Device.IPsec.Profile.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IPsec.Profile.{i}.Alias";
+      reference
+        "Device.IPsec.Profile.{i}.Alias";
+    }
+    leaf max-child-s-as {
+      type uint32;
+      description
+        "Device.IPsec.Profile.{i}.MaxChildSAs";
+      reference
+        "Device.IPsec.Profile.{i}.MaxChildSAs";
+    }
+    leaf remote-endpoints {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IPsec.Profile.{i}.RemoteEndpoints";
+      reference
+        "Device.IPsec.Profile.{i}.RemoteEndpoints";
+    }
+    leaf forwarding-policy {
+      type uint32;
+      description
+        "Device.IPsec.Profile.{i}.ForwardingPolicy";
+      reference
+        "Device.IPsec.Profile.{i}.ForwardingPolicy";
+    }
+    leaf protocol {
+      type enumeration {
+        enum AH {
+          description
+            "Enum Value - AH";
+        }
+        enum ESP {
+          description
+            "Enum Value - ESP";
+        }
+      }
+      description
+        "Device.IPsec.Profile.{i}.Protocol";
+      reference
+        "Device.IPsec.Profile.{i}.Protocol";
+    }
+    leaf ikev2-authentication-method {
+      type string;
+      description
+        "Device.IPsec.Profile.{i}.IKEv2AuthenticationMethod";
+      reference
+        "Device.IPsec.Profile.{i}.IKEv2AuthenticationMethod";
+    }
+    leaf ikev2-allowed-encryption-algorithms {
+      type string;
+      description
+        "Device.IPsec.Profile.{i}.IKEv2AllowedEncryptionAlgorithms";
+      reference
+        "Device.IPsec.Profile.{i}.IKEv2AllowedEncryptionAlgorithms";
+    }
+    leaf esp-allowed-encryption-algorithms {
+      type string;
+      description
+        "Device.IPsec.Profile.{i}.ESPAllowedEncryptionAlgorithms";
+      reference
+        "Device.IPsec.Profile.{i}.ESPAllowedEncryptionAlgorithms";
+    }
+    leaf ikev2-allowed-pseudo-random-functions {
+      type string;
+      description
+        "Device.IPsec.Profile.{i}.IKEv2AllowedPseudoRandomFunctions";
+      reference
+        "Device.IPsec.Profile.{i}.IKEv2AllowedPseudoRandomFunctions";
+    }
+    leaf ikev2-allowed-integrity-algorithms {
+      type string;
+      description
+        "Device.IPsec.Profile.{i}.IKEv2AllowedIntegrityAlgorithms";
+      reference
+        "Device.IPsec.Profile.{i}.IKEv2AllowedIntegrityAlgorithms";
+    }
+    leaf ah-allowed-integrity-algorithms {
+      type string;
+      description
+        "Device.IPsec.Profile.{i}.AHAllowedIntegrityAlgorithms";
+      reference
+        "Device.IPsec.Profile.{i}.AHAllowedIntegrityAlgorithms";
+    }
+    leaf esp-allowed-integrity-algorithms {
+      type string;
+      description
+        "Device.IPsec.Profile.{i}.ESPAllowedIntegrityAlgorithms";
+      reference
+        "Device.IPsec.Profile.{i}.ESPAllowedIntegrityAlgorithms";
+    }
+    leaf ikev2-allowed-diffie-hellman-group-transforms {
+      type string;
+      description
+        "Device.IPsec.Profile.{i}.IKEv2AllowedDiffieHellmanGroupTransforms";
+      reference
+        "Device.IPsec.Profile.{i}.IKEv2AllowedDiffieHellmanGroupTransforms";
+    }
+    leaf ikev2-dead-peer-detection-timeout {
+      type uint32;
+      description
+        "Device.IPsec.Profile.{i}.IKEv2DeadPeerDetectionTimeout";
+      reference
+        "Device.IPsec.Profile.{i}.IKEv2DeadPeerDetectionTimeout";
+    }
+    leaf ikev2-natt-keepalive-timeout {
+      type uint32;
+      description
+        "Device.IPsec.Profile.{i}.IKEv2NATTKeepaliveTimeout";
+      reference
+        "Device.IPsec.Profile.{i}.IKEv2NATTKeepaliveTimeout";
+    }
+    leaf anti-replay-window-size {
+      type uint32;
+      description
+        "Device.IPsec.Profile.{i}.AntiReplayWindowSize";
+      reference
+        "Device.IPsec.Profile.{i}.AntiReplayWindowSize";
+    }
+    leaf do-not-fragment {
+      type enumeration {
+        enum Set {
+          description
+            "Enum Value - Set";
+        }
+        enum Clear {
+          description
+            "Enum Value - Clear";
+        }
+        enum Copy {
+          description
+            "Enum Value - Copy";
+        }
+      }
+      description
+        "Device.IPsec.Profile.{i}.DoNotFragment";
+      reference
+        "Device.IPsec.Profile.{i}.DoNotFragment";
+    }
+    leaf dscp-mark-policy {
+      type int32 {
+        range "-2..63";
+      }
+      description
+        "Device.IPsec.Profile.{i}.DSCPMarkPolicy";
+      reference
+        "Device.IPsec.Profile.{i}.DSCPMarkPolicy";
+    }
+    leaf ikev2-sa-traffic-limit {
+      type uint64;
+      description
+        "Device.IPsec.Profile.{i}.IKEv2SATrafficLimit";
+      reference
+        "Device.IPsec.Profile.{i}.IKEv2SATrafficLimit";
+    }
+    leaf ikev2-sa-time-limit {
+      type uint32;
+      description
+        "Device.IPsec.Profile.{i}.IKEv2SATimeLimit";
+      reference
+        "Device.IPsec.Profile.{i}.IKEv2SATimeLimit";
+    }
+    leaf ikev2-sa-expiry-action {
+      type enumeration {
+        enum Renegotiate {
+          description
+            "Enum Value - Renegotiate";
+        }
+        enum Delete {
+          description
+            "Enum Value - Delete";
+        }
+      }
+      description
+        "Device.IPsec.Profile.{i}.IKEv2SAExpiryAction";
+      reference
+        "Device.IPsec.Profile.{i}.IKEv2SAExpiryAction";
+    }
+    leaf child-sa-traffic-limit {
+      type uint64;
+      description
+        "Device.IPsec.Profile.{i}.ChildSATrafficLimit";
+      reference
+        "Device.IPsec.Profile.{i}.ChildSATrafficLimit";
+    }
+    leaf child-sa-time-limit {
+      type uint32;
+      description
+        "Device.IPsec.Profile.{i}.ChildSATimeLimit";
+      reference
+        "Device.IPsec.Profile.{i}.ChildSATimeLimit";
+    }
+    leaf child-sa-expiry-action {
+      type enumeration {
+        enum Renegotiate {
+          description
+            "Enum Value - Renegotiate";
+        }
+        enum Delete {
+          description
+            "Enum Value - Delete";
+        }
+      }
+      description
+        "Device.IPsec.Profile.{i}.ChildSAExpiryAction";
+      reference
+        "Device.IPsec.Profile.{i}.ChildSAExpiryAction";
+    }
+    leaf sent-cp-attr-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Profile.{i}.SentCPAttrNumberOfEntries";
+      reference
+        "Device.IPsec.Profile.{i}.SentCPAttrNumberOfEntries";
+    }
+  }
+
+  grouping profile-sent-cp-attr-g {
+    description
+      "Grouping object for Device.IPsec.Profile.{i}.SentCPAttr.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.IPsec.Profile.{i}.SentCPAttr.{i}.Enable";
+      reference
+        "Device.IPsec.Profile.{i}.SentCPAttr.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IPsec.Profile.{i}.SentCPAttr.{i}.Alias";
+      reference
+        "Device.IPsec.Profile.{i}.SentCPAttr.{i}.Alias";
+    }
+    leaf type {
+      type uint32 {
+        range "0..32767";
+      }
+      description
+        "Device.IPsec.Profile.{i}.SentCPAttr.{i}.Type";
+      reference
+        "Device.IPsec.Profile.{i}.SentCPAttr.{i}.Type";
+    }
+    leaf value {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.IPsec.Profile.{i}.SentCPAttr.{i}.Value";
+      reference
+        "Device.IPsec.Profile.{i}.SentCPAttr.{i}.Value";
+    }
+  }
+
+  grouping i-psec-stats-g {
+    description
+      "Grouping object for Device.IPsec.Stats.";
+    leaf negotiation-failures {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Stats.NegotiationFailures";
+      reference
+        "Device.IPsec.Stats.NegotiationFailures";
+    }
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.Stats.BytesSent";
+      reference
+        "Device.IPsec.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.Stats.BytesReceived";
+      reference
+        "Device.IPsec.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.Stats.PacketsSent";
+      reference
+        "Device.IPsec.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.IPsec.Stats.PacketsReceived";
+      reference
+        "Device.IPsec.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Stats.ErrorsSent";
+      reference
+        "Device.IPsec.Stats.ErrorsSent";
+    }
+    leaf unknown-spi-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Stats.UnknownSPIErrors";
+      reference
+        "Device.IPsec.Stats.UnknownSPIErrors";
+    }
+    leaf decryption-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Stats.DecryptionErrors";
+      reference
+        "Device.IPsec.Stats.DecryptionErrors";
+    }
+    leaf integrity-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Stats.IntegrityErrors";
+      reference
+        "Device.IPsec.Stats.IntegrityErrors";
+    }
+    leaf replay-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Stats.ReplayErrors";
+      reference
+        "Device.IPsec.Stats.ReplayErrors";
+    }
+    leaf policy-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Stats.PolicyErrors";
+      reference
+        "Device.IPsec.Stats.PolicyErrors";
+    }
+    leaf other-receive-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Stats.OtherReceiveErrors";
+      reference
+        "Device.IPsec.Stats.OtherReceiveErrors";
+    }
+  }
+
+  grouping i-psec-tunnel-g {
+    description
+      "Grouping object for Device.IPsec.Tunnel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IPsec.Tunnel.{i}.Alias";
+      reference
+        "Device.IPsec.Tunnel.{i}.Alias";
+    }
+    leaf tunnel-interface {
+      type string;
+      config false;
+      description
+        "Device.IPsec.Tunnel.{i}.TunnelInterface";
+      reference
+        "Device.IPsec.Tunnel.{i}.TunnelInterface";
+    }
+    leaf tunneled-interface {
+      type string;
+      config false;
+      description
+        "Device.IPsec.Tunnel.{i}.TunneledInterface";
+      reference
+        "Device.IPsec.Tunnel.{i}.TunneledInterface";
+    }
+    leaf filters {
+      type string;
+      config false;
+      description
+        "Device.IPsec.Tunnel.{i}.Filters";
+      reference
+        "Device.IPsec.Tunnel.{i}.Filters";
+    }
+  }
+
+  grouping i-psec-tunnel-stats-g {
+    description
+      "Grouping object for Device.IPsec.Tunnel.{i}.Stats.";
+    leaf decryption-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Tunnel.{i}.Stats.DecryptionErrors";
+      reference
+        "Device.IPsec.Tunnel.{i}.Stats.DecryptionErrors";
+    }
+    leaf integrity-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Tunnel.{i}.Stats.IntegrityErrors";
+      reference
+        "Device.IPsec.Tunnel.{i}.Stats.IntegrityErrors";
+    }
+    leaf replay-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Tunnel.{i}.Stats.ReplayErrors";
+      reference
+        "Device.IPsec.Tunnel.{i}.Stats.ReplayErrors";
+    }
+    leaf policy-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Tunnel.{i}.Stats.PolicyErrors";
+      reference
+        "Device.IPsec.Tunnel.{i}.Stats.PolicyErrors";
+    }
+    leaf other-receive-errors {
+      type uint32;
+      config false;
+      description
+        "Device.IPsec.Tunnel.{i}.Stats.OtherReceiveErrors";
+      reference
+        "Device.IPsec.Tunnel.{i}.Stats.OtherReceiveErrors";
+    }
+  }
+
+  grouping device-ipv6rd-g {
+    description
+      "Grouping object for Device.IPv6rd.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.IPv6rd.Enable";
+      reference
+        "Device.IPv6rd.Enable";
+    }
+    leaf interface-setting-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.IPv6rd.InterfaceSettingNumberOfEntries";
+      reference
+        "Device.IPv6rd.InterfaceSettingNumberOfEntries";
+    }
+  }
+
+  grouping ipv6rd-interface-setting-g {
+    description
+      "Grouping object for Device.IPv6rd.InterfaceSetting.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.IPv6rd.InterfaceSetting.{i}.Enable";
+      reference
+        "Device.IPv6rd.InterfaceSetting.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.IPv6rd.InterfaceSetting.{i}.Status";
+      reference
+        "Device.IPv6rd.InterfaceSetting.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.IPv6rd.InterfaceSetting.{i}.Alias";
+      reference
+        "Device.IPv6rd.InterfaceSetting.{i}.Alias";
+    }
+    leaf border-relay-ipv4-addresses {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.IPv6rd.InterfaceSetting.{i}.BorderRelayIPv4Addresses";
+      reference
+        "Device.IPv6rd.InterfaceSetting.{i}.BorderRelayIPv4Addresses";
+    }
+    leaf all-traffic-to-border-relay {
+      type boolean;
+      description
+        "Device.IPv6rd.InterfaceSetting.{i}.AllTrafficToBorderRelay";
+      reference
+        "Device.IPv6rd.InterfaceSetting.{i}.AllTrafficToBorderRelay";
+    }
+    leaf spipv6-prefix {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.IPv6rd.InterfaceSetting.{i}.SPIPv6Prefix";
+      reference
+        "Device.IPv6rd.InterfaceSetting.{i}.SPIPv6Prefix";
+    }
+    leaf ipv4-mask-length {
+      type uint32 {
+        range "0..32";
+      }
+      description
+        "Device.IPv6rd.InterfaceSetting.{i}.IPv4MaskLength";
+      reference
+        "Device.IPv6rd.InterfaceSetting.{i}.IPv4MaskLength";
+    }
+    leaf address-source {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.IPv6rd.InterfaceSetting.{i}.AddressSource";
+      reference
+        "Device.IPv6rd.InterfaceSetting.{i}.AddressSource";
+    }
+    leaf tunnel-interface {
+      type string;
+      config false;
+      description
+        "Device.IPv6rd.InterfaceSetting.{i}.TunnelInterface";
+      reference
+        "Device.IPv6rd.InterfaceSetting.{i}.TunnelInterface";
+    }
+    leaf tunneled-interface {
+      type string;
+      config false;
+      description
+        "Device.IPv6rd.InterfaceSetting.{i}.TunneledInterface";
+      reference
+        "Device.IPv6rd.InterfaceSetting.{i}.TunneledInterface";
+    }
+  }
+
+  grouping device-interface-stack-g {
+    description
+      "Grouping object for Device.InterfaceStack.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.InterfaceStack.{i}.Alias";
+      reference
+        "Device.InterfaceStack.{i}.Alias";
+    }
+    leaf higher-layer {
+      type string;
+      config false;
+      description
+        "Device.InterfaceStack.{i}.HigherLayer";
+      reference
+        "Device.InterfaceStack.{i}.HigherLayer";
+    }
+    leaf lower-layer {
+      type string;
+      config false;
+      description
+        "Device.InterfaceStack.{i}.LowerLayer";
+      reference
+        "Device.InterfaceStack.{i}.LowerLayer";
+    }
+    leaf higher-alias {
+      type string;
+      config false;
+      description
+        "Device.InterfaceStack.{i}.HigherAlias";
+      reference
+        "Device.InterfaceStack.{i}.HigherAlias";
+    }
+    leaf lower-alias {
+      type string;
+      config false;
+      description
+        "Device.InterfaceStack.{i}.LowerAlias";
+      reference
+        "Device.InterfaceStack.{i}.LowerAlias";
+    }
+  }
+
+  grouping device-l2-tpv3-g {
+    description
+      "Grouping object for Device.L2TPv3.";
+    leaf tunnel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.TunnelNumberOfEntries";
+      reference
+        "Device.L2TPv3.TunnelNumberOfEntries";
+    }
+    leaf filter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.FilterNumberOfEntries";
+      reference
+        "Device.L2TPv3.FilterNumberOfEntries";
+    }
+  }
+
+  grouping l2-tpv3-filter-g {
+    description
+      "Grouping object for Device.L2TPv3.Filter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.L2TPv3.Filter.{i}.Enable";
+      reference
+        "Device.L2TPv3.Filter.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.L2TPv3.Filter.{i}.Status";
+      reference
+        "Device.L2TPv3.Filter.{i}.Status";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.L2TPv3.Filter.{i}.Order";
+      reference
+        "Device.L2TPv3.Filter.{i}.Order";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.L2TPv3.Filter.{i}.Alias";
+      reference
+        "Device.L2TPv3.Filter.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.L2TPv3.Filter.{i}.Interface";
+      reference
+        "Device.L2TPv3.Filter.{i}.Interface";
+    }
+    leaf all-interfaces {
+      type boolean;
+      description
+        "Device.L2TPv3.Filter.{i}.AllInterfaces";
+      reference
+        "Device.L2TPv3.Filter.{i}.AllInterfaces";
+    }
+    leaf vlanid-check {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.L2TPv3.Filter.{i}.VLANIDCheck";
+      reference
+        "Device.L2TPv3.Filter.{i}.VLANIDCheck";
+    }
+    leaf vlanid-exclude {
+      type boolean;
+      description
+        "Device.L2TPv3.Filter.{i}.VLANIDExclude";
+      reference
+        "Device.L2TPv3.Filter.{i}.VLANIDExclude";
+    }
+    leaf dscp-mark-policy {
+      type int32 {
+        range "-2..63";
+      }
+      description
+        "Device.L2TPv3.Filter.{i}.DSCPMarkPolicy";
+      reference
+        "Device.L2TPv3.Filter.{i}.DSCPMarkPolicy";
+    }
+  }
+
+  grouping l2-tpv3-tunnel-g {
+    description
+      "Grouping object for Device.L2TPv3.Tunnel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Enable";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Status";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.Alias";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Alias";
+    }
+    leaf remote-endpoints {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.RemoteEndpoints";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.RemoteEndpoints";
+    }
+    leaf keep-alive-policy {
+      type enumeration {
+        enum ICMP {
+          description
+            "Enum Value - ICMP";
+        }
+        enum None {
+          description
+            "Enum Value - None";
+        }
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.KeepAlivePolicy";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.KeepAlivePolicy";
+    }
+    leaf keep-alive-timeout {
+      type uint32;
+      description
+        "Device.L2TPv3.Tunnel.{i}.KeepAliveTimeout";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.KeepAliveTimeout";
+    }
+    leaf keep-alive-threshold {
+      type uint32;
+      description
+        "Device.L2TPv3.Tunnel.{i}.KeepAliveThreshold";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.KeepAliveThreshold";
+    }
+    leaf delivery-header-protocol {
+      type enumeration {
+        enum IPv4 {
+          description
+            "Enum Value - IPv4";
+        }
+        enum IPv6 {
+          description
+            "Enum Value - IPv6";
+        }
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.DeliveryHeaderProtocol";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.DeliveryHeaderProtocol";
+    }
+    leaf default-dscp-mark {
+      type uint32;
+      description
+        "Device.L2TPv3.Tunnel.{i}.DefaultDSCPMark";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.DefaultDSCPMark";
+    }
+    leaf tunnel-encapsulation {
+      type enumeration {
+        enum IP {
+          description
+            "Enum Value - IP";
+        }
+        enum UDP {
+          description
+            "Enum Value - UDP";
+        }
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.TunnelEncapsulation";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.TunnelEncapsulation";
+    }
+    leaf connected-remote-endpoint {
+      type string;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.ConnectedRemoteEndpoint";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.ConnectedRemoteEndpoint";
+    }
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.InterfaceNumberOfEntries";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.InterfaceNumberOfEntries";
+    }
+  }
+
+  grouping l2-tpv3-tunnel-interface-g {
+    description
+      "Grouping object for Device.L2TPv3.Tunnel.{i}.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Enable";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Status";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Alias";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Name";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.LastChange";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.LowerLayers";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.LowerLayers";
+    }
+    leaf session-id {
+      type int32 {
+        range "-1 | 1..65535";
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.SessionID";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.SessionID";
+    }
+    leaf cookie-policy {
+      type enumeration {
+        enum Disabled {
+          description
+            "Enum Value - Disabled";
+        }
+        enum Configured {
+          description
+            "Enum Value - Configured";
+        }
+        enum Generated {
+          description
+            "Enum Value - Generated";
+        }
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.CookiePolicy";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.CookiePolicy";
+    }
+    leaf cookie {
+      type uint64;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Cookie";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Cookie";
+    }
+  }
+
+  grouping l2-tpv3-tunnel-interface-stats-g {
+    description
+      "Grouping object for Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf discard-checksum-received {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.DiscardChecksumReceived";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.DiscardChecksumReceived";
+    }
+    leaf discard-sequence-number-received {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.DiscardSequenceNumberReceived";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.DiscardSequenceNumberReceived";
+    }
+  }
+
+  grouping l2-tpv3-tunnel-stats-g {
+    description
+      "Grouping object for Device.L2TPv3.Tunnel.{i}.Stats.";
+    leaf keep-alive-sent {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Stats.KeepAliveSent";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Stats.KeepAliveSent";
+    }
+    leaf keep-alive-received {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Stats.KeepAliveReceived";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Stats.KeepAliveReceived";
+    }
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Stats.BytesSent";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Stats.BytesReceived";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Stats.PacketsSent";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Stats.PacketsReceived";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Stats.ErrorsSent";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.L2TPv3.Tunnel.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.Stats.ErrorsReceived";
+    }
+  }
+
+  grouping tunnel-udp-g {
+    description
+      "Grouping object for Device.L2TPv3.Tunnel.{i}.UDP.";
+    leaf source-port {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.UDP.SourcePort";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.UDP.SourcePort";
+    }
+    leaf remote-port {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.L2TPv3.Tunnel.{i}.UDP.RemotePort";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.UDP.RemotePort";
+    }
+    leaf enable-checksum {
+      type boolean;
+      description
+        "Device.L2TPv3.Tunnel.{i}.UDP.EnableChecksum";
+      reference
+        "Device.L2TPv3.Tunnel.{i}.UDP.EnableChecksum";
+    }
+  }
+
+  grouping device-le-ds-g {
+    description
+      "Grouping object for Device.LEDs.";
+    leaf led-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LEDs.LEDNumberOfEntries";
+      reference
+        "Device.LEDs.LEDNumberOfEntries";
+    }
+  }
+
+  grouping le-ds-led-g {
+    description
+      "Grouping object for Device.LEDs.LED.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LEDs.LED.{i}.Alias";
+      reference
+        "Device.LEDs.LED.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      description
+        "Device.LEDs.LED.{i}.Name";
+      reference
+        "Device.LEDs.LED.{i}.Name";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.LEDs.LED.{i}.Status";
+      reference
+        "Device.LEDs.LED.{i}.Status";
+    }
+    leaf reason {
+      type string;
+      config false;
+      description
+        "Device.LEDs.LED.{i}.Reason";
+      reference
+        "Device.LEDs.LED.{i}.Reason";
+    }
+    leaf cycle-period-repetitions {
+      type int32;
+      config false;
+      description
+        "Device.LEDs.LED.{i}.CyclePeriodRepetitions";
+      reference
+        "Device.LEDs.LED.{i}.CyclePeriodRepetitions";
+    }
+    leaf location {
+      type string;
+      config false;
+      description
+        "Device.LEDs.LED.{i}.Location";
+      reference
+        "Device.LEDs.LED.{i}.Location";
+    }
+    leaf relative-x-position {
+      type uint32;
+      config false;
+      description
+        "Device.LEDs.LED.{i}.RelativeXPosition";
+      reference
+        "Device.LEDs.LED.{i}.RelativeXPosition";
+    }
+    leaf relative-y-position {
+      type uint32;
+      config false;
+      description
+        "Device.LEDs.LED.{i}.RelativeYPosition";
+      reference
+        "Device.LEDs.LED.{i}.RelativeYPosition";
+    }
+    leaf cycle-element-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LEDs.LED.{i}.CycleElementNumberOfEntries";
+      reference
+        "Device.LEDs.LED.{i}.CycleElementNumberOfEntries";
+    }
+  }
+
+  grouping led-current-cycle-element-g {
+    description
+      "Grouping object for Device.LEDs.LED.{i}.CurrentCycleElement.";
+    leaf cycle-element-reference {
+      type string;
+      config false;
+      description
+        "Device.LEDs.LED.{i}.CurrentCycleElement.CycleElementReference";
+      reference
+        "Device.LEDs.LED.{i}.CurrentCycleElement.CycleElementReference";
+    }
+    leaf color {
+      type string;
+      config false;
+      description
+        "Device.LEDs.LED.{i}.CurrentCycleElement.Color";
+      reference
+        "Device.LEDs.LED.{i}.CurrentCycleElement.Color";
+    }
+    leaf duration {
+      type uint32;
+      config false;
+      description
+        "Device.LEDs.LED.{i}.CurrentCycleElement.Duration";
+      reference
+        "Device.LEDs.LED.{i}.CurrentCycleElement.Duration";
+    }
+  }
+
+  grouping led-cycle-element-g {
+    description
+      "Grouping object for Device.LEDs.LED.{i}.CycleElement.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LEDs.LED.{i}.CycleElement.{i}.Alias";
+      reference
+        "Device.LEDs.LED.{i}.CycleElement.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LEDs.LED.{i}.CycleElement.{i}.Enable";
+      reference
+        "Device.LEDs.LED.{i}.CycleElement.{i}.Enable";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.LEDs.LED.{i}.CycleElement.{i}.Order";
+      reference
+        "Device.LEDs.LED.{i}.CycleElement.{i}.Order";
+    }
+    leaf color {
+      type string {
+        length "3";
+      }
+      description
+        "Device.LEDs.LED.{i}.CycleElement.{i}.Color";
+      reference
+        "Device.LEDs.LED.{i}.CycleElement.{i}.Color";
+    }
+    leaf duration {
+      type uint32;
+      description
+        "Device.LEDs.LED.{i}.CycleElement.{i}.Duration";
+      reference
+        "Device.LEDs.LED.{i}.CycleElement.{i}.Duration";
+    }
+    leaf fade-interval {
+      type uint32;
+      description
+        "Device.LEDs.LED.{i}.CycleElement.{i}.FadeInterval";
+      reference
+        "Device.LEDs.LED.{i}.CycleElement.{i}.FadeInterval";
+    }
+  }
+
+  grouping lldp-discovery-g {
+    description
+      "Grouping object for Device.LLDP.Discovery.";
+    leaf device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LLDP.Discovery.DeviceNumberOfEntries";
+      reference
+        "Device.LLDP.Discovery.DeviceNumberOfEntries";
+    }
+  }
+
+  grouping discovery-device-g {
+    description
+      "Grouping object for Device.LLDP.Discovery.Device.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf interface {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.Interface";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.Interface";
+    }
+    leaf chassis-id-subtype {
+      type uint32;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.ChassisIDSubtype";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.ChassisIDSubtype";
+    }
+    leaf chassis-id {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.ChassisID";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.ChassisID";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.Host";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.Host";
+    }
+    leaf port-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.PortNumberOfEntries";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.PortNumberOfEntries";
+    }
+  }
+
+  grouping device-device-information-g {
+    description
+      "Grouping object for Device.LLDP.Discovery.Device.{i}.DeviceInformation.";
+    leaf device-category {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.DeviceCategory";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.DeviceCategory";
+    }
+    leaf manufacturer-oui {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.ManufacturerOUI";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.ManufacturerOUI";
+    }
+    leaf model-name {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.ModelName";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.ModelName";
+    }
+    leaf model-number {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.ModelNumber";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.ModelNumber";
+    }
+    leaf vendor-specific-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecificNumberOfEntries";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecificNumberOfEntries";
+    }
+  }
+
+  grouping device-information-vendor-specific-g {
+    description
+      "Grouping object for Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecific.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf organization-code {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecific.{i}.OrganizationCode";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecific.{i}.OrganizationCode";
+    }
+    leaf information-type {
+      type uint32;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecific.{i}.InformationType";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecific.{i}.InformationType";
+    }
+    leaf information {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecific.{i}.Information";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecific.{i}.Information";
+    }
+  }
+
+  grouping device-port-g {
+    description
+      "Grouping object for Device.LLDP.Discovery.Device.{i}.Port.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf port-id-subtype {
+      type uint32;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.PortIDSubtype";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.PortIDSubtype";
+    }
+    leaf port-id {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.PortID";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.PortID";
+    }
+    leaf ttl {
+      type uint32;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.TTL";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.TTL";
+    }
+    leaf port-description {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.PortDescription";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.PortDescription";
+    }
+    leaf mac-address-list {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.MACAddressList";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.MACAddressList";
+    }
+    leaf last-update {
+      type string;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.LastUpdate";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.LastUpdate";
+    }
+  }
+
+  grouping port-link-information-g {
+    description
+      "Grouping object for Device.LLDP.Discovery.Device.{i}.Port.{i}.LinkInformation.";
+    leaf interface-type {
+      type uint32;
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.LinkInformation.InterfaceType";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.LinkInformation.InterfaceType";
+    }
+    leaf mac-forwarding-table {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.LinkInformation.MACForwardingTable";
+      reference
+        "Device.LLDP.Discovery.Device.{i}.Port.{i}.LinkInformation.MACForwardingTable";
+    }
+  }
+
+  grouping device-lmap-g {
+    description
+      "Grouping object for Device.LMAP.";
+    leaf measurement-agent-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgentNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgentNumberOfEntries";
+    }
+    leaf report-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.ReportNumberOfEntries";
+      reference
+        "Device.LMAP.ReportNumberOfEntries";
+    }
+    leaf event-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.EventNumberOfEntries";
+      reference
+        "Device.LMAP.EventNumberOfEntries";
+    }
+  }
+
+  grouping lmap-event-g {
+    description
+      "Grouping object for Device.LMAP.Event.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.Event.{i}.Enable";
+      reference
+        "Device.LMAP.Event.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.Event.{i}.Alias";
+      reference
+        "Device.LMAP.Event.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.LMAP.Event.{i}.Name";
+      reference
+        "Device.LMAP.Event.{i}.Name";
+    }
+    leaf type {
+      type enumeration {
+        enum PeriodicTiming {
+          description
+            "Enum Value - PeriodicTiming";
+        }
+        enum CalendarTiming {
+          description
+            "Enum Value - CalendarTiming";
+        }
+        enum OneOffTiming {
+          description
+            "Enum Value - OneOffTiming";
+        }
+        enum Immediate {
+          description
+            "Enum Value - Immediate";
+        }
+        enum Startup {
+          description
+            "Enum Value - Startup";
+        }
+        enum ControllerLost {
+          description
+            "Enum Value - ControllerLost";
+        }
+        enum ControllerConnected {
+          description
+            "Enum Value - ControllerConnected";
+        }
+      }
+      description
+        "Device.LMAP.Event.{i}.Type";
+      reference
+        "Device.LMAP.Event.{i}.Type";
+    }
+    leaf randomness-spread {
+      type int32;
+      description
+        "Device.LMAP.Event.{i}.RandomnessSpread";
+      reference
+        "Device.LMAP.Event.{i}.RandomnessSpread";
+    }
+    leaf cycle-interval {
+      type int32;
+      description
+        "Device.LMAP.Event.{i}.CycleInterval";
+      reference
+        "Device.LMAP.Event.{i}.CycleInterval";
+    }
+  }
+
+  grouping event-calendar-timer-g {
+    description
+      "Grouping object for Device.LMAP.Event.{i}.CalendarTimer.";
+    leaf start-time {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.CalendarTimer.StartTime";
+      reference
+        "Device.LMAP.Event.{i}.CalendarTimer.StartTime";
+    }
+    leaf end-time {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.CalendarTimer.EndTime";
+      reference
+        "Device.LMAP.Event.{i}.CalendarTimer.EndTime";
+    }
+    leaf schedule-months {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleMonths";
+      reference
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleMonths";
+    }
+    leaf schedule-days-of-month {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleDaysOfMonth";
+      reference
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleDaysOfMonth";
+    }
+    leaf schedule-days-of-week {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleDaysOfWeek";
+      reference
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleDaysOfWeek";
+    }
+    leaf schedule-hours-of-day {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleHoursOfDay";
+      reference
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleHoursOfDay";
+    }
+    leaf schedule-minutes-of-hour {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleMinutesOfHour";
+      reference
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleMinutesOfHour";
+    }
+    leaf schedule-seconds-of-minute {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleSecondsOfMinute";
+      reference
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleSecondsOfMinute";
+    }
+    leaf enable-schedule-timezone-offset {
+      type boolean;
+      description
+        "Device.LMAP.Event.{i}.CalendarTimer.EnableScheduleTimezoneOffset";
+      reference
+        "Device.LMAP.Event.{i}.CalendarTimer.EnableScheduleTimezoneOffset";
+    }
+    leaf schedule-timezone-offset {
+      type int32 {
+        range "-23..23";
+      }
+      description
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleTimezoneOffset";
+      reference
+        "Device.LMAP.Event.{i}.CalendarTimer.ScheduleTimezoneOffset";
+    }
+  }
+
+  grouping event-one-off-g {
+    description
+      "Grouping object for Device.LMAP.Event.{i}.OneOff.";
+    leaf start-time {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.OneOff.StartTime";
+      reference
+        "Device.LMAP.Event.{i}.OneOff.StartTime";
+    }
+  }
+
+  grouping event-periodic-timer-g {
+    description
+      "Grouping object for Device.LMAP.Event.{i}.PeriodicTimer.";
+    leaf start-time {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.PeriodicTimer.StartTime";
+      reference
+        "Device.LMAP.Event.{i}.PeriodicTimer.StartTime";
+    }
+    leaf end-time {
+      type string;
+      description
+        "Device.LMAP.Event.{i}.PeriodicTimer.EndTime";
+      reference
+        "Device.LMAP.Event.{i}.PeriodicTimer.EndTime";
+    }
+    leaf interval {
+      type uint32;
+      description
+        "Device.LMAP.Event.{i}.PeriodicTimer.Interval";
+      reference
+        "Device.LMAP.Event.{i}.PeriodicTimer.Interval";
+    }
+  }
+
+  grouping lmap-measurement-agent-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Alias";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Enable";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Enable";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Version";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Version";
+    }
+    leaf last-started {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.LastStarted";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.LastStarted";
+    }
+    leaf capability-tags {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.CapabilityTags";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.CapabilityTags";
+    }
+    leaf identifier {
+      type string {
+        length "min..36";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Identifier";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Identifier";
+    }
+    leaf group-identifier {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.GroupIdentifier";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.GroupIdentifier";
+    }
+    leaf measurement-point {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.MeasurementPoint";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.MeasurementPoint";
+    }
+    leaf use-agent-identifier-in-reports {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.UseAgentIdentifierInReports";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.UseAgentIdentifierInReports";
+    }
+    leaf use-group-identifier-in-reports {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.UseGroupIdentifierInReports";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.UseGroupIdentifierInReports";
+    }
+    leaf use-measurement-point-in-reports {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.UseMeasurementPointInReports";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.UseMeasurementPointInReports";
+    }
+    leaf public-credential {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.PublicCredential";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.PublicCredential";
+    }
+    leaf private-credential {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.PrivateCredential";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.PrivateCredential";
+    }
+    leaf event-log {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.EventLog";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.EventLog";
+    }
+    leaf task-capability-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapabilityNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapabilityNumberOfEntries";
+    }
+    leaf schedule-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.ScheduleNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.ScheduleNumberOfEntries";
+    }
+    leaf task-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.TaskNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.TaskNumberOfEntries";
+    }
+    leaf communication-channel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannelNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannelNumberOfEntries";
+    }
+    leaf instruction-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.InstructionNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.InstructionNumberOfEntries";
+    }
+  }
+
+  grouping measurement-agent-communication-channel-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.Enable";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.Alias";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.Name";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.Name";
+    }
+    leaf use-bulk-data-profile {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.UseBulkDataProfile";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.UseBulkDataProfile";
+    }
+    leaf bulk-data-profile {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.BulkDataProfile";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.BulkDataProfile";
+    }
+    leaf target {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.Target";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.Target";
+    }
+    leaf target-public-credential {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.TargetPublicCredential";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.TargetPublicCredential";
+    }
+    leaf interface {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.Interface";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.Interface";
+    }
+  }
+
+  grouping measurement-agent-controller-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Controller.";
+    leaf controller-timeout {
+      type int32 {
+        range "0..max";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Controller.ControllerTimeout";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Controller.ControllerTimeout";
+    }
+    leaf control-schedules {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Controller.ControlSchedules";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Controller.ControlSchedules";
+    }
+    leaf control-tasks {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Controller.ControlTasks";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Controller.ControlTasks";
+    }
+    leaf control-channels {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Controller.ControlChannels";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Controller.ControlChannels";
+    }
+  }
+
+  grouping measurement-agent-instruction-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.Enable";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.Alias";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.Alias";
+    }
+    leaf last-change {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.LastChange";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.LastChange";
+    }
+    leaf instruction-schedules {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.InstructionSchedules";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.InstructionSchedules";
+    }
+    leaf instruction-tasks {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.InstructionTasks";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.InstructionTasks";
+    }
+    leaf report-channels {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.ReportChannels";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.ReportChannels";
+    }
+    leaf measurement-suppression-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppressionNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppressionNumberOfEntries";
+    }
+  }
+
+  grouping instruction-measurement-suppression-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.Enable";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.Alias";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.Name";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.Name";
+    }
+    leaf state {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.State";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.State";
+    }
+    leaf stop-running {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.StopRunning";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.StopRunning";
+    }
+    leaf start {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.Start";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.Start";
+    }
+    leaf end {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.End";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.End";
+    }
+    leaf suppression-match {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.SuppressionMatch";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.SuppressionMatch";
+    }
+  }
+
+  grouping measurement-agent-schedule-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Enable";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Alias";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Name";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Name";
+    }
+    leaf state {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.State";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.State";
+    }
+    leaf start {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Start";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Start";
+    }
+    leaf end {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.End";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.End";
+    }
+    leaf duration {
+      type uint32;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Duration";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Duration";
+    }
+    leaf tags {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Tags";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Tags";
+    }
+    leaf suppression-tags {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.SuppressionTags";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.SuppressionTags";
+    }
+    leaf execution-mode {
+      type enumeration {
+        enum Sequential {
+          description
+            "Enum Value - Sequential";
+        }
+        enum Parallel {
+          description
+            "Enum Value - Parallel";
+        }
+        enum Pipelined {
+          description
+            "Enum Value - Pipelined";
+        }
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.ExecutionMode";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.ExecutionMode";
+    }
+    leaf last-invocation {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.LastInvocation";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.LastInvocation";
+    }
+    leaf storage {
+      type uint64;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Storage";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Storage";
+    }
+    leaf action-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.ActionNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.ActionNumberOfEntries";
+    }
+  }
+
+  grouping schedule-action-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Enable";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Alias";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Alias";
+    }
+    leaf state {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.State";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.State";
+    }
+    leaf order {
+      type uint32;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Order";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Order";
+    }
+    leaf task {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Task";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Task";
+    }
+    leaf output-destination {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.OutputDestination";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.OutputDestination";
+    }
+    leaf suppression-tags {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.SuppressionTags";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.SuppressionTags";
+    }
+    leaf tags {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Tags";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Tags";
+    }
+    leaf storage {
+      type uint64;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Storage";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Storage";
+    }
+    leaf last-invocation {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastInvocation";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastInvocation";
+    }
+    leaf last-successful-completion {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastSuccessfulCompletion";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastSuccessfulCompletion";
+    }
+    leaf last-successful-status-code {
+      type int32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastSuccessfulStatusCode";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastSuccessfulStatusCode";
+    }
+    leaf last-successful-message {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastSuccessfulMessage";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastSuccessfulMessage";
+    }
+    leaf last-failed-completion {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastFailedCompletion";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastFailedCompletion";
+    }
+    leaf last-failed-status-code {
+      type int32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastFailedStatusCode";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastFailedStatusCode";
+    }
+    leaf last-failed-message {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastFailedMessage";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.LastFailedMessage";
+    }
+    leaf option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.OptionNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.OptionNumberOfEntries";
+    }
+  }
+
+  grouping action-option-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.Enable";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.Alias";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.Alias";
+    }
+    leaf order {
+      type uint32;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.Order";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.Order";
+    }
+    leaf name {
+      type int32;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.Name";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.Name";
+    }
+    leaf value {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.Value";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.Value";
+    }
+  }
+
+  grouping action-stats-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.";
+    leaf invocations {
+      type uint64;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.Invocations";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.Invocations";
+    }
+    leaf suppressions {
+      type uint64;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.Suppressions";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.Suppressions";
+    }
+    leaf overlaps {
+      type uint64;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.Overlaps";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.Overlaps";
+    }
+    leaf failures {
+      type uint64;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.Failures";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.Failures";
+    }
+  }
+
+  grouping schedule-stats-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.";
+    leaf invocations {
+      type uint64;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.Invocations";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.Invocations";
+    }
+    leaf suppressions {
+      type uint64;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.Suppressions";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.Suppressions";
+    }
+    leaf overlaps {
+      type uint64;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.Overlaps";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.Overlaps";
+    }
+    leaf failures {
+      type uint64;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.Failures";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.Failures";
+    }
+  }
+
+  grouping measurement-agent-task-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Task.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Enable";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Alias";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Name";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Name";
+    }
+    leaf tags {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Tags";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Tags";
+    }
+    leaf option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.OptionNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.OptionNumberOfEntries";
+    }
+    leaf registry-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.RegistryNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.RegistryNumberOfEntries";
+    }
+  }
+
+  grouping task-option-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.Enable";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.Alias";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.Alias";
+    }
+    leaf order {
+      type uint32;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.Order";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.Order";
+    }
+    leaf name {
+      type int32;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.Name";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.Name";
+    }
+    leaf value {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.Value";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.Value";
+    }
+  }
+
+  grouping task-registry-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.Enable";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.Alias";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.Alias";
+    }
+    leaf registry-entry {
+      type string;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.RegistryEntry";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.RegistryEntry";
+    }
+    leaf roles {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.Roles";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.Roles";
+    }
+  }
+
+  grouping measurement-agent-task-capability-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Name";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Name";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Version";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Version";
+    }
+    leaf task-capability-registry-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.TaskCapabilityRegistryNumberOfEntries";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.TaskCapabilityRegistryNumberOfEntries";
+    }
+  }
+
+  grouping task-capability-registry-g {
+    description
+      "Grouping object for Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Registry.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf registry-entry {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Registry.{i}.RegistryEntry";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Registry.{i}.RegistryEntry";
+    }
+    leaf roles {
+      type string;
+      config false;
+      description
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Registry.{i}.Roles";
+      reference
+        "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Registry.{i}.Roles";
+    }
+  }
+
+  grouping lmap-report-g {
+    description
+      "Grouping object for Device.LMAP.Report.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf report-date {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.ReportDate";
+      reference
+        "Device.LMAP.Report.{i}.ReportDate";
+    }
+    leaf agent-identifier {
+      type string {
+        length "min..36";
+      }
+      config false;
+      description
+        "Device.LMAP.Report.{i}.AgentIdentifier";
+      reference
+        "Device.LMAP.Report.{i}.AgentIdentifier";
+    }
+    leaf group-identifier {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.GroupIdentifier";
+      reference
+        "Device.LMAP.Report.{i}.GroupIdentifier";
+    }
+    leaf measurement-point {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.MeasurementPoint";
+      reference
+        "Device.LMAP.Report.{i}.MeasurementPoint";
+    }
+    leaf result-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.ResultNumberOfEntries";
+      reference
+        "Device.LMAP.Report.{i}.ResultNumberOfEntries";
+    }
+  }
+
+  grouping report-result-g {
+    description
+      "Grouping object for Device.LMAP.Report.{i}.Result.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf task-name {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.TaskName";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.TaskName";
+    }
+    leaf schedule-name {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.ScheduleName";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.ScheduleName";
+    }
+    leaf action-name {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.ActionName";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.ActionName";
+    }
+    leaf event-time {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.EventTime";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.EventTime";
+    }
+    leaf start-time {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.StartTime";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.StartTime";
+    }
+    leaf end-time {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.EndTime";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.EndTime";
+    }
+    leaf cycle-number {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.CycleNumber";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.CycleNumber";
+    }
+    leaf status {
+      type int32;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.Status";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.Status";
+    }
+    leaf tags {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.Tags";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.Tags";
+    }
+    leaf option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.OptionNumberOfEntries";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.OptionNumberOfEntries";
+    }
+    leaf result-conflict-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.ResultConflictNumberOfEntries";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.ResultConflictNumberOfEntries";
+    }
+    leaf result-report-table-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.ResultReportTableNumberOfEntries";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.ResultReportTableNumberOfEntries";
+    }
+  }
+
+  grouping result-conflict-g {
+    description
+      "Grouping object for Device.LMAP.Report.{i}.Result.{i}.Conflict.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf task-name {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.Conflict.{i}.TaskName";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.Conflict.{i}.TaskName";
+    }
+    leaf schedule-name {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.Conflict.{i}.ScheduleName";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.Conflict.{i}.ScheduleName";
+    }
+    leaf action-name {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.Conflict.{i}.ActionName";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.Conflict.{i}.ActionName";
+    }
+  }
+
+  grouping result-option-g {
+    description
+      "Grouping object for Device.LMAP.Report.{i}.Result.{i}.Option.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf order {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.Option.{i}.Order";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.Option.{i}.Order";
+    }
+    leaf name {
+      type int32;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.Option.{i}.Name";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.Option.{i}.Name";
+    }
+    leaf value {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.Option.{i}.Value";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.Option.{i}.Value";
+    }
+  }
+
+  grouping result-report-table-g {
+    description
+      "Grouping object for Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf column-labels {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.ColumnLabels";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.ColumnLabels";
+    }
+    leaf result-report-row-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.ResultReportRowNumberOfEntries";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.ResultReportRowNumberOfEntries";
+    }
+    leaf registry-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.RegistryNumberOfEntries";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.RegistryNumberOfEntries";
+    }
+  }
+
+  grouping report-table-registry-g {
+    description
+      "Grouping object for Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.Registry.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf registry-entry {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.Registry.{i}.RegistryEntry";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.Registry.{i}.RegistryEntry";
+    }
+    leaf roles {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.Registry.{i}.Roles";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.Registry.{i}.Roles";
+    }
+  }
+
+  grouping report-table-result-row-g {
+    description
+      "Grouping object for Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.ResultRow.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf values {
+      type string;
+      config false;
+      description
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.ResultRow.{i}.Values";
+      reference
+        "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.ResultRow.{i}.Values";
+    }
+  }
+
+  grouping device-map-g {
+    description
+      "Grouping object for Device.MAP.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.MAP.Enable";
+      reference
+        "Device.MAP.Enable";
+    }
+    leaf domain-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MAP.DomainNumberOfEntries";
+      reference
+        "Device.MAP.DomainNumberOfEntries";
+    }
+  }
+
+  grouping map-domain-g {
+    description
+      "Grouping object for Device.MAP.Domain.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.MAP.Domain.{i}.Enable";
+      reference
+        "Device.MAP.Domain.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Status";
+      reference
+        "Device.MAP.Domain.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MAP.Domain.{i}.Alias";
+      reference
+        "Device.MAP.Domain.{i}.Alias";
+    }
+    leaf transport-mode {
+      type enumeration {
+        enum Encapsulation {
+          description
+            "Enum Value - Encapsulation";
+        }
+        enum Translation {
+          description
+            "Enum Value - Translation";
+        }
+      }
+      description
+        "Device.MAP.Domain.{i}.TransportMode";
+      reference
+        "Device.MAP.Domain.{i}.TransportMode";
+    }
+    leaf wan-interface {
+      type string;
+      description
+        "Device.MAP.Domain.{i}.WANInterface";
+      reference
+        "Device.MAP.Domain.{i}.WANInterface";
+    }
+    leaf ipv6-prefix {
+      type string;
+      description
+        "Device.MAP.Domain.{i}.IPv6Prefix";
+      reference
+        "Device.MAP.Domain.{i}.IPv6Prefix";
+    }
+    leaf bripv6-prefix {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.MAP.Domain.{i}.BRIPv6Prefix";
+      reference
+        "Device.MAP.Domain.{i}.BRIPv6Prefix";
+    }
+    leaf dscp-mark-policy {
+      type int32 {
+        range "-2..63";
+      }
+      description
+        "Device.MAP.Domain.{i}.DSCPMarkPolicy";
+      reference
+        "Device.MAP.Domain.{i}.DSCPMarkPolicy";
+    }
+    leaf psid-offset {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "Device.MAP.Domain.{i}.PSIDOffset";
+      reference
+        "Device.MAP.Domain.{i}.PSIDOffset";
+    }
+    leaf psid-length {
+      type uint32 {
+        range "0..16";
+      }
+      description
+        "Device.MAP.Domain.{i}.PSIDLength";
+      reference
+        "Device.MAP.Domain.{i}.PSIDLength";
+    }
+    leaf psid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.MAP.Domain.{i}.PSID";
+      reference
+        "Device.MAP.Domain.{i}.PSID";
+    }
+    leaf include-system-ports {
+      type boolean;
+      description
+        "Device.MAP.Domain.{i}.IncludeSystemPorts";
+      reference
+        "Device.MAP.Domain.{i}.IncludeSystemPorts";
+    }
+    leaf rule-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.RuleNumberOfEntries";
+      reference
+        "Device.MAP.Domain.{i}.RuleNumberOfEntries";
+    }
+  }
+
+  grouping domain-interface-g {
+    description
+      "Grouping object for Device.MAP.Domain.{i}.Interface.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.MAP.Domain.{i}.Interface.Enable";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Status";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MAP.Domain.{i}.Interface.Alias";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Name";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.LastChange";
+      reference
+        "Device.MAP.Domain.{i}.Interface.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.MAP.Domain.{i}.Interface.LowerLayers";
+      reference
+        "Device.MAP.Domain.{i}.Interface.LowerLayers";
+    }
+  }
+
+  grouping domain-interface-stats-g {
+    description
+      "Grouping object for Device.MAP.Domain.{i}.Interface.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.BytesSent";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.BytesReceived";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.PacketsSent";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.PacketsReceived";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.ErrorsSent";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.ErrorsReceived";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.UnicastPacketsSent";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.UnicastPacketsReceived";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.DiscardPacketsSent";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.DiscardPacketsReceived";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.MulticastPacketsSent";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.MulticastPacketsReceived";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.BroadcastPacketsSent";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Interface.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.MAP.Domain.{i}.Interface.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping domain-rule-g {
+    description
+      "Grouping object for Device.MAP.Domain.{i}.Rule.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.Enable";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.Status";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.Alias";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.Alias";
+    }
+    leaf origin {
+      type string;
+      config false;
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.Origin";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.Origin";
+    }
+    leaf ipv6-prefix {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.IPv6Prefix";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.IPv6Prefix";
+    }
+    leaf ipv4-prefix {
+      type string {
+        length "min..18";
+      }
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.IPv4Prefix";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.IPv4Prefix";
+    }
+    leaf ea-bits-length {
+      type uint32 {
+        range "0..48";
+      }
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.EABitsLength";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.EABitsLength";
+    }
+    leaf is-fmr {
+      type boolean;
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.IsFMR";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.IsFMR";
+    }
+    leaf psid-offset {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.PSIDOffset";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.PSIDOffset";
+    }
+    leaf psid-length {
+      type uint32 {
+        range "0..16";
+      }
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.PSIDLength";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.PSIDLength";
+    }
+    leaf psid {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.MAP.Domain.{i}.Rule.{i}.PSID";
+      reference
+        "Device.MAP.Domain.{i}.Rule.{i}.PSID";
+    }
+  }
+
+  grouping device-mqtt-g {
+    description
+      "Grouping object for Device.MQTT.";
+    leaf client-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.ClientNumberOfEntries";
+      reference
+        "Device.MQTT.ClientNumberOfEntries";
+    }
+    leaf broker-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.BrokerNumberOfEntries";
+      reference
+        "Device.MQTT.BrokerNumberOfEntries";
+    }
+  }
+
+  grouping mqtt-broker-g {
+    description
+      "Grouping object for Device.MQTT.Broker.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Alias";
+      reference
+        "Device.MQTT.Broker.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Name";
+      reference
+        "Device.MQTT.Broker.{i}.Name";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.MQTT.Broker.{i}.Enable";
+      reference
+        "Device.MQTT.Broker.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Status";
+      reference
+        "Device.MQTT.Broker.{i}.Status";
+    }
+    leaf port {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Port";
+      reference
+        "Device.MQTT.Broker.{i}.Port";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Interface";
+      reference
+        "Device.MQTT.Broker.{i}.Interface";
+    }
+    leaf username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Username";
+      reference
+        "Device.MQTT.Broker.{i}.Username";
+    }
+    leaf bridge-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.BridgeNumberOfEntries";
+      reference
+        "Device.MQTT.Broker.{i}.BridgeNumberOfEntries";
+    }
+  }
+
+  grouping broker-bridge-g {
+    description
+      "Grouping object for Device.MQTT.Broker.{i}.Bridge.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Alias";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Name";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Name";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Enable";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Status";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Status";
+    }
+    leaf client-id {
+      type string {
+        length "1..23";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ClientID";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ClientID";
+    }
+    leaf username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Username";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Username";
+    }
+    leaf transport-protocol {
+      type string;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.TransportProtocol";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.TransportProtocol";
+    }
+    leaf protocol-version {
+      type string;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ProtocolVersion";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ProtocolVersion";
+    }
+    leaf clean-session {
+      type boolean;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.CleanSession";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.CleanSession";
+    }
+    leaf message-retry-time {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.MessageRetryTime";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.MessageRetryTime";
+    }
+    leaf connect-retry-time {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ConnectRetryTime";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ConnectRetryTime";
+    }
+    leaf keep-alive-time {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.KeepAliveTime";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.KeepAliveTime";
+    }
+    leaf server-selection-algorithm {
+      type enumeration {
+        enum Priority {
+          description
+            "Enum Value - Priority";
+        }
+        enum RoundRobin {
+          description
+            "Enum Value - RoundRobin";
+        }
+        enum Random {
+          description
+            "Enum Value - Random";
+        }
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ServerSelectionAlgorithm";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ServerSelectionAlgorithm";
+    }
+    leaf server-connection {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ServerConnection";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ServerConnection";
+    }
+    leaf server-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ServerNumberOfEntries";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.ServerNumberOfEntries";
+    }
+    leaf subscription-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.SubscriptionNumberOfEntries";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.SubscriptionNumberOfEntries";
+    }
+  }
+
+  grouping bridge-server-g {
+    description
+      "Grouping object for Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Enable";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Alias";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Alias";
+    }
+    leaf priority {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Priority";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Priority";
+    }
+    leaf weight {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Weight";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Weight";
+    }
+    leaf address {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Address";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Address";
+    }
+    leaf port {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Port";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.Port";
+    }
+  }
+
+  grouping bridge-subscription-g {
+    description
+      "Grouping object for Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.Alias";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.Enable";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.Status";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.Status";
+    }
+    leaf topic {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.Topic";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.Topic";
+    }
+    leaf direction {
+      type enumeration {
+        enum out {
+          description
+            "Enum Value - out";
+        }
+        enum in {
+          description
+            "Enum Value - in";
+        }
+        enum both {
+          description
+            "Enum Value - both";
+        }
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.Direction";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.Direction";
+    }
+    leaf qo-s {
+      type uint32 {
+        range "0..2";
+      }
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.QoS";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.QoS";
+    }
+    leaf local-prefix {
+      type string;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.LocalPrefix";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.LocalPrefix";
+    }
+    leaf remote-prefix {
+      type string;
+      description
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.RemotePrefix";
+      reference
+        "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.RemotePrefix";
+    }
+  }
+
+  grouping broker-stats-g {
+    description
+      "Grouping object for Device.MQTT.Broker.{i}.Stats.";
+    leaf total-number-of-clients {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Stats.TotalNumberOfClients";
+      reference
+        "Device.MQTT.Broker.{i}.Stats.TotalNumberOfClients";
+    }
+    leaf number-of-active-clients {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Stats.NumberOfActiveClients";
+      reference
+        "Device.MQTT.Broker.{i}.Stats.NumberOfActiveClients";
+    }
+    leaf number-of-inactive-clients {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Stats.NumberOfInactiveClients";
+      reference
+        "Device.MQTT.Broker.{i}.Stats.NumberOfInactiveClients";
+    }
+    leaf subscriptions {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Stats.Subscriptions";
+      reference
+        "Device.MQTT.Broker.{i}.Stats.Subscriptions";
+    }
+    leaf publish-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Stats.PublishSent";
+      reference
+        "Device.MQTT.Broker.{i}.Stats.PublishSent";
+    }
+    leaf publish-received {
+      type uint64;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Stats.PublishReceived";
+      reference
+        "Device.MQTT.Broker.{i}.Stats.PublishReceived";
+    }
+    leaf mqtt-messages-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Stats.MQTTMessagesSent";
+      reference
+        "Device.MQTT.Broker.{i}.Stats.MQTTMessagesSent";
+    }
+    leaf mqtt-messages-received {
+      type uint64;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Stats.MQTTMessagesReceived";
+      reference
+        "Device.MQTT.Broker.{i}.Stats.MQTTMessagesReceived";
+    }
+    leaf connection-errors {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Stats.ConnectionErrors";
+      reference
+        "Device.MQTT.Broker.{i}.Stats.ConnectionErrors";
+    }
+    leaf publish-errors {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Broker.{i}.Stats.PublishErrors";
+      reference
+        "Device.MQTT.Broker.{i}.Stats.PublishErrors";
+    }
+  }
+
+  grouping mqtt-capabilities-g {
+    description
+      "Grouping object for Device.MQTT.Capabilities.";
+    leaf protocol-versions-supported {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Capabilities.ProtocolVersionsSupported";
+      reference
+        "Device.MQTT.Capabilities.ProtocolVersionsSupported";
+    }
+    leaf transport-protocol-supported {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Capabilities.TransportProtocolSupported";
+      reference
+        "Device.MQTT.Capabilities.TransportProtocolSupported";
+    }
+    leaf max-number-of-client-subscriptions {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Capabilities.MaxNumberOfClientSubscriptions";
+      reference
+        "Device.MQTT.Capabilities.MaxNumberOfClientSubscriptions";
+    }
+    leaf max-number-of-broker-bridges {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Capabilities.MaxNumberOfBrokerBridges";
+      reference
+        "Device.MQTT.Capabilities.MaxNumberOfBrokerBridges";
+    }
+    leaf max-number-of-broker-bridge-subscriptions {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Capabilities.MaxNumberOfBrokerBridgeSubscriptions";
+      reference
+        "Device.MQTT.Capabilities.MaxNumberOfBrokerBridgeSubscriptions";
+    }
+  }
+
+  grouping mqtt-client-g {
+    description
+      "Grouping object for Device.MQTT.Client.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MQTT.Client.{i}.Alias";
+      reference
+        "Device.MQTT.Client.{i}.Alias";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MQTT.Client.{i}.Name";
+      reference
+        "Device.MQTT.Client.{i}.Name";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.MQTT.Client.{i}.Enable";
+      reference
+        "Device.MQTT.Client.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Status";
+      reference
+        "Device.MQTT.Client.{i}.Status";
+    }
+    leaf client-id {
+      type string {
+        length "1..23";
+      }
+      description
+        "Device.MQTT.Client.{i}.ClientID";
+      reference
+        "Device.MQTT.Client.{i}.ClientID";
+    }
+    leaf username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.MQTT.Client.{i}.Username";
+      reference
+        "Device.MQTT.Client.{i}.Username";
+    }
+    leaf transport-protocol {
+      type string;
+      description
+        "Device.MQTT.Client.{i}.TransportProtocol";
+      reference
+        "Device.MQTT.Client.{i}.TransportProtocol";
+    }
+    leaf protocol-version {
+      type string;
+      description
+        "Device.MQTT.Client.{i}.ProtocolVersion";
+      reference
+        "Device.MQTT.Client.{i}.ProtocolVersion";
+    }
+    leaf clean-session {
+      type boolean;
+      description
+        "Device.MQTT.Client.{i}.CleanSession";
+      reference
+        "Device.MQTT.Client.{i}.CleanSession";
+    }
+    leaf message-retry-time {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.MQTT.Client.{i}.MessageRetryTime";
+      reference
+        "Device.MQTT.Client.{i}.MessageRetryTime";
+    }
+    leaf connect-retry-time {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.MQTT.Client.{i}.ConnectRetryTime";
+      reference
+        "Device.MQTT.Client.{i}.ConnectRetryTime";
+    }
+    leaf keep-alive-time {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.MQTT.Client.{i}.KeepAliveTime";
+      reference
+        "Device.MQTT.Client.{i}.KeepAliveTime";
+    }
+    leaf broker-address {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.MQTT.Client.{i}.BrokerAddress";
+      reference
+        "Device.MQTT.Client.{i}.BrokerAddress";
+    }
+    leaf broker-port {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.MQTT.Client.{i}.BrokerPort";
+      reference
+        "Device.MQTT.Client.{i}.BrokerPort";
+    }
+    leaf will-enable {
+      type boolean;
+      description
+        "Device.MQTT.Client.{i}.WillEnable";
+      reference
+        "Device.MQTT.Client.{i}.WillEnable";
+    }
+    leaf will-topic {
+      type string;
+      description
+        "Device.MQTT.Client.{i}.WillTopic";
+      reference
+        "Device.MQTT.Client.{i}.WillTopic";
+    }
+    leaf will-value {
+      type string;
+      description
+        "Device.MQTT.Client.{i}.WillValue";
+      reference
+        "Device.MQTT.Client.{i}.WillValue";
+    }
+    leaf will-qo-s {
+      type uint32 {
+        range "0..2";
+      }
+      description
+        "Device.MQTT.Client.{i}.WillQoS";
+      reference
+        "Device.MQTT.Client.{i}.WillQoS";
+    }
+    leaf will-retain {
+      type boolean;
+      description
+        "Device.MQTT.Client.{i}.WillRetain";
+      reference
+        "Device.MQTT.Client.{i}.WillRetain";
+    }
+    leaf subscription-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.SubscriptionNumberOfEntries";
+      reference
+        "Device.MQTT.Client.{i}.SubscriptionNumberOfEntries";
+    }
+  }
+
+  grouping client-stats-g {
+    description
+      "Grouping object for Device.MQTT.Client.{i}.Stats.";
+    leaf broker-connection-established {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.BrokerConnectionEstablished";
+      reference
+        "Device.MQTT.Client.{i}.Stats.BrokerConnectionEstablished";
+    }
+    leaf last-publish-message-sent {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.LastPublishMessageSent";
+      reference
+        "Device.MQTT.Client.{i}.Stats.LastPublishMessageSent";
+    }
+    leaf last-publish-message-received {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.LastPublishMessageReceived";
+      reference
+        "Device.MQTT.Client.{i}.Stats.LastPublishMessageReceived";
+    }
+    leaf publish-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.PublishSent";
+      reference
+        "Device.MQTT.Client.{i}.Stats.PublishSent";
+    }
+    leaf publish-received {
+      type uint64;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.PublishReceived";
+      reference
+        "Device.MQTT.Client.{i}.Stats.PublishReceived";
+    }
+    leaf subscribe-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.SubscribeSent";
+      reference
+        "Device.MQTT.Client.{i}.Stats.SubscribeSent";
+    }
+    leaf un-subscribe-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.UnSubscribeSent";
+      reference
+        "Device.MQTT.Client.{i}.Stats.UnSubscribeSent";
+    }
+    leaf mqtt-messages-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.MQTTMessagesSent";
+      reference
+        "Device.MQTT.Client.{i}.Stats.MQTTMessagesSent";
+    }
+    leaf mqtt-messages-received {
+      type uint64;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.MQTTMessagesReceived";
+      reference
+        "Device.MQTT.Client.{i}.Stats.MQTTMessagesReceived";
+    }
+    leaf connection-errors {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.ConnectionErrors";
+      reference
+        "Device.MQTT.Client.{i}.Stats.ConnectionErrors";
+    }
+    leaf publish-errors {
+      type uint32;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Stats.PublishErrors";
+      reference
+        "Device.MQTT.Client.{i}.Stats.PublishErrors";
+    }
+  }
+
+  grouping client-subscription-g {
+    description
+      "Grouping object for Device.MQTT.Client.{i}.Subscription.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MQTT.Client.{i}.Subscription.{i}.Alias";
+      reference
+        "Device.MQTT.Client.{i}.Subscription.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.MQTT.Client.{i}.Subscription.{i}.Enable";
+      reference
+        "Device.MQTT.Client.{i}.Subscription.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.MQTT.Client.{i}.Subscription.{i}.Status";
+      reference
+        "Device.MQTT.Client.{i}.Subscription.{i}.Status";
+    }
+    leaf topic {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.MQTT.Client.{i}.Subscription.{i}.Topic";
+      reference
+        "Device.MQTT.Client.{i}.Subscription.{i}.Topic";
+    }
+    leaf qo-s {
+      type uint32 {
+        range "0..2";
+      }
+      description
+        "Device.MQTT.Client.{i}.Subscription.{i}.QoS";
+      reference
+        "Device.MQTT.Client.{i}.Subscription.{i}.QoS";
+    }
+  }
+
+  grouping device-management-server-g {
+    description
+      "Grouping object for Device.ManagementServer.";
+    leaf enable-cwmp {
+      type boolean;
+      description
+        "Device.ManagementServer.EnableCWMP";
+      reference
+        "Device.ManagementServer.EnableCWMP";
+    }
+    leaf url {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ManagementServer.URL";
+      reference
+        "Device.ManagementServer.URL";
+    }
+    leaf username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ManagementServer.Username";
+      reference
+        "Device.ManagementServer.Username";
+    }
+    leaf schedule-reboot {
+      type string;
+      description
+        "Device.ManagementServer.ScheduleReboot";
+      reference
+        "Device.ManagementServer.ScheduleReboot";
+    }
+    leaf delay-reboot {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.ManagementServer.DelayReboot";
+      reference
+        "Device.ManagementServer.DelayReboot";
+    }
+    leaf periodic-inform-enable {
+      type boolean;
+      description
+        "Device.ManagementServer.PeriodicInformEnable";
+      reference
+        "Device.ManagementServer.PeriodicInformEnable";
+    }
+    leaf periodic-inform-interval {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.ManagementServer.PeriodicInformInterval";
+      reference
+        "Device.ManagementServer.PeriodicInformInterval";
+    }
+    leaf periodic-inform-time {
+      type string;
+      description
+        "Device.ManagementServer.PeriodicInformTime";
+      reference
+        "Device.ManagementServer.PeriodicInformTime";
+    }
+    leaf parameter-key {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.ParameterKey";
+      reference
+        "Device.ManagementServer.ParameterKey";
+    }
+    leaf connection-request-url {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.ConnectionRequestURL";
+      reference
+        "Device.ManagementServer.ConnectionRequestURL";
+    }
+    leaf connection-request-username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ManagementServer.ConnectionRequestUsername";
+      reference
+        "Device.ManagementServer.ConnectionRequestUsername";
+    }
+    leaf upgrades-managed {
+      type boolean;
+      description
+        "Device.ManagementServer.UpgradesManaged";
+      reference
+        "Device.ManagementServer.UpgradesManaged";
+    }
+    leaf kick-url {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.KickURL";
+      reference
+        "Device.ManagementServer.KickURL";
+    }
+    leaf download-progress-url {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.DownloadProgressURL";
+      reference
+        "Device.ManagementServer.DownloadProgressURL";
+    }
+    leaf default-active-notification-throttle {
+      type uint32;
+      description
+        "Device.ManagementServer.DefaultActiveNotificationThrottle";
+      reference
+        "Device.ManagementServer.DefaultActiveNotificationThrottle";
+    }
+    leaf cwmp-retry-minimum-wait-interval {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.ManagementServer.CWMPRetryMinimumWaitInterval";
+      reference
+        "Device.ManagementServer.CWMPRetryMinimumWaitInterval";
+    }
+    leaf cwmp-retry-interval-multiplier {
+      type uint32 {
+        range "1000..65535";
+      }
+      description
+        "Device.ManagementServer.CWMPRetryIntervalMultiplier";
+      reference
+        "Device.ManagementServer.CWMPRetryIntervalMultiplier";
+    }
+    leaf http-connection-request-enable {
+      type boolean;
+      description
+        "Device.ManagementServer.HTTPConnectionRequestEnable";
+      reference
+        "Device.ManagementServer.HTTPConnectionRequestEnable";
+    }
+    leaf udp-connection-request-address {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.UDPConnectionRequestAddress";
+      reference
+        "Device.ManagementServer.UDPConnectionRequestAddress";
+    }
+    leaf stun-enable {
+      type boolean;
+      description
+        "Device.ManagementServer.STUNEnable";
+      reference
+        "Device.ManagementServer.STUNEnable";
+    }
+    leaf stun-server-address {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ManagementServer.STUNServerAddress";
+      reference
+        "Device.ManagementServer.STUNServerAddress";
+    }
+    leaf stun-server-port {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.ManagementServer.STUNServerPort";
+      reference
+        "Device.ManagementServer.STUNServerPort";
+    }
+    leaf stun-username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ManagementServer.STUNUsername";
+      reference
+        "Device.ManagementServer.STUNUsername";
+    }
+    leaf stun-maximum-keep-alive-period {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.ManagementServer.STUNMaximumKeepAlivePeriod";
+      reference
+        "Device.ManagementServer.STUNMaximumKeepAlivePeriod";
+    }
+    leaf stun-minimum-keep-alive-period {
+      type uint32;
+      description
+        "Device.ManagementServer.STUNMinimumKeepAlivePeriod";
+      reference
+        "Device.ManagementServer.STUNMinimumKeepAlivePeriod";
+    }
+    leaf nat-detected {
+      type boolean;
+      config false;
+      description
+        "Device.ManagementServer.NATDetected";
+      reference
+        "Device.ManagementServer.NATDetected";
+    }
+    leaf alias-based-addressing {
+      type boolean;
+      config false;
+      description
+        "Device.ManagementServer.AliasBasedAddressing";
+      reference
+        "Device.ManagementServer.AliasBasedAddressing";
+    }
+    leaf instance-mode {
+      type enumeration {
+        enum InstanceNumber {
+          description
+            "Enum Value - InstanceNumber";
+        }
+        enum InstanceAlias {
+          description
+            "Enum Value - InstanceAlias";
+        }
+      }
+      description
+        "Device.ManagementServer.InstanceMode";
+      reference
+        "Device.ManagementServer.InstanceMode";
+    }
+    leaf auto-create-instances {
+      type boolean;
+      description
+        "Device.ManagementServer.AutoCreateInstances";
+      reference
+        "Device.ManagementServer.AutoCreateInstances";
+    }
+    leaf manageable-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ManagementServer.ManageableDeviceNumberOfEntries";
+      reference
+        "Device.ManagementServer.ManageableDeviceNumberOfEntries";
+    }
+    leaf manageable-device-notification-limit {
+      type uint32;
+      description
+        "Device.ManagementServer.ManageableDeviceNotificationLimit";
+      reference
+        "Device.ManagementServer.ManageableDeviceNotificationLimit";
+    }
+    leaf embedded-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDeviceNumberOfEntries";
+      reference
+        "Device.ManagementServer.EmbeddedDeviceNumberOfEntries";
+    }
+    leaf virtual-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ManagementServer.VirtualDeviceNumberOfEntries";
+      reference
+        "Device.ManagementServer.VirtualDeviceNumberOfEntries";
+    }
+    leaf supported-conn-req-methods {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.SupportedConnReqMethods";
+      reference
+        "Device.ManagementServer.SupportedConnReqMethods";
+    }
+    leaf conn-req-xmpp-connection {
+      type string;
+      description
+        "Device.ManagementServer.ConnReqXMPPConnection";
+      reference
+        "Device.ManagementServer.ConnReqXMPPConnection";
+    }
+    leaf conn-req-allowed-jabber-i-ds {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ManagementServer.ConnReqAllowedJabberIDs";
+      reference
+        "Device.ManagementServer.ConnReqAllowedJabberIDs";
+    }
+    leaf conn-req-jabber-id {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.ConnReqJabberID";
+      reference
+        "Device.ManagementServer.ConnReqJabberID";
+    }
+    leaf http-compression-supported {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.HTTPCompressionSupported";
+      reference
+        "Device.ManagementServer.HTTPCompressionSupported";
+    }
+    leaf http-compression {
+      type string;
+      description
+        "Device.ManagementServer.HTTPCompression";
+      reference
+        "Device.ManagementServer.HTTPCompression";
+    }
+    leaf lightweight-notification-protocols-supported {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.LightweightNotificationProtocolsSupported";
+      reference
+        "Device.ManagementServer.LightweightNotificationProtocolsSupported";
+    }
+    leaf lightweight-notification-protocols-used {
+      type string;
+      description
+        "Device.ManagementServer.LightweightNotificationProtocolsUsed";
+      reference
+        "Device.ManagementServer.LightweightNotificationProtocolsUsed";
+    }
+    leaf lightweight-notification-trigger-interval {
+      type uint32 {
+        range "0..max";
+      }
+      description
+        "Device.ManagementServer.LightweightNotificationTriggerInterval";
+      reference
+        "Device.ManagementServer.LightweightNotificationTriggerInterval";
+    }
+    leaf lightweight-notification-trigger-time {
+      type string;
+      description
+        "Device.ManagementServer.LightweightNotificationTriggerTime";
+      reference
+        "Device.ManagementServer.LightweightNotificationTriggerTime";
+    }
+    leaf udp-lightweight-notification-host {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ManagementServer.UDPLightweightNotificationHost";
+      reference
+        "Device.ManagementServer.UDPLightweightNotificationHost";
+    }
+    leaf udp-lightweight-notification-port {
+      type uint32;
+      description
+        "Device.ManagementServer.UDPLightweightNotificationPort";
+      reference
+        "Device.ManagementServer.UDPLightweightNotificationPort";
+    }
+    leaf instance-wildcards-supported {
+      type boolean;
+      config false;
+      description
+        "Device.ManagementServer.InstanceWildcardsSupported";
+      reference
+        "Device.ManagementServer.InstanceWildcardsSupported";
+    }
+    leaf inform-parameter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ManagementServer.InformParameterNumberOfEntries";
+      reference
+        "Device.ManagementServer.InformParameterNumberOfEntries";
+    }
+  }
+
+  grouping management-server-autonomous-transfer-complete-policy-g {
+    description
+      "Grouping object for Device.ManagementServer.AutonomousTransferCompletePolicy.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.ManagementServer.AutonomousTransferCompletePolicy.Enable";
+      reference
+        "Device.ManagementServer.AutonomousTransferCompletePolicy.Enable";
+    }
+    leaf transfer-type-filter {
+      type enumeration {
+        enum Upload {
+          description
+            "Enum Value - Upload";
+        }
+        enum Download {
+          description
+            "Enum Value - Download";
+        }
+        enum Both {
+          description
+            "Enum Value - Both";
+        }
+      }
+      description
+        "Device.ManagementServer.AutonomousTransferCompletePolicy.TransferTypeFilter";
+      reference
+        "Device.ManagementServer.AutonomousTransferCompletePolicy.TransferTypeFilter";
+    }
+    leaf result-type-filter {
+      type enumeration {
+        enum Success {
+          description
+            "Enum Value - Success";
+        }
+        enum Failure {
+          description
+            "Enum Value - Failure";
+        }
+        enum Both {
+          description
+            "Enum Value - Both";
+        }
+      }
+      description
+        "Device.ManagementServer.AutonomousTransferCompletePolicy.ResultTypeFilter";
+      reference
+        "Device.ManagementServer.AutonomousTransferCompletePolicy.ResultTypeFilter";
+    }
+    leaf file-type-filter {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.ManagementServer.AutonomousTransferCompletePolicy.FileTypeFilter";
+      reference
+        "Device.ManagementServer.AutonomousTransferCompletePolicy.FileTypeFilter";
+    }
+  }
+
+  grouping management-server-du-state-change-compl-policy-g {
+    description
+      "Grouping object for Device.ManagementServer.DUStateChangeComplPolicy.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.ManagementServer.DUStateChangeComplPolicy.Enable";
+      reference
+        "Device.ManagementServer.DUStateChangeComplPolicy.Enable";
+    }
+    leaf operation-type-filter {
+      type enumeration {
+        enum Install {
+          description
+            "Enum Value - Install";
+        }
+        enum Update {
+          description
+            "Enum Value - Update";
+        }
+        enum Uninstall {
+          description
+            "Enum Value - Uninstall";
+        }
+      }
+      description
+        "Device.ManagementServer.DUStateChangeComplPolicy.OperationTypeFilter";
+      reference
+        "Device.ManagementServer.DUStateChangeComplPolicy.OperationTypeFilter";
+    }
+    leaf result-type-filter {
+      type enumeration {
+        enum Success {
+          description
+            "Enum Value - Success";
+        }
+        enum Failure {
+          description
+            "Enum Value - Failure";
+        }
+        enum Both {
+          description
+            "Enum Value - Both";
+        }
+      }
+      description
+        "Device.ManagementServer.DUStateChangeComplPolicy.ResultTypeFilter";
+      reference
+        "Device.ManagementServer.DUStateChangeComplPolicy.ResultTypeFilter";
+    }
+    leaf fault-code-filter {
+      type enumeration {
+        enum 9001 {
+          description
+            "Enum Value - 9001";
+        }
+        enum 9003 {
+          description
+            "Enum Value - 9003";
+        }
+        enum 9012 {
+          description
+            "Enum Value - 9012";
+        }
+        enum 9013 {
+          description
+            "Enum Value - 9013";
+        }
+        enum 9015 {
+          description
+            "Enum Value - 9015";
+        }
+        enum 9016 {
+          description
+            "Enum Value - 9016";
+        }
+        enum 9017 {
+          description
+            "Enum Value - 9017";
+        }
+        enum 9018 {
+          description
+            "Enum Value - 9018";
+        }
+        enum 9022 {
+          description
+            "Enum Value - 9022";
+        }
+        enum 9023 {
+          description
+            "Enum Value - 9023";
+        }
+        enum 9024 {
+          description
+            "Enum Value - 9024";
+        }
+        enum 9025 {
+          description
+            "Enum Value - 9025";
+        }
+        enum 9026 {
+          description
+            "Enum Value - 9026";
+        }
+        enum 9027 {
+          description
+            "Enum Value - 9027";
+        }
+        enum 9028 {
+          description
+            "Enum Value - 9028";
+        }
+        enum 9029 {
+          description
+            "Enum Value - 9029";
+        }
+        enum 9030 {
+          description
+            "Enum Value - 9030";
+        }
+        enum 9031 {
+          description
+            "Enum Value - 9031";
+        }
+        enum 9032 {
+          description
+            "Enum Value - 9032";
+        }
+      }
+      description
+        "Device.ManagementServer.DUStateChangeComplPolicy.FaultCodeFilter";
+      reference
+        "Device.ManagementServer.DUStateChangeComplPolicy.FaultCodeFilter";
+    }
+  }
+
+  grouping download-availability-announcement-g {
+    description
+      "Grouping object for Device.ManagementServer.DownloadAvailability.Announcement.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.ManagementServer.DownloadAvailability.Announcement.Enable";
+      reference
+        "Device.ManagementServer.DownloadAvailability.Announcement.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.DownloadAvailability.Announcement.Status";
+      reference
+        "Device.ManagementServer.DownloadAvailability.Announcement.Status";
+    }
+    leaf group-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ManagementServer.DownloadAvailability.Announcement.GroupNumberOfEntries";
+      reference
+        "Device.ManagementServer.DownloadAvailability.Announcement.GroupNumberOfEntries";
+    }
+  }
+
+  grouping announcement-group-g {
+    description
+      "Grouping object for Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.Alias";
+      reference
+        "Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.Enable";
+      reference
+        "Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.Status";
+      reference
+        "Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.Status";
+    }
+    leaf url {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.URL";
+      reference
+        "Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.URL";
+    }
+  }
+
+  grouping download-availability-query-g {
+    description
+      "Grouping object for Device.ManagementServer.DownloadAvailability.Query.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.ManagementServer.DownloadAvailability.Query.Enable";
+      reference
+        "Device.ManagementServer.DownloadAvailability.Query.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.DownloadAvailability.Query.Status";
+      reference
+        "Device.ManagementServer.DownloadAvailability.Query.Status";
+    }
+    leaf url {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ManagementServer.DownloadAvailability.Query.URL";
+      reference
+        "Device.ManagementServer.DownloadAvailability.Query.URL";
+    }
+  }
+
+  grouping management-server-embedded-device-g {
+    description
+      "Grouping object for Device.ManagementServer.EmbeddedDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf controller-id {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.ControllerID";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.ControllerID";
+    }
+    leaf proxied-device-id {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.ProxiedDeviceID";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.ProxiedDeviceID";
+    }
+    leaf reference {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.Reference";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.Reference";
+    }
+    leaf supported-data-model {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.SupportedDataModel";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.SupportedDataModel";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.Host";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.Host";
+    }
+    leaf proxy-protocol {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.ProxyProtocol";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.ProxyProtocol";
+    }
+    leaf proxy-protocol-reference {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.ProxyProtocolReference";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.ProxyProtocolReference";
+    }
+    leaf discovery-protocol {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.DiscoveryProtocol";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.DiscoveryProtocol";
+    }
+    leaf discovery-protocol-reference {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.DiscoveryProtocolReference";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.DiscoveryProtocolReference";
+    }
+    leaf command-processed {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.CommandProcessed";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.CommandProcessed";
+    }
+    leaf command-processing-err-msg {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.CommandProcessingErrMsg";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.CommandProcessingErrMsg";
+    }
+    leaf last-sync-time {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.EmbeddedDevice.{i}.LastSyncTime";
+      reference
+        "Device.ManagementServer.EmbeddedDevice.{i}.LastSyncTime";
+    }
+  }
+
+  grouping management-server-heartbeat-policy-g {
+    description
+      "Grouping object for Device.ManagementServer.HeartbeatPolicy.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.ManagementServer.HeartbeatPolicy.Enable";
+      reference
+        "Device.ManagementServer.HeartbeatPolicy.Enable";
+    }
+    leaf reporting-interval {
+      type uint32 {
+        range "30..max";
+      }
+      description
+        "Device.ManagementServer.HeartbeatPolicy.ReportingInterval";
+      reference
+        "Device.ManagementServer.HeartbeatPolicy.ReportingInterval";
+    }
+    leaf initiation-time {
+      type string;
+      description
+        "Device.ManagementServer.HeartbeatPolicy.InitiationTime";
+      reference
+        "Device.ManagementServer.HeartbeatPolicy.InitiationTime";
+    }
+  }
+
+  grouping management-server-inform-parameter-g {
+    description
+      "Grouping object for Device.ManagementServer.InformParameter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ManagementServer.InformParameter.{i}.Enable";
+      reference
+        "Device.ManagementServer.InformParameter.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ManagementServer.InformParameter.{i}.Alias";
+      reference
+        "Device.ManagementServer.InformParameter.{i}.Alias";
+    }
+    leaf parameter-name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ManagementServer.InformParameter.{i}.ParameterName";
+      reference
+        "Device.ManagementServer.InformParameter.{i}.ParameterName";
+    }
+    leaf event-list {
+      type string;
+      description
+        "Device.ManagementServer.InformParameter.{i}.EventList";
+      reference
+        "Device.ManagementServer.InformParameter.{i}.EventList";
+    }
+  }
+
+  grouping management-server-manageable-device-g {
+    description
+      "Grouping object for Device.ManagementServer.ManageableDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ManagementServer.ManageableDevice.{i}.Alias";
+      reference
+        "Device.ManagementServer.ManageableDevice.{i}.Alias";
+    }
+    leaf manufacturer-oui {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.ManageableDevice.{i}.ManufacturerOUI";
+      reference
+        "Device.ManagementServer.ManageableDevice.{i}.ManufacturerOUI";
+    }
+    leaf serial-number {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.ManageableDevice.{i}.SerialNumber";
+      reference
+        "Device.ManagementServer.ManageableDevice.{i}.SerialNumber";
+    }
+    leaf product-class {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.ManageableDevice.{i}.ProductClass";
+      reference
+        "Device.ManagementServer.ManageableDevice.{i}.ProductClass";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.ManageableDevice.{i}.Host";
+      reference
+        "Device.ManagementServer.ManageableDevice.{i}.Host";
+    }
+  }
+
+  grouping management-server-standby-policy-g {
+    description
+      "Grouping object for Device.ManagementServer.StandbyPolicy.";
+    leaf cr-unawareness-max-duration {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.ManagementServer.StandbyPolicy.CRUnawarenessMaxDuration";
+      reference
+        "Device.ManagementServer.StandbyPolicy.CRUnawarenessMaxDuration";
+    }
+    leaf max-missed-periodic {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.ManagementServer.StandbyPolicy.MaxMissedPeriodic";
+      reference
+        "Device.ManagementServer.StandbyPolicy.MaxMissedPeriodic";
+    }
+    leaf notify-missed-scheduled {
+      type boolean;
+      description
+        "Device.ManagementServer.StandbyPolicy.NotifyMissedScheduled";
+      reference
+        "Device.ManagementServer.StandbyPolicy.NotifyMissedScheduled";
+    }
+    leaf network-awareness-capable {
+      type boolean;
+      config false;
+      description
+        "Device.ManagementServer.StandbyPolicy.NetworkAwarenessCapable";
+      reference
+        "Device.ManagementServer.StandbyPolicy.NetworkAwarenessCapable";
+    }
+    leaf self-timer-capable {
+      type boolean;
+      config false;
+      description
+        "Device.ManagementServer.StandbyPolicy.SelfTimerCapable";
+      reference
+        "Device.ManagementServer.StandbyPolicy.SelfTimerCapable";
+    }
+    leaf cr-awareness-requested {
+      type boolean;
+      description
+        "Device.ManagementServer.StandbyPolicy.CRAwarenessRequested";
+      reference
+        "Device.ManagementServer.StandbyPolicy.CRAwarenessRequested";
+    }
+    leaf periodic-awareness-requested {
+      type boolean;
+      description
+        "Device.ManagementServer.StandbyPolicy.PeriodicAwarenessRequested";
+      reference
+        "Device.ManagementServer.StandbyPolicy.PeriodicAwarenessRequested";
+    }
+    leaf scheduled-awareness-requested {
+      type boolean;
+      description
+        "Device.ManagementServer.StandbyPolicy.ScheduledAwarenessRequested";
+      reference
+        "Device.ManagementServer.StandbyPolicy.ScheduledAwarenessRequested";
+    }
+  }
+
+  grouping management-server-virtual-device-g {
+    description
+      "Grouping object for Device.ManagementServer.VirtualDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf manufacturer-oui {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.VirtualDevice.{i}.ManufacturerOUI";
+      reference
+        "Device.ManagementServer.VirtualDevice.{i}.ManufacturerOUI";
+    }
+    leaf product-class {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.VirtualDevice.{i}.ProductClass";
+      reference
+        "Device.ManagementServer.VirtualDevice.{i}.ProductClass";
+    }
+    leaf serial-number {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.VirtualDevice.{i}.SerialNumber";
+      reference
+        "Device.ManagementServer.VirtualDevice.{i}.SerialNumber";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.VirtualDevice.{i}.Host";
+      reference
+        "Device.ManagementServer.VirtualDevice.{i}.Host";
+    }
+    leaf proxy-protocol {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.VirtualDevice.{i}.ProxyProtocol";
+      reference
+        "Device.ManagementServer.VirtualDevice.{i}.ProxyProtocol";
+    }
+    leaf proxy-protocol-reference {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.VirtualDevice.{i}.ProxyProtocolReference";
+      reference
+        "Device.ManagementServer.VirtualDevice.{i}.ProxyProtocolReference";
+    }
+    leaf discovery-protocol {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.VirtualDevice.{i}.DiscoveryProtocol";
+      reference
+        "Device.ManagementServer.VirtualDevice.{i}.DiscoveryProtocol";
+    }
+    leaf discovery-protocol-reference {
+      type string;
+      config false;
+      description
+        "Device.ManagementServer.VirtualDevice.{i}.DiscoveryProtocolReference";
+      reference
+        "Device.ManagementServer.VirtualDevice.{i}.DiscoveryProtocolReference";
+    }
+  }
+
+  grouping device-mo-ca-g {
+    description
+      "Grouping object for Device.MoCA.";
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.InterfaceNumberOfEntries";
+      reference
+        "Device.MoCA.InterfaceNumberOfEntries";
+    }
+  }
+
+  grouping mo-ca-interface-g {
+    description
+      "Grouping object for Device.MoCA.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.MoCA.Interface.{i}.Enable";
+      reference
+        "Device.MoCA.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Status";
+      reference
+        "Device.MoCA.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.MoCA.Interface.{i}.Alias";
+      reference
+        "Device.MoCA.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Name";
+      reference
+        "Device.MoCA.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.LastChange";
+      reference
+        "Device.MoCA.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.MoCA.Interface.{i}.LowerLayers";
+      reference
+        "Device.MoCA.Interface.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Upstream";
+      reference
+        "Device.MoCA.Interface.{i}.Upstream";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.MACAddress";
+      reference
+        "Device.MoCA.Interface.{i}.MACAddress";
+    }
+    leaf firmware-version {
+      type string;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.FirmwareVersion";
+      reference
+        "Device.MoCA.Interface.{i}.FirmwareVersion";
+    }
+    leaf max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.MaxBitRate";
+      reference
+        "Device.MoCA.Interface.{i}.MaxBitRate";
+    }
+    leaf max-ingress-bw {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.MaxIngressBW";
+      reference
+        "Device.MoCA.Interface.{i}.MaxIngressBW";
+    }
+    leaf max-egress-bw {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.MaxEgressBW";
+      reference
+        "Device.MoCA.Interface.{i}.MaxEgressBW";
+    }
+    leaf highest-version {
+      type string;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.HighestVersion";
+      reference
+        "Device.MoCA.Interface.{i}.HighestVersion";
+    }
+    leaf current-version {
+      type string;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.CurrentVersion";
+      reference
+        "Device.MoCA.Interface.{i}.CurrentVersion";
+    }
+    leaf network-coordinator {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.NetworkCoordinator";
+      reference
+        "Device.MoCA.Interface.{i}.NetworkCoordinator";
+    }
+    leaf node-id {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.NodeID";
+      reference
+        "Device.MoCA.Interface.{i}.NodeID";
+    }
+    leaf max-nodes {
+      type boolean;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.MaxNodes";
+      reference
+        "Device.MoCA.Interface.{i}.MaxNodes";
+    }
+    leaf preferred-nc {
+      type boolean;
+      description
+        "Device.MoCA.Interface.{i}.PreferredNC";
+      reference
+        "Device.MoCA.Interface.{i}.PreferredNC";
+    }
+    leaf backup-nc {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.BackupNC";
+      reference
+        "Device.MoCA.Interface.{i}.BackupNC";
+    }
+    leaf privacy-enabled-setting {
+      type boolean;
+      description
+        "Device.MoCA.Interface.{i}.PrivacyEnabledSetting";
+      reference
+        "Device.MoCA.Interface.{i}.PrivacyEnabledSetting";
+    }
+    leaf privacy-enabled {
+      type boolean;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.PrivacyEnabled";
+      reference
+        "Device.MoCA.Interface.{i}.PrivacyEnabled";
+    }
+    leaf freq-capability-mask {
+      type string;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.FreqCapabilityMask";
+      reference
+        "Device.MoCA.Interface.{i}.FreqCapabilityMask";
+    }
+    leaf freq-current-mask-setting {
+      type string {
+        length "8";
+      }
+      description
+        "Device.MoCA.Interface.{i}.FreqCurrentMaskSetting";
+      reference
+        "Device.MoCA.Interface.{i}.FreqCurrentMaskSetting";
+    }
+    leaf freq-current-mask {
+      type string;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.FreqCurrentMask";
+      reference
+        "Device.MoCA.Interface.{i}.FreqCurrentMask";
+    }
+    leaf current-oper-freq {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.CurrentOperFreq";
+      reference
+        "Device.MoCA.Interface.{i}.CurrentOperFreq";
+    }
+    leaf last-oper-freq {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.LastOperFreq";
+      reference
+        "Device.MoCA.Interface.{i}.LastOperFreq";
+    }
+    leaf tx-power-limit {
+      type uint32;
+      description
+        "Device.MoCA.Interface.{i}.TxPowerLimit";
+      reference
+        "Device.MoCA.Interface.{i}.TxPowerLimit";
+    }
+    leaf power-cntl-phy-target {
+      type uint32;
+      description
+        "Device.MoCA.Interface.{i}.PowerCntlPhyTarget";
+      reference
+        "Device.MoCA.Interface.{i}.PowerCntlPhyTarget";
+    }
+    leaf beacon-power-limit {
+      type uint32;
+      description
+        "Device.MoCA.Interface.{i}.BeaconPowerLimit";
+      reference
+        "Device.MoCA.Interface.{i}.BeaconPowerLimit";
+    }
+    leaf network-taboo-mask {
+      type string;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.NetworkTabooMask";
+      reference
+        "Device.MoCA.Interface.{i}.NetworkTabooMask";
+    }
+    leaf node-taboo-mask {
+      type string;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.NodeTabooMask";
+      reference
+        "Device.MoCA.Interface.{i}.NodeTabooMask";
+    }
+    leaf tx-bcast-rate {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.TxBcastRate";
+      reference
+        "Device.MoCA.Interface.{i}.TxBcastRate";
+    }
+    leaf tx-bcast-power-reduction {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.TxBcastPowerReduction";
+      reference
+        "Device.MoCA.Interface.{i}.TxBcastPowerReduction";
+    }
+    leaf qam256-capable {
+      type boolean;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QAM256Capable";
+      reference
+        "Device.MoCA.Interface.{i}.QAM256Capable";
+    }
+    leaf packet-aggregation-capability {
+      type uint32 {
+        range "0..10";
+      }
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.PacketAggregationCapability";
+      reference
+        "Device.MoCA.Interface.{i}.PacketAggregationCapability";
+    }
+    leaf associated-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDeviceNumberOfEntries";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDeviceNumberOfEntries";
+    }
+  }
+
+  grouping mo-ca-interface-associated-device-g {
+    description
+      "Grouping object for Device.MoCA.Interface.{i}.AssociatedDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.MACAddress";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.MACAddress";
+    }
+    leaf node-id {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.NodeID";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.NodeID";
+    }
+    leaf preferred-nc {
+      type boolean;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.PreferredNC";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.PreferredNC";
+    }
+    leaf highest-version {
+      type string;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.HighestVersion";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.HighestVersion";
+    }
+    leaf phy-tx-rate {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.PHYTxRate";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.PHYTxRate";
+    }
+    leaf phy-rx-rate {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.PHYRxRate";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.PHYRxRate";
+    }
+    leaf tx-power-control-reduction {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.TxPowerControlReduction";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.TxPowerControlReduction";
+    }
+    leaf rx-power-level {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxPowerLevel";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxPowerLevel";
+    }
+    leaf tx-bcast-rate {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.TxBcastRate";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.TxBcastRate";
+    }
+    leaf rx-bcast-power-level {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxBcastPowerLevel";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxBcastPowerLevel";
+    }
+    leaf tx-packets {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.TxPackets";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.TxPackets";
+    }
+    leaf rx-packets {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxPackets";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxPackets";
+    }
+    leaf rx-errored-and-missed-packets {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxErroredAndMissedPackets";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxErroredAndMissedPackets";
+    }
+    leaf qam256-capable {
+      type boolean;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.QAM256Capable";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.QAM256Capable";
+    }
+    leaf packet-aggregation-capability {
+      type uint32 {
+        range "0..10";
+      }
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.PacketAggregationCapability";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.PacketAggregationCapability";
+    }
+    leaf rx-snr {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxSNR";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.RxSNR";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.Active";
+      reference
+        "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.Active";
+    }
+  }
+
+  grouping mo-ca-interface-qo-s-g {
+    description
+      "Grouping object for Device.MoCA.Interface.{i}.QoS.";
+    leaf egress-num-flows {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QoS.EgressNumFlows";
+      reference
+        "Device.MoCA.Interface.{i}.QoS.EgressNumFlows";
+    }
+    leaf ingress-num-flows {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QoS.IngressNumFlows";
+      reference
+        "Device.MoCA.Interface.{i}.QoS.IngressNumFlows";
+    }
+    leaf flow-stats-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QoS.FlowStatsNumberOfEntries";
+      reference
+        "Device.MoCA.Interface.{i}.QoS.FlowStatsNumberOfEntries";
+    }
+  }
+
+  grouping qo-s-flow-stats-g {
+    description
+      "Grouping object for Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf flow-id {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.FlowID";
+      reference
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.FlowID";
+    }
+    leaf packet-da {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.PacketDA";
+      reference
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.PacketDA";
+    }
+    leaf max-rate {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.MaxRate";
+      reference
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.MaxRate";
+    }
+    leaf max-burst-size {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.MaxBurstSize";
+      reference
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.MaxBurstSize";
+    }
+    leaf lease-time {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.LeaseTime";
+      reference
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.LeaseTime";
+    }
+    leaf lease-time-left {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.LeaseTimeLeft";
+      reference
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.LeaseTimeLeft";
+    }
+    leaf flow-packets {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.FlowPackets";
+      reference
+        "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.FlowPackets";
+    }
+  }
+
+  grouping mo-ca-interface-stats-g {
+    description
+      "Grouping object for Device.MoCA.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.MoCA.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.MoCA.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping device-nat-g {
+    description
+      "Grouping object for Device.NAT.";
+    leaf interface-setting-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.NAT.InterfaceSettingNumberOfEntries";
+      reference
+        "Device.NAT.InterfaceSettingNumberOfEntries";
+    }
+    leaf port-mapping-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.NAT.PortMappingNumberOfEntries";
+      reference
+        "Device.NAT.PortMappingNumberOfEntries";
+    }
+  }
+
+  grouping nat-interface-setting-g {
+    description
+      "Grouping object for Device.NAT.InterfaceSetting.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.NAT.InterfaceSetting.{i}.Enable";
+      reference
+        "Device.NAT.InterfaceSetting.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.NAT.InterfaceSetting.{i}.Status";
+      reference
+        "Device.NAT.InterfaceSetting.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.NAT.InterfaceSetting.{i}.Alias";
+      reference
+        "Device.NAT.InterfaceSetting.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.NAT.InterfaceSetting.{i}.Interface";
+      reference
+        "Device.NAT.InterfaceSetting.{i}.Interface";
+    }
+  }
+
+  grouping nat-port-mapping-g {
+    description
+      "Grouping object for Device.NAT.PortMapping.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.NAT.PortMapping.{i}.Enable";
+      reference
+        "Device.NAT.PortMapping.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.NAT.PortMapping.{i}.Status";
+      reference
+        "Device.NAT.PortMapping.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.NAT.PortMapping.{i}.Alias";
+      reference
+        "Device.NAT.PortMapping.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.NAT.PortMapping.{i}.Interface";
+      reference
+        "Device.NAT.PortMapping.{i}.Interface";
+    }
+    leaf all-interfaces {
+      type boolean;
+      description
+        "Device.NAT.PortMapping.{i}.AllInterfaces";
+      reference
+        "Device.NAT.PortMapping.{i}.AllInterfaces";
+    }
+    leaf lease-duration {
+      type uint32;
+      description
+        "Device.NAT.PortMapping.{i}.LeaseDuration";
+      reference
+        "Device.NAT.PortMapping.{i}.LeaseDuration";
+    }
+    leaf remote-host {
+      type string;
+      description
+        "Device.NAT.PortMapping.{i}.RemoteHost";
+      reference
+        "Device.NAT.PortMapping.{i}.RemoteHost";
+    }
+    leaf external-port {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.NAT.PortMapping.{i}.ExternalPort";
+      reference
+        "Device.NAT.PortMapping.{i}.ExternalPort";
+    }
+    leaf external-port-end-range {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.NAT.PortMapping.{i}.ExternalPortEndRange";
+      reference
+        "Device.NAT.PortMapping.{i}.ExternalPortEndRange";
+    }
+    leaf internal-port {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.NAT.PortMapping.{i}.InternalPort";
+      reference
+        "Device.NAT.PortMapping.{i}.InternalPort";
+    }
+    leaf protocol {
+      type enumeration {
+        enum TCP {
+          description
+            "Enum Value - TCP";
+        }
+        enum UDP {
+          description
+            "Enum Value - UDP";
+        }
+      }
+      description
+        "Device.NAT.PortMapping.{i}.Protocol";
+      reference
+        "Device.NAT.PortMapping.{i}.Protocol";
+    }
+    leaf internal-client {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.NAT.PortMapping.{i}.InternalClient";
+      reference
+        "Device.NAT.PortMapping.{i}.InternalClient";
+    }
+    leaf description {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.NAT.PortMapping.{i}.Description";
+      reference
+        "Device.NAT.PortMapping.{i}.Description";
+    }
+  }
+
+  grouping device-neighbor-discovery-g {
+    description
+      "Grouping object for Device.NeighborDiscovery.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.NeighborDiscovery.Enable";
+      reference
+        "Device.NeighborDiscovery.Enable";
+    }
+    leaf interface-setting-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.NeighborDiscovery.InterfaceSettingNumberOfEntries";
+      reference
+        "Device.NeighborDiscovery.InterfaceSettingNumberOfEntries";
+    }
+  }
+
+  grouping neighbor-discovery-interface-setting-g {
+    description
+      "Grouping object for Device.NeighborDiscovery.InterfaceSetting.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.Enable";
+      reference
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.Status";
+      reference
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.Alias";
+      reference
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.Alias";
+    }
+    leaf interface {
+      type string;
+      description
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.Interface";
+      reference
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.Interface";
+    }
+    leaf retrans-timer {
+      type uint32;
+      description
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.RetransTimer";
+      reference
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.RetransTimer";
+    }
+    leaf rtr-solicitation-interval {
+      type uint32;
+      description
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.RtrSolicitationInterval";
+      reference
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.RtrSolicitationInterval";
+    }
+    leaf max-rtr-solicitations {
+      type uint32;
+      description
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.MaxRtrSolicitations";
+      reference
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.MaxRtrSolicitations";
+    }
+    leaf nud-enable {
+      type boolean;
+      description
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.NUDEnable";
+      reference
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.NUDEnable";
+    }
+    leaf rs-enable {
+      type boolean;
+      description
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.RSEnable";
+      reference
+        "Device.NeighborDiscovery.InterfaceSetting.{i}.RSEnable";
+    }
+  }
+
+  grouping device-optical-g {
+    description
+      "Grouping object for Device.Optical.";
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Optical.InterfaceNumberOfEntries";
+      reference
+        "Device.Optical.InterfaceNumberOfEntries";
+    }
+  }
+
+  grouping optical-interface-g {
+    description
+      "Grouping object for Device.Optical.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Optical.Interface.{i}.Enable";
+      reference
+        "Device.Optical.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Status";
+      reference
+        "Device.Optical.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Optical.Interface.{i}.Alias";
+      reference
+        "Device.Optical.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Name";
+      reference
+        "Device.Optical.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.LastChange";
+      reference
+        "Device.Optical.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.Optical.Interface.{i}.LowerLayers";
+      reference
+        "Device.Optical.Interface.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Upstream";
+      reference
+        "Device.Optical.Interface.{i}.Upstream";
+    }
+    leaf optical-signal-level {
+      type int32 {
+        range "-65536..65534";
+      }
+      config false;
+      description
+        "Device.Optical.Interface.{i}.OpticalSignalLevel";
+      reference
+        "Device.Optical.Interface.{i}.OpticalSignalLevel";
+    }
+    leaf lower-optical-threshold {
+      type int32 {
+        range "-127000..0";
+      }
+      config false;
+      description
+        "Device.Optical.Interface.{i}.LowerOpticalThreshold";
+      reference
+        "Device.Optical.Interface.{i}.LowerOpticalThreshold";
+    }
+    leaf upper-optical-threshold {
+      type int32 {
+        range "-127000..0";
+      }
+      config false;
+      description
+        "Device.Optical.Interface.{i}.UpperOpticalThreshold";
+      reference
+        "Device.Optical.Interface.{i}.UpperOpticalThreshold";
+    }
+    leaf transmit-optical-level {
+      type int32 {
+        range "-127000..0";
+      }
+      config false;
+      description
+        "Device.Optical.Interface.{i}.TransmitOpticalLevel";
+      reference
+        "Device.Optical.Interface.{i}.TransmitOpticalLevel";
+    }
+    leaf lower-transmit-power-threshold {
+      type int32 {
+        range "-63500..63500";
+      }
+      config false;
+      description
+        "Device.Optical.Interface.{i}.LowerTransmitPowerThreshold";
+      reference
+        "Device.Optical.Interface.{i}.LowerTransmitPowerThreshold";
+    }
+    leaf upper-transmit-power-threshold {
+      type int32 {
+        range "-63500..63500";
+      }
+      config false;
+      description
+        "Device.Optical.Interface.{i}.UpperTransmitPowerThreshold";
+      reference
+        "Device.Optical.Interface.{i}.UpperTransmitPowerThreshold";
+    }
+  }
+
+  grouping optical-interface-stats-g {
+    description
+      "Grouping object for Device.Optical.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.Optical.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.Optical.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.Optical.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.Optical.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.Optical.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.Optical.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.Optical.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.Optical.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.Optical.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+  }
+
+  grouping device-pcp-g {
+    description
+      "Grouping object for Device.PCP.";
+    leaf supported-versions {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.PCP.SupportedVersions";
+      reference
+        "Device.PCP.SupportedVersions";
+    }
+    leaf preferred-version {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.PCP.PreferredVersion";
+      reference
+        "Device.PCP.PreferredVersion";
+    }
+    leaf option-list {
+      type uint32 {
+        range "0..254";
+      }
+      config false;
+      description
+        "Device.PCP.OptionList";
+      reference
+        "Device.PCP.OptionList";
+    }
+    leaf client-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.PCP.ClientNumberOfEntries";
+      reference
+        "Device.PCP.ClientNumberOfEntries";
+    }
+  }
+
+  grouping pcp-client-g {
+    description
+      "Grouping object for Device.PCP.Client.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.Enable";
+      reference
+        "Device.PCP.Client.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.PCP.Client.{i}.Alias";
+      reference
+        "Device.PCP.Client.{i}.Alias";
+    }
+    leaf wan-interface {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.WANInterface";
+      reference
+        "Device.PCP.Client.{i}.WANInterface";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Status";
+      reference
+        "Device.PCP.Client.{i}.Status";
+    }
+    leaf map-enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.MAPEnable";
+      reference
+        "Device.PCP.Client.{i}.MAPEnable";
+    }
+    leaf peer-enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.PEEREnable";
+      reference
+        "Device.PCP.Client.{i}.PEEREnable";
+    }
+    leaf announce-enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.ANNOUNCEEnable";
+      reference
+        "Device.PCP.Client.{i}.ANNOUNCEEnable";
+    }
+    leaf thirdparty-enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.THIRDPARTYEnable";
+      reference
+        "Device.PCP.Client.{i}.THIRDPARTYEnable";
+    }
+    leaf thirdparty-status {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.THIRDPARTYStatus";
+      reference
+        "Device.PCP.Client.{i}.THIRDPARTYStatus";
+    }
+    leaf filter-enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.FILTEREnable";
+      reference
+        "Device.PCP.Client.{i}.FILTEREnable";
+    }
+    leaf server-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.PCP.Client.{i}.ServerNumberOfEntries";
+      reference
+        "Device.PCP.Client.{i}.ServerNumberOfEntries";
+    }
+  }
+
+  grouping client-pcp-proxy-g {
+    description
+      "Grouping object for Device.PCP.Client.{i}.PCPProxy.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.PCPProxy.Enable";
+      reference
+        "Device.PCP.Client.{i}.PCPProxy.Enable";
+    }
+    leaf highest-version {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.PCPProxy.HighestVersion";
+      reference
+        "Device.PCP.Client.{i}.PCPProxy.HighestVersion";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.PCPProxy.Status";
+      reference
+        "Device.PCP.Client.{i}.PCPProxy.Status";
+    }
+  }
+
+  grouping pcp-client-server-g {
+    description
+      "Grouping object for Device.PCP.Client.{i}.Server.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.Enable";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.Status";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.Alias";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.Alias";
+    }
+    leaf origin {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.Origin";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.Origin";
+    }
+    leaf server-name-or-address {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.ServerNameOrAddress";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.ServerNameOrAddress";
+    }
+    leaf server-address-in-use {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.ServerAddressInUse";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.ServerAddressInUse";
+    }
+    leaf additional-server-addresses {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.AdditionalServerAddresses";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.AdditionalServerAddresses";
+    }
+    leaf external-ip-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.ExternalIPAddress";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.ExternalIPAddress";
+    }
+    leaf current-version {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.CurrentVersion";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.CurrentVersion";
+    }
+    leaf maximum-filters {
+      type uint32;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.MaximumFilters";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.MaximumFilters";
+    }
+    leaf port-quota {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.PortQuota";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.PortQuota";
+    }
+    leaf preferred-lifetime {
+      type uint32;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.PreferredLifetime";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.PreferredLifetime";
+    }
+    leaf capabilities {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.Capabilities";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.Capabilities";
+    }
+    leaf inbound-mapping-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMappingNumberOfEntries";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMappingNumberOfEntries";
+    }
+    leaf outbound-mapping-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMappingNumberOfEntries";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMappingNumberOfEntries";
+    }
+  }
+
+  grouping server-inbound-mapping-g {
+    description
+      "Grouping object for Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Enable";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Status";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Status";
+    }
+    leaf error-code {
+      type uint32 {
+        range "1..255";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.ErrorCode";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.ErrorCode";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Alias";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Alias";
+    }
+    leaf origin {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Origin";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Origin";
+    }
+    leaf lifetime {
+      type uint32;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Lifetime";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Lifetime";
+    }
+    leaf suggested-external-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.SuggestedExternalIPAddress";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.SuggestedExternalIPAddress";
+    }
+    leaf suggested-external-port {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.SuggestedExternalPort";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.SuggestedExternalPort";
+    }
+    leaf suggested-external-port-end-range {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.SuggestedExternalPortEndRange";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.SuggestedExternalPortEndRange";
+    }
+    leaf internal-port {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.InternalPort";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.InternalPort";
+    }
+    leaf protocol-number {
+      type int32 {
+        range "-1..255";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.ProtocolNumber";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.ProtocolNumber";
+    }
+    leaf third-party-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.ThirdPartyAddress";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.ThirdPartyAddress";
+    }
+    leaf description {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Description";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Description";
+    }
+    leaf assigned-external-ip-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.AssignedExternalIPAddress";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.AssignedExternalIPAddress";
+    }
+    leaf assigned-external-port {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.AssignedExternalPort";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.AssignedExternalPort";
+    }
+    leaf assigned-external-port-end-range {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.AssignedExternalPortEndRange";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.AssignedExternalPortEndRange";
+    }
+    leaf filter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.FilterNumberOfEntries";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.FilterNumberOfEntries";
+    }
+  }
+
+  grouping inbound-mapping-filter-g {
+    description
+      "Grouping object for Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.Alias";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.Alias";
+    }
+    leaf remote-host-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.RemoteHostIPAddress";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.RemoteHostIPAddress";
+    }
+    leaf prefix-length {
+      type uint32 {
+        range "1..128";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.PrefixLength";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.PrefixLength";
+    }
+    leaf remote-port {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.RemotePort";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.RemotePort";
+    }
+    leaf remote-port-end-range {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.RemotePortEndRange";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.RemotePortEndRange";
+    }
+  }
+
+  grouping server-outbound-mapping-g {
+    description
+      "Grouping object for Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Enable";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Status";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Status";
+    }
+    leaf error-code {
+      type uint32 {
+        range "1..255";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.ErrorCode";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.ErrorCode";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Alias";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Alias";
+    }
+    leaf origin {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Origin";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Origin";
+    }
+    leaf lifetime {
+      type uint32;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Lifetime";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Lifetime";
+    }
+    leaf suggested-external-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.SuggestedExternalIPAddress";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.SuggestedExternalIPAddress";
+    }
+    leaf suggested-external-port {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.SuggestedExternalPort";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.SuggestedExternalPort";
+    }
+    leaf remote-host-ip-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.RemoteHostIPAddress";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.RemoteHostIPAddress";
+    }
+    leaf internal-port {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.InternalPort";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.InternalPort";
+    }
+    leaf remote-port {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.RemotePort";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.RemotePort";
+    }
+    leaf protocol-number {
+      type int32 {
+        range "-1..255";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.ProtocolNumber";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.ProtocolNumber";
+    }
+    leaf third-party-address {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.ThirdPartyAddress";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.ThirdPartyAddress";
+    }
+    leaf description {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Description";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.Description";
+    }
+    leaf assigned-external-ip-address {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.AssignedExternalIPAddress";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.AssignedExternalIPAddress";
+    }
+    leaf assigned-external-port {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.AssignedExternalPort";
+      reference
+        "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.AssignedExternalPort";
+    }
+  }
+
+  grouping client-u-pn-piwf-g {
+    description
+      "Grouping object for Device.PCP.Client.{i}.UPnPIWF.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.PCP.Client.{i}.UPnPIWF.Enable";
+      reference
+        "Device.PCP.Client.{i}.UPnPIWF.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.PCP.Client.{i}.UPnPIWF.Status";
+      reference
+        "Device.PCP.Client.{i}.UPnPIWF.Status";
+    }
+  }
+
+  grouping device-ppp-g {
+    description
+      "Grouping object for Device.PPP.";
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.PPP.InterfaceNumberOfEntries";
+      reference
+        "Device.PPP.InterfaceNumberOfEntries";
+    }
+    leaf supported-nc-ps {
+      type string;
+      config false;
+      description
+        "Device.PPP.SupportedNCPs";
+      reference
+        "Device.PPP.SupportedNCPs";
+    }
+  }
+
+  grouping ppp-interface-g {
+    description
+      "Grouping object for Device.PPP.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.PPP.Interface.{i}.Enable";
+      reference
+        "Device.PPP.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Status";
+      reference
+        "Device.PPP.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.PPP.Interface.{i}.Alias";
+      reference
+        "Device.PPP.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Name";
+      reference
+        "Device.PPP.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.LastChange";
+      reference
+        "Device.PPP.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.PPP.Interface.{i}.LowerLayers";
+      reference
+        "Device.PPP.Interface.{i}.LowerLayers";
+    }
+    leaf connection-status {
+      type string;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.ConnectionStatus";
+      reference
+        "Device.PPP.Interface.{i}.ConnectionStatus";
+    }
+    leaf last-connection-error {
+      type string;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.LastConnectionError";
+      reference
+        "Device.PPP.Interface.{i}.LastConnectionError";
+    }
+    leaf auto-disconnect-time {
+      type uint32;
+      description
+        "Device.PPP.Interface.{i}.AutoDisconnectTime";
+      reference
+        "Device.PPP.Interface.{i}.AutoDisconnectTime";
+    }
+    leaf idle-disconnect-time {
+      type uint32;
+      description
+        "Device.PPP.Interface.{i}.IdleDisconnectTime";
+      reference
+        "Device.PPP.Interface.{i}.IdleDisconnectTime";
+    }
+    leaf warn-disconnect-delay {
+      type uint32;
+      description
+        "Device.PPP.Interface.{i}.WarnDisconnectDelay";
+      reference
+        "Device.PPP.Interface.{i}.WarnDisconnectDelay";
+    }
+    leaf username {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.PPP.Interface.{i}.Username";
+      reference
+        "Device.PPP.Interface.{i}.Username";
+    }
+    leaf encryption-protocol {
+      type string;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.EncryptionProtocol";
+      reference
+        "Device.PPP.Interface.{i}.EncryptionProtocol";
+    }
+    leaf compression-protocol {
+      type string;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.CompressionProtocol";
+      reference
+        "Device.PPP.Interface.{i}.CompressionProtocol";
+    }
+    leaf authentication-protocol {
+      type string;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.AuthenticationProtocol";
+      reference
+        "Device.PPP.Interface.{i}.AuthenticationProtocol";
+    }
+    leaf max-mru-size {
+      type uint32 {
+        range "64..65535";
+      }
+      description
+        "Device.PPP.Interface.{i}.MaxMRUSize";
+      reference
+        "Device.PPP.Interface.{i}.MaxMRUSize";
+    }
+    leaf current-mru-size {
+      type uint32 {
+        range "64..65535";
+      }
+      config false;
+      description
+        "Device.PPP.Interface.{i}.CurrentMRUSize";
+      reference
+        "Device.PPP.Interface.{i}.CurrentMRUSize";
+    }
+    leaf connection-trigger {
+      type enumeration {
+        enum OnDemand {
+          description
+            "Enum Value - OnDemand";
+        }
+        enum AlwaysOn {
+          description
+            "Enum Value - AlwaysOn";
+        }
+        enum Manual {
+          description
+            "Enum Value - Manual";
+        }
+      }
+      description
+        "Device.PPP.Interface.{i}.ConnectionTrigger";
+      reference
+        "Device.PPP.Interface.{i}.ConnectionTrigger";
+    }
+    leaf lcp-echo {
+      type uint32;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.LCPEcho";
+      reference
+        "Device.PPP.Interface.{i}.LCPEcho";
+    }
+    leaf lcp-echo-retry {
+      type uint32;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.LCPEchoRetry";
+      reference
+        "Device.PPP.Interface.{i}.LCPEchoRetry";
+    }
+    leaf ipcp-enable {
+      type boolean;
+      description
+        "Device.PPP.Interface.{i}.IPCPEnable";
+      reference
+        "Device.PPP.Interface.{i}.IPCPEnable";
+    }
+    leaf ipv6-cp-enable {
+      type boolean;
+      description
+        "Device.PPP.Interface.{i}.IPv6CPEnable";
+      reference
+        "Device.PPP.Interface.{i}.IPv6CPEnable";
+    }
+  }
+
+  grouping interface-ipcp-g {
+    description
+      "Grouping object for Device.PPP.Interface.{i}.IPCP.";
+    leaf local-ip-address {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.PPP.Interface.{i}.IPCP.LocalIPAddress";
+      reference
+        "Device.PPP.Interface.{i}.IPCP.LocalIPAddress";
+    }
+    leaf remote-ip-address {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.PPP.Interface.{i}.IPCP.RemoteIPAddress";
+      reference
+        "Device.PPP.Interface.{i}.IPCP.RemoteIPAddress";
+    }
+    leaf dns-servers {
+      type string {
+        length "min..15";
+      }
+      config false;
+      description
+        "Device.PPP.Interface.{i}.IPCP.DNSServers";
+      reference
+        "Device.PPP.Interface.{i}.IPCP.DNSServers";
+    }
+    leaf passthrough-enable {
+      type boolean;
+      description
+        "Device.PPP.Interface.{i}.IPCP.PassthroughEnable";
+      reference
+        "Device.PPP.Interface.{i}.IPCP.PassthroughEnable";
+    }
+    leaf passthrough-dhcp-pool {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.PPP.Interface.{i}.IPCP.PassthroughDHCPPool";
+      reference
+        "Device.PPP.Interface.{i}.IPCP.PassthroughDHCPPool";
+    }
+  }
+
+  grouping interface-ipv6-cp-g {
+    description
+      "Grouping object for Device.PPP.Interface.{i}.IPv6CP.";
+    leaf local-interface-identifier {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.PPP.Interface.{i}.IPv6CP.LocalInterfaceIdentifier";
+      reference
+        "Device.PPP.Interface.{i}.IPv6CP.LocalInterfaceIdentifier";
+    }
+    leaf remote-interface-identifier {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.PPP.Interface.{i}.IPv6CP.RemoteInterfaceIdentifier";
+      reference
+        "Device.PPP.Interface.{i}.IPv6CP.RemoteInterfaceIdentifier";
+    }
+  }
+
+  grouping interface-pp-po-e-g {
+    description
+      "Grouping object for Device.PPP.Interface.{i}.PPPoE.";
+    leaf session-id {
+      type uint32;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.PPPoE.SessionID";
+      reference
+        "Device.PPP.Interface.{i}.PPPoE.SessionID";
+    }
+    leaf ac-name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.PPP.Interface.{i}.PPPoE.ACName";
+      reference
+        "Device.PPP.Interface.{i}.PPPoE.ACName";
+    }
+    leaf service-name {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.PPP.Interface.{i}.PPPoE.ServiceName";
+      reference
+        "Device.PPP.Interface.{i}.PPPoE.ServiceName";
+    }
+  }
+
+  grouping ppp-interface-stats-g {
+    description
+      "Grouping object for Device.PPP.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.PPP.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.PPP.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.PPP.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.PPP.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.PPP.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.PPP.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.PPP.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.PPP.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.PPP.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.PPP.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.PPP.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.PPP.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.PPP.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.PPP.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.PPP.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.PPP.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping device-ptm-g {
+    description
+      "Grouping object for Device.PTM.";
+    leaf link-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.PTM.LinkNumberOfEntries";
+      reference
+        "Device.PTM.LinkNumberOfEntries";
+    }
+  }
+
+  grouping ptm-link-g {
+    description
+      "Grouping object for Device.PTM.Link.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.PTM.Link.{i}.Enable";
+      reference
+        "Device.PTM.Link.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Status";
+      reference
+        "Device.PTM.Link.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.PTM.Link.{i}.Alias";
+      reference
+        "Device.PTM.Link.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Name";
+      reference
+        "Device.PTM.Link.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.PTM.Link.{i}.LastChange";
+      reference
+        "Device.PTM.Link.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.PTM.Link.{i}.LowerLayers";
+      reference
+        "Device.PTM.Link.{i}.LowerLayers";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.PTM.Link.{i}.MACAddress";
+      reference
+        "Device.PTM.Link.{i}.MACAddress";
+    }
+  }
+
+  grouping ptm-link-stats-g {
+    description
+      "Grouping object for Device.PTM.Link.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.BytesSent";
+      reference
+        "Device.PTM.Link.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.BytesReceived";
+      reference
+        "Device.PTM.Link.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.PacketsSent";
+      reference
+        "Device.PTM.Link.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.PacketsReceived";
+      reference
+        "Device.PTM.Link.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.ErrorsSent";
+      reference
+        "Device.PTM.Link.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.PTM.Link.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.PTM.Link.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.PTM.Link.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.PTM.Link.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.PTM.Link.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.PTM.Link.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.PTM.Link.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.PTM.Link.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.PTM.Link.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.PTM.Link.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.PTM.Link.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping device-periodic-statistics-g {
+    description
+      "Grouping object for Device.PeriodicStatistics.";
+    leaf min-sample-interval {
+      type uint32;
+      config false;
+      description
+        "Device.PeriodicStatistics.MinSampleInterval";
+      reference
+        "Device.PeriodicStatistics.MinSampleInterval";
+    }
+    leaf max-report-samples {
+      type uint32;
+      config false;
+      description
+        "Device.PeriodicStatistics.MaxReportSamples";
+      reference
+        "Device.PeriodicStatistics.MaxReportSamples";
+    }
+    leaf sample-set-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.PeriodicStatistics.SampleSetNumberOfEntries";
+      reference
+        "Device.PeriodicStatistics.SampleSetNumberOfEntries";
+    }
+  }
+
+  grouping periodic-statistics-sample-set-g {
+    description
+      "Grouping object for Device.PeriodicStatistics.SampleSet.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Alias";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Enable";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Status";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Status";
+    }
+    leaf name {
+      type string {
+        length "min..128";
+      }
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Name";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Name";
+    }
+    leaf sample-interval {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.SampleInterval";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.SampleInterval";
+    }
+    leaf report-samples {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.ReportSamples";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.ReportSamples";
+    }
+    leaf time-reference {
+      type string;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.TimeReference";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.TimeReference";
+    }
+    leaf fetch-samples {
+      type uint32;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.FetchSamples";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.FetchSamples";
+    }
+    leaf report-start-time {
+      type string;
+      config false;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.ReportStartTime";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.ReportStartTime";
+    }
+    leaf report-end-time {
+      type string;
+      config false;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.ReportEndTime";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.ReportEndTime";
+    }
+    leaf sample-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.SampleSeconds";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.SampleSeconds";
+    }
+    leaf parameter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.ParameterNumberOfEntries";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.ParameterNumberOfEntries";
+    }
+  }
+
+  grouping sample-set-parameter-g {
+    description
+      "Grouping object for Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Alias";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Enable";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Enable";
+    }
+    leaf reference {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Reference";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Reference";
+    }
+    leaf sample-mode {
+      type enumeration {
+        enum Current {
+          description
+            "Enum Value - Current";
+        }
+        enum Change {
+          description
+            "Enum Value - Change";
+        }
+      }
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SampleMode";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SampleMode";
+    }
+    leaf calculation-mode {
+      type enumeration {
+        enum Latest {
+          description
+            "Enum Value - Latest";
+        }
+        enum Minimum {
+          description
+            "Enum Value - Minimum";
+        }
+        enum Maximum {
+          description
+            "Enum Value - Maximum";
+        }
+        enum Average {
+          description
+            "Enum Value - Average";
+        }
+      }
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.CalculationMode";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.CalculationMode";
+    }
+    leaf low-threshold {
+      type int32;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.LowThreshold";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.LowThreshold";
+    }
+    leaf high-threshold {
+      type int32;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.HighThreshold";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.HighThreshold";
+    }
+    leaf sample-seconds {
+      type uint32;
+      config false;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SampleSeconds";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SampleSeconds";
+    }
+    leaf suspect-data {
+      type uint32;
+      config false;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SuspectData";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.SuspectData";
+    }
+    leaf values {
+      type string;
+      config false;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Values";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Values";
+    }
+    leaf failures {
+      type uint32;
+      config false;
+      description
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Failures";
+      reference
+        "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Failures";
+    }
+  }
+
+  grouping device-qo-s-g {
+    description
+      "Grouping object for Device.QoS.";
+    leaf max-classification-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.MaxClassificationEntries";
+      reference
+        "Device.QoS.MaxClassificationEntries";
+    }
+    leaf classification-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.ClassificationNumberOfEntries";
+      reference
+        "Device.QoS.ClassificationNumberOfEntries";
+    }
+    leaf max-app-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.MaxAppEntries";
+      reference
+        "Device.QoS.MaxAppEntries";
+    }
+    leaf app-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.AppNumberOfEntries";
+      reference
+        "Device.QoS.AppNumberOfEntries";
+    }
+    leaf max-flow-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.MaxFlowEntries";
+      reference
+        "Device.QoS.MaxFlowEntries";
+    }
+    leaf flow-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.FlowNumberOfEntries";
+      reference
+        "Device.QoS.FlowNumberOfEntries";
+    }
+    leaf max-policer-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.MaxPolicerEntries";
+      reference
+        "Device.QoS.MaxPolicerEntries";
+    }
+    leaf policer-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.PolicerNumberOfEntries";
+      reference
+        "Device.QoS.PolicerNumberOfEntries";
+    }
+    leaf max-queue-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.MaxQueueEntries";
+      reference
+        "Device.QoS.MaxQueueEntries";
+    }
+    leaf queue-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.QueueNumberOfEntries";
+      reference
+        "Device.QoS.QueueNumberOfEntries";
+    }
+    leaf queue-stats-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.QueueStatsNumberOfEntries";
+      reference
+        "Device.QoS.QueueStatsNumberOfEntries";
+    }
+    leaf max-shaper-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.MaxShaperEntries";
+      reference
+        "Device.QoS.MaxShaperEntries";
+    }
+    leaf shaper-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.ShaperNumberOfEntries";
+      reference
+        "Device.QoS.ShaperNumberOfEntries";
+    }
+    leaf default-forwarding-policy {
+      type uint32;
+      description
+        "Device.QoS.DefaultForwardingPolicy";
+      reference
+        "Device.QoS.DefaultForwardingPolicy";
+    }
+    leaf default-traffic-class {
+      type uint32;
+      description
+        "Device.QoS.DefaultTrafficClass";
+      reference
+        "Device.QoS.DefaultTrafficClass";
+    }
+    leaf default-policer {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.DefaultPolicer";
+      reference
+        "Device.QoS.DefaultPolicer";
+    }
+    leaf default-queue {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.DefaultQueue";
+      reference
+        "Device.QoS.DefaultQueue";
+    }
+    leaf default-dscp-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.DefaultDSCPMark";
+      reference
+        "Device.QoS.DefaultDSCPMark";
+    }
+    leaf default-ethernet-priority-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.DefaultEthernetPriorityMark";
+      reference
+        "Device.QoS.DefaultEthernetPriorityMark";
+    }
+    leaf default-inner-ethernet-priority-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.DefaultInnerEthernetPriorityMark";
+      reference
+        "Device.QoS.DefaultInnerEthernetPriorityMark";
+    }
+    leaf available-app-list {
+      type string;
+      config false;
+      description
+        "Device.QoS.AvailableAppList";
+      reference
+        "Device.QoS.AvailableAppList";
+    }
+  }
+
+  grouping qo-s-app-g {
+    description
+      "Grouping object for Device.QoS.App.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.QoS.App.{i}.Enable";
+      reference
+        "Device.QoS.App.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.QoS.App.{i}.Status";
+      reference
+        "Device.QoS.App.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.QoS.App.{i}.Alias";
+      reference
+        "Device.QoS.App.{i}.Alias";
+    }
+    leaf protocol-identifier {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.App.{i}.ProtocolIdentifier";
+      reference
+        "Device.QoS.App.{i}.ProtocolIdentifier";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.QoS.App.{i}.Name";
+      reference
+        "Device.QoS.App.{i}.Name";
+    }
+    leaf default-forwarding-policy {
+      type uint32;
+      description
+        "Device.QoS.App.{i}.DefaultForwardingPolicy";
+      reference
+        "Device.QoS.App.{i}.DefaultForwardingPolicy";
+    }
+    leaf default-traffic-class {
+      type uint32;
+      description
+        "Device.QoS.App.{i}.DefaultTrafficClass";
+      reference
+        "Device.QoS.App.{i}.DefaultTrafficClass";
+    }
+    leaf default-policer {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.App.{i}.DefaultPolicer";
+      reference
+        "Device.QoS.App.{i}.DefaultPolicer";
+    }
+    leaf default-dscp-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.App.{i}.DefaultDSCPMark";
+      reference
+        "Device.QoS.App.{i}.DefaultDSCPMark";
+    }
+    leaf default-ethernet-priority-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.App.{i}.DefaultEthernetPriorityMark";
+      reference
+        "Device.QoS.App.{i}.DefaultEthernetPriorityMark";
+    }
+    leaf default-inner-ethernet-priority-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.App.{i}.DefaultInnerEthernetPriorityMark";
+      reference
+        "Device.QoS.App.{i}.DefaultInnerEthernetPriorityMark";
+    }
+  }
+
+  grouping qo-s-classification-g {
+    description
+      "Grouping object for Device.QoS.Classification.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.Enable";
+      reference
+        "Device.QoS.Classification.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.QoS.Classification.{i}.Status";
+      reference
+        "Device.QoS.Classification.{i}.Status";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.Order";
+      reference
+        "Device.QoS.Classification.{i}.Order";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.QoS.Classification.{i}.Alias";
+      reference
+        "Device.QoS.Classification.{i}.Alias";
+    }
+    leaf dhcp-type {
+      type enumeration {
+        enum DHCPv4 {
+          description
+            "Enum Value - DHCPv4";
+        }
+        enum DHCPv6 {
+          description
+            "Enum Value - DHCPv6";
+        }
+      }
+      description
+        "Device.QoS.Classification.{i}.DHCPType";
+      reference
+        "Device.QoS.Classification.{i}.DHCPType";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.Classification.{i}.Interface";
+      reference
+        "Device.QoS.Classification.{i}.Interface";
+    }
+    leaf all-interfaces {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.AllInterfaces";
+      reference
+        "Device.QoS.Classification.{i}.AllInterfaces";
+    }
+    leaf dest-ip {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestIP";
+      reference
+        "Device.QoS.Classification.{i}.DestIP";
+    }
+    leaf dest-mask {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestMask";
+      reference
+        "Device.QoS.Classification.{i}.DestMask";
+    }
+    leaf dest-ip-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.DestIPExclude";
+      reference
+        "Device.QoS.Classification.{i}.DestIPExclude";
+    }
+    leaf source-ip {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceIP";
+      reference
+        "Device.QoS.Classification.{i}.SourceIP";
+    }
+    leaf source-mask {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceMask";
+      reference
+        "Device.QoS.Classification.{i}.SourceMask";
+    }
+    leaf source-ip-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.SourceIPExclude";
+      reference
+        "Device.QoS.Classification.{i}.SourceIPExclude";
+    }
+    leaf protocol {
+      type int32 {
+        range "-1..255";
+      }
+      description
+        "Device.QoS.Classification.{i}.Protocol";
+      reference
+        "Device.QoS.Classification.{i}.Protocol";
+    }
+    leaf protocol-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.ProtocolExclude";
+      reference
+        "Device.QoS.Classification.{i}.ProtocolExclude";
+    }
+    leaf dest-port {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestPort";
+      reference
+        "Device.QoS.Classification.{i}.DestPort";
+    }
+    leaf dest-port-range-max {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestPortRangeMax";
+      reference
+        "Device.QoS.Classification.{i}.DestPortRangeMax";
+    }
+    leaf dest-port-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.DestPortExclude";
+      reference
+        "Device.QoS.Classification.{i}.DestPortExclude";
+    }
+    leaf source-port {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourcePort";
+      reference
+        "Device.QoS.Classification.{i}.SourcePort";
+    }
+    leaf source-port-range-max {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourcePortRangeMax";
+      reference
+        "Device.QoS.Classification.{i}.SourcePortRangeMax";
+    }
+    leaf source-port-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.SourcePortExclude";
+      reference
+        "Device.QoS.Classification.{i}.SourcePortExclude";
+    }
+    leaf source-mac-address {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceMACAddress";
+      reference
+        "Device.QoS.Classification.{i}.SourceMACAddress";
+    }
+    leaf source-mac-mask {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceMACMask";
+      reference
+        "Device.QoS.Classification.{i}.SourceMACMask";
+    }
+    leaf source-mac-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.SourceMACExclude";
+      reference
+        "Device.QoS.Classification.{i}.SourceMACExclude";
+    }
+    leaf dest-mac-address {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestMACAddress";
+      reference
+        "Device.QoS.Classification.{i}.DestMACAddress";
+    }
+    leaf dest-mac-mask {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestMACMask";
+      reference
+        "Device.QoS.Classification.{i}.DestMACMask";
+    }
+    leaf dest-mac-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.DestMACExclude";
+      reference
+        "Device.QoS.Classification.{i}.DestMACExclude";
+    }
+    leaf ethertype {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.Ethertype";
+      reference
+        "Device.QoS.Classification.{i}.Ethertype";
+    }
+    leaf ethertype-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.EthertypeExclude";
+      reference
+        "Device.QoS.Classification.{i}.EthertypeExclude";
+    }
+    leaf ssap {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.SSAP";
+      reference
+        "Device.QoS.Classification.{i}.SSAP";
+    }
+    leaf ssap-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.SSAPExclude";
+      reference
+        "Device.QoS.Classification.{i}.SSAPExclude";
+    }
+    leaf dsap {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.DSAP";
+      reference
+        "Device.QoS.Classification.{i}.DSAP";
+    }
+    leaf dsap-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.DSAPExclude";
+      reference
+        "Device.QoS.Classification.{i}.DSAPExclude";
+    }
+    leaf llc-control {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.LLCControl";
+      reference
+        "Device.QoS.Classification.{i}.LLCControl";
+    }
+    leaf llc-control-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.LLCControlExclude";
+      reference
+        "Device.QoS.Classification.{i}.LLCControlExclude";
+    }
+    leaf snapoui {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.SNAPOUI";
+      reference
+        "Device.QoS.Classification.{i}.SNAPOUI";
+    }
+    leaf snapoui-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.SNAPOUIExclude";
+      reference
+        "Device.QoS.Classification.{i}.SNAPOUIExclude";
+    }
+    leaf source-vendor-class-id {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceVendorClassID";
+      reference
+        "Device.QoS.Classification.{i}.SourceVendorClassID";
+    }
+    leaf source-vendor-class-idv6 {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceVendorClassIDv6";
+      reference
+        "Device.QoS.Classification.{i}.SourceVendorClassIDv6";
+    }
+    leaf source-vendor-class-id-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.SourceVendorClassIDExclude";
+      reference
+        "Device.QoS.Classification.{i}.SourceVendorClassIDExclude";
+    }
+    leaf source-vendor-class-id-mode {
+      type enumeration {
+        enum Exact {
+          description
+            "Enum Value - Exact";
+        }
+        enum Prefix {
+          description
+            "Enum Value - Prefix";
+        }
+        enum Suffix {
+          description
+            "Enum Value - Suffix";
+        }
+        enum Substring {
+          description
+            "Enum Value - Substring";
+        }
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceVendorClassIDMode";
+      reference
+        "Device.QoS.Classification.{i}.SourceVendorClassIDMode";
+    }
+    leaf dest-vendor-class-id {
+      type string {
+        length "min..255";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestVendorClassID";
+      reference
+        "Device.QoS.Classification.{i}.DestVendorClassID";
+    }
+    leaf dest-vendor-class-idv6 {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestVendorClassIDv6";
+      reference
+        "Device.QoS.Classification.{i}.DestVendorClassIDv6";
+    }
+    leaf dest-vendor-class-id-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.DestVendorClassIDExclude";
+      reference
+        "Device.QoS.Classification.{i}.DestVendorClassIDExclude";
+    }
+    leaf dest-vendor-class-id-mode {
+      type enumeration {
+        enum Exact {
+          description
+            "Enum Value - Exact";
+        }
+        enum Prefix {
+          description
+            "Enum Value - Prefix";
+        }
+        enum Suffix {
+          description
+            "Enum Value - Suffix";
+        }
+        enum Substring {
+          description
+            "Enum Value - Substring";
+        }
+      }
+      description
+        "Device.QoS.Classification.{i}.DestVendorClassIDMode";
+      reference
+        "Device.QoS.Classification.{i}.DestVendorClassIDMode";
+    }
+    leaf source-client-id {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceClientID";
+      reference
+        "Device.QoS.Classification.{i}.SourceClientID";
+    }
+    leaf source-client-id-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.SourceClientIDExclude";
+      reference
+        "Device.QoS.Classification.{i}.SourceClientIDExclude";
+    }
+    leaf dest-client-id {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestClientID";
+      reference
+        "Device.QoS.Classification.{i}.DestClientID";
+    }
+    leaf dest-client-id-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.DestClientIDExclude";
+      reference
+        "Device.QoS.Classification.{i}.DestClientIDExclude";
+    }
+    leaf source-user-class-id {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceUserClassID";
+      reference
+        "Device.QoS.Classification.{i}.SourceUserClassID";
+    }
+    leaf source-user-class-id-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.SourceUserClassIDExclude";
+      reference
+        "Device.QoS.Classification.{i}.SourceUserClassIDExclude";
+    }
+    leaf dest-user-class-id {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestUserClassID";
+      reference
+        "Device.QoS.Classification.{i}.DestUserClassID";
+    }
+    leaf dest-user-class-id-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.DestUserClassIDExclude";
+      reference
+        "Device.QoS.Classification.{i}.DestUserClassIDExclude";
+    }
+    leaf source-vendor-specific-info {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceVendorSpecificInfo";
+      reference
+        "Device.QoS.Classification.{i}.SourceVendorSpecificInfo";
+    }
+    leaf source-vendor-specific-info-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.SourceVendorSpecificInfoExclude";
+      reference
+        "Device.QoS.Classification.{i}.SourceVendorSpecificInfoExclude";
+    }
+    leaf source-vendor-specific-info-enterprise {
+      type uint32;
+      description
+        "Device.QoS.Classification.{i}.SourceVendorSpecificInfoEnterprise";
+      reference
+        "Device.QoS.Classification.{i}.SourceVendorSpecificInfoEnterprise";
+    }
+    leaf source-vendor-specific-info-sub-option {
+      type int32 {
+        range "0..255";
+      }
+      description
+        "Device.QoS.Classification.{i}.SourceVendorSpecificInfoSubOption";
+      reference
+        "Device.QoS.Classification.{i}.SourceVendorSpecificInfoSubOption";
+    }
+    leaf dest-vendor-specific-info {
+      type string {
+        length "min..65535";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestVendorSpecificInfo";
+      reference
+        "Device.QoS.Classification.{i}.DestVendorSpecificInfo";
+    }
+    leaf dest-vendor-specific-info-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.DestVendorSpecificInfoExclude";
+      reference
+        "Device.QoS.Classification.{i}.DestVendorSpecificInfoExclude";
+    }
+    leaf dest-vendor-specific-info-enterprise {
+      type uint32;
+      description
+        "Device.QoS.Classification.{i}.DestVendorSpecificInfoEnterprise";
+      reference
+        "Device.QoS.Classification.{i}.DestVendorSpecificInfoEnterprise";
+    }
+    leaf dest-vendor-specific-info-sub-option {
+      type int32 {
+        range "0..255";
+      }
+      description
+        "Device.QoS.Classification.{i}.DestVendorSpecificInfoSubOption";
+      reference
+        "Device.QoS.Classification.{i}.DestVendorSpecificInfoSubOption";
+    }
+    leaf tcpack {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.TCPACK";
+      reference
+        "Device.QoS.Classification.{i}.TCPACK";
+    }
+    leaf tcpack-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.TCPACKExclude";
+      reference
+        "Device.QoS.Classification.{i}.TCPACKExclude";
+    }
+    leaf ip-length-min {
+      type uint32;
+      description
+        "Device.QoS.Classification.{i}.IPLengthMin";
+      reference
+        "Device.QoS.Classification.{i}.IPLengthMin";
+    }
+    leaf ip-length-max {
+      type uint32;
+      description
+        "Device.QoS.Classification.{i}.IPLengthMax";
+      reference
+        "Device.QoS.Classification.{i}.IPLengthMax";
+    }
+    leaf ip-length-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.IPLengthExclude";
+      reference
+        "Device.QoS.Classification.{i}.IPLengthExclude";
+    }
+    leaf dscp-check {
+      type int32 {
+        range "-1..63";
+      }
+      description
+        "Device.QoS.Classification.{i}.DSCPCheck";
+      reference
+        "Device.QoS.Classification.{i}.DSCPCheck";
+    }
+    leaf dscp-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.DSCPExclude";
+      reference
+        "Device.QoS.Classification.{i}.DSCPExclude";
+    }
+    leaf dscp-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.DSCPMark";
+      reference
+        "Device.QoS.Classification.{i}.DSCPMark";
+    }
+    leaf ethernet-priority-check {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.EthernetPriorityCheck";
+      reference
+        "Device.QoS.Classification.{i}.EthernetPriorityCheck";
+    }
+    leaf ethernet-priority-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.EthernetPriorityExclude";
+      reference
+        "Device.QoS.Classification.{i}.EthernetPriorityExclude";
+    }
+    leaf ethernet-priority-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.EthernetPriorityMark";
+      reference
+        "Device.QoS.Classification.{i}.EthernetPriorityMark";
+    }
+    leaf inner-ethernet-priority-check {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.InnerEthernetPriorityCheck";
+      reference
+        "Device.QoS.Classification.{i}.InnerEthernetPriorityCheck";
+    }
+    leaf inner-ethernet-priority-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.InnerEthernetPriorityExclude";
+      reference
+        "Device.QoS.Classification.{i}.InnerEthernetPriorityExclude";
+    }
+    leaf inner-ethernet-priority-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.InnerEthernetPriorityMark";
+      reference
+        "Device.QoS.Classification.{i}.InnerEthernetPriorityMark";
+    }
+    leaf ethernet-dei-check {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.EthernetDEICheck";
+      reference
+        "Device.QoS.Classification.{i}.EthernetDEICheck";
+    }
+    leaf ethernet-dei-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.EthernetDEIExclude";
+      reference
+        "Device.QoS.Classification.{i}.EthernetDEIExclude";
+    }
+    leaf vlanid-check {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.VLANIDCheck";
+      reference
+        "Device.QoS.Classification.{i}.VLANIDCheck";
+    }
+    leaf vlanid-exclude {
+      type boolean;
+      description
+        "Device.QoS.Classification.{i}.VLANIDExclude";
+      reference
+        "Device.QoS.Classification.{i}.VLANIDExclude";
+    }
+    leaf out-of-band-info {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.OutOfBandInfo";
+      reference
+        "Device.QoS.Classification.{i}.OutOfBandInfo";
+    }
+    leaf forwarding-policy {
+      type uint32;
+      description
+        "Device.QoS.Classification.{i}.ForwardingPolicy";
+      reference
+        "Device.QoS.Classification.{i}.ForwardingPolicy";
+    }
+    leaf traffic-class {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Classification.{i}.TrafficClass";
+      reference
+        "Device.QoS.Classification.{i}.TrafficClass";
+    }
+    leaf policer {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.Classification.{i}.Policer";
+      reference
+        "Device.QoS.Classification.{i}.Policer";
+    }
+    leaf app {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.Classification.{i}.App";
+      reference
+        "Device.QoS.Classification.{i}.App";
+    }
+  }
+
+  grouping qo-s-flow-g {
+    description
+      "Grouping object for Device.QoS.Flow.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.QoS.Flow.{i}.Enable";
+      reference
+        "Device.QoS.Flow.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.QoS.Flow.{i}.Status";
+      reference
+        "Device.QoS.Flow.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.QoS.Flow.{i}.Alias";
+      reference
+        "Device.QoS.Flow.{i}.Alias";
+    }
+    leaf type {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.Flow.{i}.Type";
+      reference
+        "Device.QoS.Flow.{i}.Type";
+    }
+    leaf type-parameters {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.Flow.{i}.TypeParameters";
+      reference
+        "Device.QoS.Flow.{i}.TypeParameters";
+    }
+    leaf name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.QoS.Flow.{i}.Name";
+      reference
+        "Device.QoS.Flow.{i}.Name";
+    }
+    leaf app {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.Flow.{i}.App";
+      reference
+        "Device.QoS.Flow.{i}.App";
+    }
+    leaf forwarding-policy {
+      type uint32;
+      description
+        "Device.QoS.Flow.{i}.ForwardingPolicy";
+      reference
+        "Device.QoS.Flow.{i}.ForwardingPolicy";
+    }
+    leaf traffic-class {
+      type uint32;
+      description
+        "Device.QoS.Flow.{i}.TrafficClass";
+      reference
+        "Device.QoS.Flow.{i}.TrafficClass";
+    }
+    leaf policer {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.Flow.{i}.Policer";
+      reference
+        "Device.QoS.Flow.{i}.Policer";
+    }
+    leaf dscp-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.Flow.{i}.DSCPMark";
+      reference
+        "Device.QoS.Flow.{i}.DSCPMark";
+    }
+    leaf ethernet-priority-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.Flow.{i}.EthernetPriorityMark";
+      reference
+        "Device.QoS.Flow.{i}.EthernetPriorityMark";
+    }
+    leaf inner-ethernet-priority-mark {
+      type int32 {
+        range "-2..max";
+      }
+      description
+        "Device.QoS.Flow.{i}.InnerEthernetPriorityMark";
+      reference
+        "Device.QoS.Flow.{i}.InnerEthernetPriorityMark";
+    }
+  }
+
+  grouping qo-s-policer-g {
+    description
+      "Grouping object for Device.QoS.Policer.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.QoS.Policer.{i}.Enable";
+      reference
+        "Device.QoS.Policer.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.QoS.Policer.{i}.Status";
+      reference
+        "Device.QoS.Policer.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.QoS.Policer.{i}.Alias";
+      reference
+        "Device.QoS.Policer.{i}.Alias";
+    }
+    leaf committed-rate {
+      type uint32;
+      description
+        "Device.QoS.Policer.{i}.CommittedRate";
+      reference
+        "Device.QoS.Policer.{i}.CommittedRate";
+    }
+    leaf committed-burst-size {
+      type uint32;
+      description
+        "Device.QoS.Policer.{i}.CommittedBurstSize";
+      reference
+        "Device.QoS.Policer.{i}.CommittedBurstSize";
+    }
+    leaf excess-burst-size {
+      type uint32;
+      description
+        "Device.QoS.Policer.{i}.ExcessBurstSize";
+      reference
+        "Device.QoS.Policer.{i}.ExcessBurstSize";
+    }
+    leaf peak-rate {
+      type uint32;
+      description
+        "Device.QoS.Policer.{i}.PeakRate";
+      reference
+        "Device.QoS.Policer.{i}.PeakRate";
+    }
+    leaf peak-burst-size {
+      type uint32;
+      description
+        "Device.QoS.Policer.{i}.PeakBurstSize";
+      reference
+        "Device.QoS.Policer.{i}.PeakBurstSize";
+    }
+    leaf meter-type {
+      type string;
+      description
+        "Device.QoS.Policer.{i}.MeterType";
+      reference
+        "Device.QoS.Policer.{i}.MeterType";
+    }
+    leaf possible-meter-types {
+      type string;
+      config false;
+      description
+        "Device.QoS.Policer.{i}.PossibleMeterTypes";
+      reference
+        "Device.QoS.Policer.{i}.PossibleMeterTypes";
+    }
+    leaf conforming-action {
+      type string;
+      description
+        "Device.QoS.Policer.{i}.ConformingAction";
+      reference
+        "Device.QoS.Policer.{i}.ConformingAction";
+    }
+    leaf partial-conforming-action {
+      type string;
+      description
+        "Device.QoS.Policer.{i}.PartialConformingAction";
+      reference
+        "Device.QoS.Policer.{i}.PartialConformingAction";
+    }
+    leaf non-conforming-action {
+      type string;
+      description
+        "Device.QoS.Policer.{i}.NonConformingAction";
+      reference
+        "Device.QoS.Policer.{i}.NonConformingAction";
+    }
+    leaf total-counted-packets {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.Policer.{i}.TotalCountedPackets";
+      reference
+        "Device.QoS.Policer.{i}.TotalCountedPackets";
+    }
+    leaf total-counted-bytes {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.Policer.{i}.TotalCountedBytes";
+      reference
+        "Device.QoS.Policer.{i}.TotalCountedBytes";
+    }
+    leaf conforming-counted-packets {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.Policer.{i}.ConformingCountedPackets";
+      reference
+        "Device.QoS.Policer.{i}.ConformingCountedPackets";
+    }
+    leaf conforming-counted-bytes {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.Policer.{i}.ConformingCountedBytes";
+      reference
+        "Device.QoS.Policer.{i}.ConformingCountedBytes";
+    }
+    leaf partially-conforming-counted-packets {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.Policer.{i}.PartiallyConformingCountedPackets";
+      reference
+        "Device.QoS.Policer.{i}.PartiallyConformingCountedPackets";
+    }
+    leaf partially-conforming-counted-bytes {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.Policer.{i}.PartiallyConformingCountedBytes";
+      reference
+        "Device.QoS.Policer.{i}.PartiallyConformingCountedBytes";
+    }
+    leaf non-conforming-counted-packets {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.Policer.{i}.NonConformingCountedPackets";
+      reference
+        "Device.QoS.Policer.{i}.NonConformingCountedPackets";
+    }
+    leaf non-conforming-counted-bytes {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.Policer.{i}.NonConformingCountedBytes";
+      reference
+        "Device.QoS.Policer.{i}.NonConformingCountedBytes";
+    }
+  }
+
+  grouping qo-s-queue-g {
+    description
+      "Grouping object for Device.QoS.Queue.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.QoS.Queue.{i}.Enable";
+      reference
+        "Device.QoS.Queue.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.QoS.Queue.{i}.Status";
+      reference
+        "Device.QoS.Queue.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.QoS.Queue.{i}.Alias";
+      reference
+        "Device.QoS.Queue.{i}.Alias";
+    }
+    leaf traffic-classes {
+      type uint32;
+      description
+        "Device.QoS.Queue.{i}.TrafficClasses";
+      reference
+        "Device.QoS.Queue.{i}.TrafficClasses";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.Queue.{i}.Interface";
+      reference
+        "Device.QoS.Queue.{i}.Interface";
+    }
+    leaf all-interfaces {
+      type boolean;
+      description
+        "Device.QoS.Queue.{i}.AllInterfaces";
+      reference
+        "Device.QoS.Queue.{i}.AllInterfaces";
+    }
+    leaf hardware-assisted {
+      type boolean;
+      config false;
+      description
+        "Device.QoS.Queue.{i}.HardwareAssisted";
+      reference
+        "Device.QoS.Queue.{i}.HardwareAssisted";
+    }
+    leaf buffer-length {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.Queue.{i}.BufferLength";
+      reference
+        "Device.QoS.Queue.{i}.BufferLength";
+    }
+    leaf weight {
+      type uint32;
+      description
+        "Device.QoS.Queue.{i}.Weight";
+      reference
+        "Device.QoS.Queue.{i}.Weight";
+    }
+    leaf precedence {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.QoS.Queue.{i}.Precedence";
+      reference
+        "Device.QoS.Queue.{i}.Precedence";
+    }
+    leaf red-threshold {
+      type uint32 {
+        range "min..100";
+      }
+      description
+        "Device.QoS.Queue.{i}.REDThreshold";
+      reference
+        "Device.QoS.Queue.{i}.REDThreshold";
+    }
+    leaf red-percentage {
+      type uint32 {
+        range "min..100";
+      }
+      description
+        "Device.QoS.Queue.{i}.REDPercentage";
+      reference
+        "Device.QoS.Queue.{i}.REDPercentage";
+    }
+    leaf drop-algorithm {
+      type enumeration {
+        enum RED {
+          description
+            "Enum Value - RED";
+        }
+        enum DT {
+          description
+            "Enum Value - DT";
+        }
+        enum WRED {
+          description
+            "Enum Value - WRED";
+        }
+        enum BLUE {
+          description
+            "Enum Value - BLUE";
+        }
+      }
+      description
+        "Device.QoS.Queue.{i}.DropAlgorithm";
+      reference
+        "Device.QoS.Queue.{i}.DropAlgorithm";
+    }
+    leaf scheduler-algorithm {
+      type enumeration {
+        enum WFQ {
+          description
+            "Enum Value - WFQ";
+        }
+        enum WRR {
+          description
+            "Enum Value - WRR";
+        }
+        enum SP {
+          description
+            "Enum Value - SP";
+        }
+      }
+      description
+        "Device.QoS.Queue.{i}.SchedulerAlgorithm";
+      reference
+        "Device.QoS.Queue.{i}.SchedulerAlgorithm";
+    }
+    leaf shaping-rate {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Queue.{i}.ShapingRate";
+      reference
+        "Device.QoS.Queue.{i}.ShapingRate";
+    }
+    leaf shaping-burst-size {
+      type uint32;
+      description
+        "Device.QoS.Queue.{i}.ShapingBurstSize";
+      reference
+        "Device.QoS.Queue.{i}.ShapingBurstSize";
+    }
+  }
+
+  grouping qo-s-queue-stats-g {
+    description
+      "Grouping object for Device.QoS.QueueStats.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.QoS.QueueStats.{i}.Enable";
+      reference
+        "Device.QoS.QueueStats.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.QoS.QueueStats.{i}.Status";
+      reference
+        "Device.QoS.QueueStats.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.QoS.QueueStats.{i}.Alias";
+      reference
+        "Device.QoS.QueueStats.{i}.Alias";
+    }
+    leaf queue {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.QueueStats.{i}.Queue";
+      reference
+        "Device.QoS.QueueStats.{i}.Queue";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.QueueStats.{i}.Interface";
+      reference
+        "Device.QoS.QueueStats.{i}.Interface";
+    }
+    leaf output-packets {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.QueueStats.{i}.OutputPackets";
+      reference
+        "Device.QoS.QueueStats.{i}.OutputPackets";
+    }
+    leaf output-bytes {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.QueueStats.{i}.OutputBytes";
+      reference
+        "Device.QoS.QueueStats.{i}.OutputBytes";
+    }
+    leaf dropped-packets {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.QueueStats.{i}.DroppedPackets";
+      reference
+        "Device.QoS.QueueStats.{i}.DroppedPackets";
+    }
+    leaf dropped-bytes {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.QueueStats.{i}.DroppedBytes";
+      reference
+        "Device.QoS.QueueStats.{i}.DroppedBytes";
+    }
+    leaf queue-occupancy-packets {
+      type uint32;
+      config false;
+      description
+        "Device.QoS.QueueStats.{i}.QueueOccupancyPackets";
+      reference
+        "Device.QoS.QueueStats.{i}.QueueOccupancyPackets";
+    }
+    leaf queue-occupancy-percentage {
+      type uint32 {
+        range "0..100";
+      }
+      config false;
+      description
+        "Device.QoS.QueueStats.{i}.QueueOccupancyPercentage";
+      reference
+        "Device.QoS.QueueStats.{i}.QueueOccupancyPercentage";
+    }
+  }
+
+  grouping qo-s-shaper-g {
+    description
+      "Grouping object for Device.QoS.Shaper.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.QoS.Shaper.{i}.Enable";
+      reference
+        "Device.QoS.Shaper.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.QoS.Shaper.{i}.Status";
+      reference
+        "Device.QoS.Shaper.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.QoS.Shaper.{i}.Alias";
+      reference
+        "Device.QoS.Shaper.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.QoS.Shaper.{i}.Interface";
+      reference
+        "Device.QoS.Shaper.{i}.Interface";
+    }
+    leaf shaping-rate {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.QoS.Shaper.{i}.ShapingRate";
+      reference
+        "Device.QoS.Shaper.{i}.ShapingRate";
+    }
+    leaf shaping-burst-size {
+      type uint32;
+      description
+        "Device.QoS.Shaper.{i}.ShapingBurstSize";
+      reference
+        "Device.QoS.Shaper.{i}.ShapingBurstSize";
+    }
+  }
+
+  grouping device-router-advertisement-g {
+    description
+      "Grouping object for Device.RouterAdvertisement.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.RouterAdvertisement.Enable";
+      reference
+        "Device.RouterAdvertisement.Enable";
+    }
+    leaf interface-setting-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.RouterAdvertisement.InterfaceSettingNumberOfEntries";
+      reference
+        "Device.RouterAdvertisement.InterfaceSettingNumberOfEntries";
+    }
+  }
+
+  grouping router-advertisement-interface-setting-g {
+    description
+      "Grouping object for Device.RouterAdvertisement.InterfaceSetting.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Enable";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Status";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Alias";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Alias";
+    }
+    leaf interface {
+      type string;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Interface";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Interface";
+    }
+    leaf manual-prefixes {
+      type string;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.ManualPrefixes";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.ManualPrefixes";
+    }
+    leaf prefixes {
+      type string;
+      config false;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Prefixes";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Prefixes";
+    }
+    leaf max-rtr-adv-interval {
+      type uint32 {
+        range "4..1800";
+      }
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.MaxRtrAdvInterval";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.MaxRtrAdvInterval";
+    }
+    leaf min-rtr-adv-interval {
+      type uint32 {
+        range "3..1350";
+      }
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.MinRtrAdvInterval";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.MinRtrAdvInterval";
+    }
+    leaf adv-default-lifetime {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvDefaultLifetime";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvDefaultLifetime";
+    }
+    leaf adv-managed-flag {
+      type boolean;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvManagedFlag";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvManagedFlag";
+    }
+    leaf adv-other-config-flag {
+      type boolean;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvOtherConfigFlag";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvOtherConfigFlag";
+    }
+    leaf adv-mobile-agent-flag {
+      type boolean;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvMobileAgentFlag";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvMobileAgentFlag";
+    }
+    leaf adv-preferred-router-flag {
+      type enumeration {
+        enum High {
+          description
+            "Enum Value - High";
+        }
+        enum Medium {
+          description
+            "Enum Value - Medium";
+        }
+        enum Low {
+          description
+            "Enum Value - Low";
+        }
+      }
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvPreferredRouterFlag";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvPreferredRouterFlag";
+    }
+    leaf adv-nd-proxy-flag {
+      type boolean;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvNDProxyFlag";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvNDProxyFlag";
+    }
+    leaf adv-link-mtu {
+      type uint32;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvLinkMTU";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvLinkMTU";
+    }
+    leaf adv-reachable-time {
+      type uint32 {
+        range "min..3600000";
+      }
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvReachableTime";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvReachableTime";
+    }
+    leaf adv-retrans-timer {
+      type uint32;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvRetransTimer";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvRetransTimer";
+    }
+    leaf adv-cur-hop-limit {
+      type uint32 {
+        range "min..255";
+      }
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvCurHopLimit";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.AdvCurHopLimit";
+    }
+    leaf option-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.OptionNumberOfEntries";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.OptionNumberOfEntries";
+    }
+  }
+
+  grouping interface-setting-option-g {
+    description
+      "Grouping object for Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.Enable";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.Alias";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.Alias";
+    }
+    leaf tag {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.Tag";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.Tag";
+    }
+    leaf value {
+      type string {
+        length "0..65535";
+      }
+      description
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.Value";
+      reference
+        "Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.Value";
+    }
+  }
+
+  grouping device-routing-g {
+    description
+      "Grouping object for Device.Routing.";
+    leaf router-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Routing.RouterNumberOfEntries";
+      reference
+        "Device.Routing.RouterNumberOfEntries";
+    }
+  }
+
+  grouping routing-rip-g {
+    description
+      "Grouping object for Device.Routing.RIP.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.Routing.RIP.Enable";
+      reference
+        "Device.Routing.RIP.Enable";
+    }
+    leaf supported-modes {
+      type string;
+      config false;
+      description
+        "Device.Routing.RIP.SupportedModes";
+      reference
+        "Device.Routing.RIP.SupportedModes";
+    }
+    leaf interface-setting-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Routing.RIP.InterfaceSettingNumberOfEntries";
+      reference
+        "Device.Routing.RIP.InterfaceSettingNumberOfEntries";
+    }
+  }
+
+  grouping rip-interface-setting-g {
+    description
+      "Grouping object for Device.Routing.RIP.InterfaceSetting.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Routing.RIP.InterfaceSetting.{i}.Enable";
+      reference
+        "Device.Routing.RIP.InterfaceSetting.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Routing.RIP.InterfaceSetting.{i}.Status";
+      reference
+        "Device.Routing.RIP.InterfaceSetting.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Routing.RIP.InterfaceSetting.{i}.Alias";
+      reference
+        "Device.Routing.RIP.InterfaceSetting.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Routing.RIP.InterfaceSetting.{i}.Interface";
+      reference
+        "Device.Routing.RIP.InterfaceSetting.{i}.Interface";
+    }
+    leaf accept-ra {
+      type boolean;
+      description
+        "Device.Routing.RIP.InterfaceSetting.{i}.AcceptRA";
+      reference
+        "Device.Routing.RIP.InterfaceSetting.{i}.AcceptRA";
+    }
+    leaf send-ra {
+      type boolean;
+      description
+        "Device.Routing.RIP.InterfaceSetting.{i}.SendRA";
+      reference
+        "Device.Routing.RIP.InterfaceSetting.{i}.SendRA";
+    }
+  }
+
+  grouping routing-route-information-g {
+    description
+      "Grouping object for Device.Routing.RouteInformation.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.Routing.RouteInformation.Enable";
+      reference
+        "Device.Routing.RouteInformation.Enable";
+    }
+    leaf interface-setting-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Routing.RouteInformation.InterfaceSettingNumberOfEntries";
+      reference
+        "Device.Routing.RouteInformation.InterfaceSettingNumberOfEntries";
+    }
+  }
+
+  grouping route-information-interface-setting-g {
+    description
+      "Grouping object for Device.Routing.RouteInformation.InterfaceSetting.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.Status";
+      reference
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.Status";
+    }
+    leaf interface {
+      type string;
+      config false;
+      description
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.Interface";
+      reference
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.Interface";
+    }
+    leaf source-router {
+      type string {
+        length "min..45";
+      }
+      config false;
+      description
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.SourceRouter";
+      reference
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.SourceRouter";
+    }
+    leaf preferred-route-flag {
+      type string;
+      config false;
+      description
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.PreferredRouteFlag";
+      reference
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.PreferredRouteFlag";
+    }
+    leaf prefix {
+      type string {
+        length "min..49";
+      }
+      config false;
+      description
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.Prefix";
+      reference
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.Prefix";
+    }
+    leaf route-lifetime {
+      type string;
+      config false;
+      description
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.RouteLifetime";
+      reference
+        "Device.Routing.RouteInformation.InterfaceSetting.{i}.RouteLifetime";
+    }
+  }
+
+  grouping routing-router-g {
+    description
+      "Grouping object for Device.Routing.Router.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Routing.Router.{i}.Enable";
+      reference
+        "Device.Routing.Router.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Routing.Router.{i}.Status";
+      reference
+        "Device.Routing.Router.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Routing.Router.{i}.Alias";
+      reference
+        "Device.Routing.Router.{i}.Alias";
+    }
+    leaf ipv4-forwarding-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Routing.Router.{i}.IPv4ForwardingNumberOfEntries";
+      reference
+        "Device.Routing.Router.{i}.IPv4ForwardingNumberOfEntries";
+    }
+    leaf ipv6-forwarding-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Routing.Router.{i}.IPv6ForwardingNumberOfEntries";
+      reference
+        "Device.Routing.Router.{i}.IPv6ForwardingNumberOfEntries";
+    }
+  }
+
+  grouping router-ipv4-forwarding-g {
+    description
+      "Grouping object for Device.Routing.Router.{i}.IPv4Forwarding.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.Enable";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.Status";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.Alias";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.Alias";
+    }
+    leaf static-route {
+      type boolean;
+      config false;
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.StaticRoute";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.StaticRoute";
+    }
+    leaf dest-ip-address {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.DestIPAddress";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.DestIPAddress";
+    }
+    leaf dest-subnet-mask {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.DestSubnetMask";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.DestSubnetMask";
+    }
+    leaf forwarding-policy {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.ForwardingPolicy";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.ForwardingPolicy";
+    }
+    leaf gateway-ip-address {
+      type string {
+        length "min..15";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.GatewayIPAddress";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.GatewayIPAddress";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.Interface";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.Interface";
+    }
+    leaf origin {
+      type string;
+      config false;
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.Origin";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.Origin";
+    }
+    leaf forwarding-metric {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.ForwardingMetric";
+      reference
+        "Device.Routing.Router.{i}.IPv4Forwarding.{i}.ForwardingMetric";
+    }
+  }
+
+  grouping router-ipv6-forwarding-g {
+    description
+      "Grouping object for Device.Routing.Router.{i}.IPv6Forwarding.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.Enable";
+      reference
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.Status";
+      reference
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.Alias";
+      reference
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.Alias";
+    }
+    leaf dest-ip-prefix {
+      type string {
+        length "min..49";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.DestIPPrefix";
+      reference
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.DestIPPrefix";
+    }
+    leaf forwarding-policy {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.ForwardingPolicy";
+      reference
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.ForwardingPolicy";
+    }
+    leaf next-hop {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.NextHop";
+      reference
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.NextHop";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.Interface";
+      reference
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.Interface";
+    }
+    leaf origin {
+      type string;
+      config false;
+      description
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.Origin";
+      reference
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.Origin";
+    }
+    leaf forwarding-metric {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.ForwardingMetric";
+      reference
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.ForwardingMetric";
+    }
+    leaf expiration-time {
+      type string;
+      config false;
+      description
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.ExpirationTime";
+      reference
+        "Device.Routing.Router.{i}.IPv6Forwarding.{i}.ExpirationTime";
+    }
+  }
+
+  grouping device-security-g {
+    description
+      "Grouping object for Device.Security.";
+    leaf certificate-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Security.CertificateNumberOfEntries";
+      reference
+        "Device.Security.CertificateNumberOfEntries";
+    }
+  }
+
+  grouping security-certificate-g {
+    description
+      "Grouping object for Device.Security.Certificate.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Security.Certificate.{i}.Enable";
+      reference
+        "Device.Security.Certificate.{i}.Enable";
+    }
+    leaf last-modif {
+      type string;
+      config false;
+      description
+        "Device.Security.Certificate.{i}.LastModif";
+      reference
+        "Device.Security.Certificate.{i}.LastModif";
+    }
+    leaf serial-number {
+      type string;
+      config false;
+      description
+        "Device.Security.Certificate.{i}.SerialNumber";
+      reference
+        "Device.Security.Certificate.{i}.SerialNumber";
+    }
+    leaf issuer {
+      type string;
+      config false;
+      description
+        "Device.Security.Certificate.{i}.Issuer";
+      reference
+        "Device.Security.Certificate.{i}.Issuer";
+    }
+    leaf not-before {
+      type string;
+      config false;
+      description
+        "Device.Security.Certificate.{i}.NotBefore";
+      reference
+        "Device.Security.Certificate.{i}.NotBefore";
+    }
+    leaf not-after {
+      type string;
+      config false;
+      description
+        "Device.Security.Certificate.{i}.NotAfter";
+      reference
+        "Device.Security.Certificate.{i}.NotAfter";
+    }
+    leaf subject {
+      type string;
+      config false;
+      description
+        "Device.Security.Certificate.{i}.Subject";
+      reference
+        "Device.Security.Certificate.{i}.Subject";
+    }
+    leaf subject-alt {
+      type string;
+      config false;
+      description
+        "Device.Security.Certificate.{i}.SubjectAlt";
+      reference
+        "Device.Security.Certificate.{i}.SubjectAlt";
+    }
+    leaf signature-algorithm {
+      type string;
+      config false;
+      description
+        "Device.Security.Certificate.{i}.SignatureAlgorithm";
+      reference
+        "Device.Security.Certificate.{i}.SignatureAlgorithm";
+    }
+  }
+
+  grouping device-self-test-diagnostics-g {
+    description
+      "Grouping object for Device.SelfTestDiagnostics.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error_Internal {
+          description
+            "Enum Value - Error_Internal";
+        }
+        enum Error_Other {
+          description
+            "Enum Value - Error_Other";
+        }
+      }
+      description
+        "Device.SelfTestDiagnostics.DiagnosticsState";
+      reference
+        "Device.SelfTestDiagnostics.DiagnosticsState";
+    }
+    leaf results {
+      type string;
+      config false;
+      description
+        "Device.SelfTestDiagnostics.Results";
+      reference
+        "Device.SelfTestDiagnostics.Results";
+    }
+  }
+
+  grouping device-smart-card-readers-g {
+    description
+      "Grouping object for Device.SmartCardReaders.";
+    leaf smart-card-reader-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReaderNumberOfEntries";
+      reference
+        "Device.SmartCardReaders.SmartCardReaderNumberOfEntries";
+    }
+  }
+
+  grouping smart-card-readers-smart-card-reader-g {
+    description
+      "Grouping object for Device.SmartCardReaders.SmartCardReader.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.Alias";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.Enable";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.Status";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.Status";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.Name";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.Name";
+    }
+    leaf reset-time {
+      type string;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.ResetTime";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.ResetTime";
+    }
+    leaf decryption-failed-counter {
+      type uint32;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.DecryptionFailedCounter";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.DecryptionFailedCounter";
+    }
+    leaf decryption-failed-no-key-counter {
+      type uint32;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.DecryptionFailedNoKeyCounter";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.DecryptionFailedNoKeyCounter";
+    }
+  }
+
+  grouping smart-card-reader-smart-card-g {
+    description
+      "Grouping object for Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.";
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.Status";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.Status";
+    }
+    leaf type {
+      type string;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.Type";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.Type";
+    }
+    leaf application {
+      type string;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.Application";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.Application";
+    }
+    leaf serial-number {
+      type string;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.SerialNumber";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.SerialNumber";
+    }
+    leaf atr {
+      type string;
+      config false;
+      description
+        "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.ATR";
+      reference
+        "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.ATR";
+    }
+  }
+
+  grouping device-software-modules-g {
+    description
+      "Grouping object for Device.SoftwareModules.";
+    leaf exec-env-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnvNumberOfEntries";
+      reference
+        "Device.SoftwareModules.ExecEnvNumberOfEntries";
+    }
+    leaf deployment-unit-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnitNumberOfEntries";
+      reference
+        "Device.SoftwareModules.DeploymentUnitNumberOfEntries";
+    }
+    leaf execution-unit-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnitNumberOfEntries";
+      reference
+        "Device.SoftwareModules.ExecutionUnitNumberOfEntries";
+    }
+  }
+
+  grouping software-modules-deployment-unit-g {
+    description
+      "Grouping object for Device.SoftwareModules.DeploymentUnit.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf uuid {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.UUID";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.UUID";
+    }
+    leaf duid {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.DUID";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.DUID";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.Alias";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.Name";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.Name";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.Status";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.Status";
+    }
+    leaf resolved {
+      type boolean;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.Resolved";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.Resolved";
+    }
+    leaf url {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.URL";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.URL";
+    }
+    leaf description {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.Description";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.Description";
+    }
+    leaf vendor {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.Vendor";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.Vendor";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.Version";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.Version";
+    }
+    leaf vendor-log-list {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.VendorLogList";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.VendorLogList";
+    }
+    leaf vendor-config-list {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.VendorConfigList";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.VendorConfigList";
+    }
+    leaf execution-unit-list {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.ExecutionUnitList";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.ExecutionUnitList";
+    }
+    leaf execution-env-ref {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.DeploymentUnit.{i}.ExecutionEnvRef";
+      reference
+        "Device.SoftwareModules.DeploymentUnit.{i}.ExecutionEnvRef";
+    }
+  }
+
+  grouping software-modules-exec-env-g {
+    description
+      "Grouping object for Device.SoftwareModules.ExecEnv.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.Enable";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.Status";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.Alias";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.Name";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.Name";
+    }
+    leaf type {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.Type";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.Type";
+    }
+    leaf initial-run-level {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.InitialRunLevel";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.InitialRunLevel";
+    }
+    leaf current-run-level {
+      type int32 {
+        range "-1..65535";
+      }
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.CurrentRunLevel";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.CurrentRunLevel";
+    }
+    leaf initial-execution-unit-run-level {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.InitialExecutionUnitRunLevel";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.InitialExecutionUnitRunLevel";
+    }
+    leaf vendor {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.Vendor";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.Vendor";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.Version";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.Version";
+    }
+    leaf parent-exec-env {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.ParentExecEnv";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.ParentExecEnv";
+    }
+    leaf allocated-disk-space {
+      type int32;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.AllocatedDiskSpace";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.AllocatedDiskSpace";
+    }
+    leaf available-disk-space {
+      type int32;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.AvailableDiskSpace";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.AvailableDiskSpace";
+    }
+    leaf allocated-memory {
+      type int32;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.AllocatedMemory";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.AllocatedMemory";
+    }
+    leaf available-memory {
+      type int32;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.AvailableMemory";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.AvailableMemory";
+    }
+    leaf active-execution-units {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.ActiveExecutionUnits";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.ActiveExecutionUnits";
+    }
+    leaf processor-ref-list {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecEnv.{i}.ProcessorRefList";
+      reference
+        "Device.SoftwareModules.ExecEnv.{i}.ProcessorRefList";
+    }
+  }
+
+  grouping software-modules-execution-unit-g {
+    description
+      "Grouping object for Device.SoftwareModules.ExecutionUnit.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf euid {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.EUID";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.EUID";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.Alias";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.Name";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.Name";
+    }
+    leaf exec-env-label {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.ExecEnvLabel";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.ExecEnvLabel";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.Status";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.Status";
+    }
+    leaf execution-fault-code {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.ExecutionFaultCode";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.ExecutionFaultCode";
+    }
+    leaf execution-fault-message {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.ExecutionFaultMessage";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.ExecutionFaultMessage";
+    }
+    leaf auto-start {
+      type boolean;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.AutoStart";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.AutoStart";
+    }
+    leaf run-level {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.RunLevel";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.RunLevel";
+    }
+    leaf vendor {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.Vendor";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.Vendor";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.Version";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.Version";
+    }
+    leaf description {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.Description";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.Description";
+    }
+    leaf disk-space-in-use {
+      type int32;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.DiskSpaceInUse";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.DiskSpaceInUse";
+    }
+    leaf memory-in-use {
+      type int32;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.MemoryInUse";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.MemoryInUse";
+    }
+    leaf references {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.References";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.References";
+    }
+    leaf associated-process-list {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.AssociatedProcessList";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.AssociatedProcessList";
+    }
+    leaf vendor-log-list {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.VendorLogList";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.VendorLogList";
+    }
+    leaf vendor-config-list {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.VendorConfigList";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.VendorConfigList";
+    }
+    leaf supported-data-model-list {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.SupportedDataModelList";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.SupportedDataModelList";
+    }
+    leaf execution-env-ref {
+      type string;
+      config false;
+      description
+        "Device.SoftwareModules.ExecutionUnit.{i}.ExecutionEnvRef";
+      reference
+        "Device.SoftwareModules.ExecutionUnit.{i}.ExecutionEnvRef";
+    }
+  }
+
+  grouping device-time-g {
+    description
+      "Grouping object for Device.Time.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.Time.Enable";
+      reference
+        "Device.Time.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.Time.Status";
+      reference
+        "Device.Time.Status";
+    }
+    leaf ntp-server1 {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Time.NTPServer1";
+      reference
+        "Device.Time.NTPServer1";
+    }
+    leaf ntp-server2 {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Time.NTPServer2";
+      reference
+        "Device.Time.NTPServer2";
+    }
+    leaf ntp-server3 {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Time.NTPServer3";
+      reference
+        "Device.Time.NTPServer3";
+    }
+    leaf ntp-server4 {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Time.NTPServer4";
+      reference
+        "Device.Time.NTPServer4";
+    }
+    leaf ntp-server5 {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Time.NTPServer5";
+      reference
+        "Device.Time.NTPServer5";
+    }
+    leaf current-local-time {
+      type string;
+      config false;
+      description
+        "Device.Time.CurrentLocalTime";
+      reference
+        "Device.Time.CurrentLocalTime";
+    }
+    leaf local-time-zone {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.Time.LocalTimeZone";
+      reference
+        "Device.Time.LocalTimeZone";
+    }
+  }
+
+  grouping device-upa-g {
+    description
+      "Grouping object for Device.UPA.";
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.InterfaceNumberOfEntries";
+      reference
+        "Device.UPA.InterfaceNumberOfEntries";
+    }
+  }
+
+  grouping diagnostics-interface-measurement-g {
+    description
+      "Grouping object for Device.UPA.Diagnostics.InterfaceMeasurement.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Canceled {
+          description
+            "Enum Value - Canceled";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error {
+          description
+            "Enum Value - Error";
+        }
+        enum Error_InvalidPort {
+          description
+            "Enum Value - Error_InvalidPort";
+        }
+      }
+      description
+        "Device.UPA.Diagnostics.InterfaceMeasurement.DiagnosticsState";
+      reference
+        "Device.UPA.Diagnostics.InterfaceMeasurement.DiagnosticsState";
+    }
+    leaf type {
+      type enumeration {
+        enum SNR {
+          description
+            "Enum Value - SNR";
+        }
+        enum CFR {
+          description
+            "Enum Value - CFR";
+        }
+      }
+      description
+        "Device.UPA.Diagnostics.InterfaceMeasurement.Type";
+      reference
+        "Device.UPA.Diagnostics.InterfaceMeasurement.Type";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.UPA.Diagnostics.InterfaceMeasurement.Interface";
+      reference
+        "Device.UPA.Diagnostics.InterfaceMeasurement.Interface";
+    }
+    leaf port {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.UPA.Diagnostics.InterfaceMeasurement.Port";
+      reference
+        "Device.UPA.Diagnostics.InterfaceMeasurement.Port";
+    }
+    leaf measurements {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Diagnostics.InterfaceMeasurement.Measurements";
+      reference
+        "Device.UPA.Diagnostics.InterfaceMeasurement.Measurements";
+    }
+    leaf rx-gain {
+      type int32;
+      config false;
+      description
+        "Device.UPA.Diagnostics.InterfaceMeasurement.RxGain";
+      reference
+        "Device.UPA.Diagnostics.InterfaceMeasurement.RxGain";
+    }
+  }
+
+  grouping upa-interface-g {
+    description
+      "Grouping object for Device.UPA.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.UPA.Interface.{i}.Enable";
+      reference
+        "Device.UPA.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Status";
+      reference
+        "Device.UPA.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.UPA.Interface.{i}.Alias";
+      reference
+        "Device.UPA.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Name";
+      reference
+        "Device.UPA.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.LastChange";
+      reference
+        "Device.UPA.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.UPA.Interface.{i}.LowerLayers";
+      reference
+        "Device.UPA.Interface.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Upstream";
+      reference
+        "Device.UPA.Interface.{i}.Upstream";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.UPA.Interface.{i}.MACAddress";
+      reference
+        "Device.UPA.Interface.{i}.MACAddress";
+    }
+    leaf firmware-version {
+      type string;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.FirmwareVersion";
+      reference
+        "Device.UPA.Interface.{i}.FirmwareVersion";
+    }
+    leaf max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.MaxBitRate";
+      reference
+        "Device.UPA.Interface.{i}.MaxBitRate";
+    }
+    leaf node-type {
+      type enumeration {
+        enum AP {
+          description
+            "Enum Value - AP";
+        }
+        enum EP {
+          description
+            "Enum Value - EP";
+        }
+      }
+      description
+        "Device.UPA.Interface.{i}.NodeType";
+      reference
+        "Device.UPA.Interface.{i}.NodeType";
+    }
+    leaf logical-network {
+      type string {
+        length "min..20";
+      }
+      description
+        "Device.UPA.Interface.{i}.LogicalNetwork";
+      reference
+        "Device.UPA.Interface.{i}.LogicalNetwork";
+    }
+    leaf encryption-method {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum DES {
+          description
+            "Enum Value - DES";
+        }
+        enum 3DES {
+          description
+            "Enum Value - 3DES";
+        }
+        enum AES128 {
+          description
+            "Enum Value - AES128";
+        }
+        enum AES256 {
+          description
+            "Enum Value - AES256";
+        }
+      }
+      description
+        "Device.UPA.Interface.{i}.EncryptionMethod";
+      reference
+        "Device.UPA.Interface.{i}.EncryptionMethod";
+    }
+    leaf power-backoff-enabled {
+      type boolean;
+      description
+        "Device.UPA.Interface.{i}.PowerBackoffEnabled";
+      reference
+        "Device.UPA.Interface.{i}.PowerBackoffEnabled";
+    }
+    leaf power-backoff-mechanism-active {
+      type boolean;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.PowerBackoffMechanismActive";
+      reference
+        "Device.UPA.Interface.{i}.PowerBackoffMechanismActive";
+    }
+    leaf est-application-throughput {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.EstApplicationThroughput";
+      reference
+        "Device.UPA.Interface.{i}.EstApplicationThroughput";
+    }
+    leaf active-notch-enable {
+      type boolean;
+      description
+        "Device.UPA.Interface.{i}.ActiveNotchEnable";
+      reference
+        "Device.UPA.Interface.{i}.ActiveNotchEnable";
+    }
+    leaf active-notch-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.ActiveNotchNumberOfEntries";
+      reference
+        "Device.UPA.Interface.{i}.ActiveNotchNumberOfEntries";
+    }
+    leaf associated-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDeviceNumberOfEntries";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDeviceNumberOfEntries";
+    }
+    leaf bridge-for-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.BridgeForNumberOfEntries";
+      reference
+        "Device.UPA.Interface.{i}.BridgeForNumberOfEntries";
+    }
+  }
+
+  grouping interface-active-notch-g {
+    description
+      "Grouping object for Device.UPA.Interface.{i}.ActiveNotch.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.UPA.Interface.{i}.ActiveNotch.{i}.Enable";
+      reference
+        "Device.UPA.Interface.{i}.ActiveNotch.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.UPA.Interface.{i}.ActiveNotch.{i}.Alias";
+      reference
+        "Device.UPA.Interface.{i}.ActiveNotch.{i}.Alias";
+    }
+    leaf start-freq {
+      type uint32;
+      description
+        "Device.UPA.Interface.{i}.ActiveNotch.{i}.StartFreq";
+      reference
+        "Device.UPA.Interface.{i}.ActiveNotch.{i}.StartFreq";
+    }
+    leaf stop-freq {
+      type uint32;
+      description
+        "Device.UPA.Interface.{i}.ActiveNotch.{i}.StopFreq";
+      reference
+        "Device.UPA.Interface.{i}.ActiveNotch.{i}.StopFreq";
+    }
+    leaf depth {
+      type uint32;
+      description
+        "Device.UPA.Interface.{i}.ActiveNotch.{i}.Depth";
+      reference
+        "Device.UPA.Interface.{i}.ActiveNotch.{i}.Depth";
+    }
+  }
+
+  grouping upa-interface-associated-device-g {
+    description
+      "Grouping object for Device.UPA.Interface.{i}.AssociatedDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.MACAddress";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.MACAddress";
+    }
+    leaf port {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.Port";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.Port";
+    }
+    leaf logical-network {
+      type string;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.LogicalNetwork";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.LogicalNetwork";
+    }
+    leaf phy-tx-throughput {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.PhyTxThroughput";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.PhyTxThroughput";
+    }
+    leaf phy-rx-throughput {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.PhyRxThroughput";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.PhyRxThroughput";
+    }
+    leaf real-phy-rx-throughput {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.RealPhyRxThroughput";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.RealPhyRxThroughput";
+    }
+    leaf estimated-plr {
+      type uint32 {
+        range "0..100";
+      }
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.EstimatedPLR";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.EstimatedPLR";
+    }
+    leaf mean-estimated-att {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.MeanEstimatedAtt";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.MeanEstimatedAtt";
+    }
+    leaf smart-route-intermediate-plcmac {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.SmartRouteIntermediatePLCMAC";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.SmartRouteIntermediatePLCMAC";
+    }
+    leaf direct-route {
+      type boolean;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.DirectRoute";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.DirectRoute";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.Active";
+      reference
+        "Device.UPA.Interface.{i}.AssociatedDevice.{i}.Active";
+    }
+  }
+
+  grouping interface-bridge-for-g {
+    description
+      "Grouping object for Device.UPA.Interface.{i}.BridgeFor.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.UPA.Interface.{i}.BridgeFor.{i}.Alias";
+      reference
+        "Device.UPA.Interface.{i}.BridgeFor.{i}.Alias";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.UPA.Interface.{i}.BridgeFor.{i}.MACAddress";
+      reference
+        "Device.UPA.Interface.{i}.BridgeFor.{i}.MACAddress";
+    }
+    leaf port {
+      type uint32 {
+        range "0..65535";
+      }
+      config false;
+      description
+        "Device.UPA.Interface.{i}.BridgeFor.{i}.Port";
+      reference
+        "Device.UPA.Interface.{i}.BridgeFor.{i}.Port";
+    }
+  }
+
+  grouping upa-interface-stats-g {
+    description
+      "Grouping object for Device.UPA.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.UPA.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.UPA.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.UPA.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.UPA.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.UPA.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.UPA.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.UPA.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.UPA.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.UPA.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.UPA.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.UPA.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.UPA.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.UPA.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.UPA.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.UPA.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.UPA.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping u-pn-p-description-g {
+    description
+      "Grouping object for Device.UPnP.Description.";
+    leaf device-description-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceDescriptionNumberOfEntries";
+      reference
+        "Device.UPnP.Description.DeviceDescriptionNumberOfEntries";
+    }
+    leaf device-instance-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstanceNumberOfEntries";
+      reference
+        "Device.UPnP.Description.DeviceInstanceNumberOfEntries";
+    }
+    leaf service-instance-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Description.ServiceInstanceNumberOfEntries";
+      reference
+        "Device.UPnP.Description.ServiceInstanceNumberOfEntries";
+    }
+  }
+
+  grouping description-device-description-g {
+    description
+      "Grouping object for Device.UPnP.Description.DeviceDescription.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf url-base {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceDescription.{i}.URLBase";
+      reference
+        "Device.UPnP.Description.DeviceDescription.{i}.URLBase";
+    }
+    leaf spec-version {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceDescription.{i}.SpecVersion";
+      reference
+        "Device.UPnP.Description.DeviceDescription.{i}.SpecVersion";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceDescription.{i}.Host";
+      reference
+        "Device.UPnP.Description.DeviceDescription.{i}.Host";
+    }
+  }
+
+  grouping description-device-instance-g {
+    description
+      "Grouping object for Device.UPnP.Description.DeviceInstance.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf udn {
+      type string {
+        length "min..36";
+      }
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.UDN";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.UDN";
+    }
+    leaf parent-device {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.ParentDevice";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.ParentDevice";
+    }
+    leaf discovery-device {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.DiscoveryDevice";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.DiscoveryDevice";
+    }
+    leaf device-type {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.DeviceType";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.DeviceType";
+    }
+    leaf friendly-name {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.FriendlyName";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.FriendlyName";
+    }
+    leaf device-category {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.DeviceCategory";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.DeviceCategory";
+    }
+    leaf manufacturer {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.Manufacturer";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.Manufacturer";
+    }
+    leaf manufacturer-oui {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.ManufacturerOUI";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.ManufacturerOUI";
+    }
+    leaf manufacturer-url {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.ManufacturerURL";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.ManufacturerURL";
+    }
+    leaf model-description {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.ModelDescription";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.ModelDescription";
+    }
+    leaf model-name {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.ModelName";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.ModelName";
+    }
+    leaf model-number {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.ModelNumber";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.ModelNumber";
+    }
+    leaf model-url {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.ModelURL";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.ModelURL";
+    }
+    leaf serial-number {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.SerialNumber";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.SerialNumber";
+    }
+    leaf upc {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.UPC";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.UPC";
+    }
+    leaf presentation-url {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.DeviceInstance.{i}.PresentationURL";
+      reference
+        "Device.UPnP.Description.DeviceInstance.{i}.PresentationURL";
+    }
+  }
+
+  grouping description-service-instance-g {
+    description
+      "Grouping object for Device.UPnP.Description.ServiceInstance.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf parent-device {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.ServiceInstance.{i}.ParentDevice";
+      reference
+        "Device.UPnP.Description.ServiceInstance.{i}.ParentDevice";
+    }
+    leaf service-id {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.ServiceInstance.{i}.ServiceId";
+      reference
+        "Device.UPnP.Description.ServiceInstance.{i}.ServiceId";
+    }
+    leaf service-discovery {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.ServiceInstance.{i}.ServiceDiscovery";
+      reference
+        "Device.UPnP.Description.ServiceInstance.{i}.ServiceDiscovery";
+    }
+    leaf service-type {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.ServiceInstance.{i}.ServiceType";
+      reference
+        "Device.UPnP.Description.ServiceInstance.{i}.ServiceType";
+    }
+    leaf scpdurl {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.ServiceInstance.{i}.SCPDURL";
+      reference
+        "Device.UPnP.Description.ServiceInstance.{i}.SCPDURL";
+    }
+    leaf control-url {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.ServiceInstance.{i}.ControlURL";
+      reference
+        "Device.UPnP.Description.ServiceInstance.{i}.ControlURL";
+    }
+    leaf event-sub-url {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Description.ServiceInstance.{i}.EventSubURL";
+      reference
+        "Device.UPnP.Description.ServiceInstance.{i}.EventSubURL";
+    }
+  }
+
+  grouping u-pn-p-device-g {
+    description
+      "Grouping object for Device.UPnP.Device.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.UPnP.Device.Enable";
+      reference
+        "Device.UPnP.Device.Enable";
+    }
+    leaf u-pn-p-media-server {
+      type boolean;
+      description
+        "Device.UPnP.Device.UPnPMediaServer";
+      reference
+        "Device.UPnP.Device.UPnPMediaServer";
+    }
+    leaf u-pn-p-media-renderer {
+      type boolean;
+      description
+        "Device.UPnP.Device.UPnPMediaRenderer";
+      reference
+        "Device.UPnP.Device.UPnPMediaRenderer";
+    }
+    leaf u-pn-pwlan-access-point {
+      type boolean;
+      description
+        "Device.UPnP.Device.UPnPWLANAccessPoint";
+      reference
+        "Device.UPnP.Device.UPnPWLANAccessPoint";
+    }
+    leaf u-pn-p-qo-s-device {
+      type boolean;
+      description
+        "Device.UPnP.Device.UPnPQoSDevice";
+      reference
+        "Device.UPnP.Device.UPnPQoSDevice";
+    }
+    leaf u-pn-p-qo-s-policy-holder {
+      type boolean;
+      description
+        "Device.UPnP.Device.UPnPQoSPolicyHolder";
+      reference
+        "Device.UPnP.Device.UPnPQoSPolicyHolder";
+    }
+    leaf u-pn-pigd {
+      type boolean;
+      description
+        "Device.UPnP.Device.UPnPIGD";
+      reference
+        "Device.UPnP.Device.UPnPIGD";
+    }
+    leaf u-pn-pdm-basic-mgmt {
+      type boolean;
+      description
+        "Device.UPnP.Device.UPnPDMBasicMgmt";
+      reference
+        "Device.UPnP.Device.UPnPDMBasicMgmt";
+    }
+    leaf u-pn-pdm-configuration-mgmt {
+      type boolean;
+      description
+        "Device.UPnP.Device.UPnPDMConfigurationMgmt";
+      reference
+        "Device.UPnP.Device.UPnPDMConfigurationMgmt";
+    }
+    leaf u-pn-pdm-software-mgmt {
+      type boolean;
+      description
+        "Device.UPnP.Device.UPnPDMSoftwareMgmt";
+      reference
+        "Device.UPnP.Device.UPnPDMSoftwareMgmt";
+    }
+  }
+
+  grouping device-capabilities-g {
+    description
+      "Grouping object for Device.UPnP.Device.Capabilities.";
+    leaf u-pn-p-architecture {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPArchitecture";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPArchitecture";
+    }
+    leaf u-pn-p-architecture-minor-ver {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPArchitectureMinorVer";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPArchitectureMinorVer";
+    }
+    leaf u-pn-p-media-server {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPMediaServer";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPMediaServer";
+    }
+    leaf u-pn-p-media-renderer {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPMediaRenderer";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPMediaRenderer";
+    }
+    leaf u-pn-pwlan-access-point {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPWLANAccessPoint";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPWLANAccessPoint";
+    }
+    leaf u-pn-p-basic-device {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPBasicDevice";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPBasicDevice";
+    }
+    leaf u-pn-p-qo-s-device {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPQoSDevice";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPQoSDevice";
+    }
+    leaf u-pn-p-qo-s-policy-holder {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPQoSPolicyHolder";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPQoSPolicyHolder";
+    }
+    leaf u-pn-pigd {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPIGD";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPIGD";
+    }
+    leaf u-pn-pdm-basic-mgmt {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPDMBasicMgmt";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPDMBasicMgmt";
+    }
+    leaf u-pn-pdm-configuration-mgmt {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPDMConfigurationMgmt";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPDMConfigurationMgmt";
+    }
+    leaf u-pn-pdm-software-mgmt {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Device.Capabilities.UPnPDMSoftwareMgmt";
+      reference
+        "Device.UPnP.Device.Capabilities.UPnPDMSoftwareMgmt";
+    }
+  }
+
+  grouping u-pn-p-discovery-g {
+    description
+      "Grouping object for Device.UPnP.Discovery.";
+    leaf root-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Discovery.RootDeviceNumberOfEntries";
+      reference
+        "Device.UPnP.Discovery.RootDeviceNumberOfEntries";
+    }
+    leaf device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Discovery.DeviceNumberOfEntries";
+      reference
+        "Device.UPnP.Discovery.DeviceNumberOfEntries";
+    }
+    leaf service-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Discovery.ServiceNumberOfEntries";
+      reference
+        "Device.UPnP.Discovery.ServiceNumberOfEntries";
+    }
+  }
+
+  grouping u-pn-p-discovery-device-g {
+    description
+      "Grouping object for Device.UPnP.Discovery.Device.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Device.{i}.Status";
+      reference
+        "Device.UPnP.Discovery.Device.{i}.Status";
+    }
+    leaf uuid {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Device.{i}.UUID";
+      reference
+        "Device.UPnP.Discovery.Device.{i}.UUID";
+    }
+    leaf usn {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Device.{i}.USN";
+      reference
+        "Device.UPnP.Discovery.Device.{i}.USN";
+    }
+    leaf lease-time {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Discovery.Device.{i}.LeaseTime";
+      reference
+        "Device.UPnP.Discovery.Device.{i}.LeaseTime";
+    }
+    leaf location {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Device.{i}.Location";
+      reference
+        "Device.UPnP.Discovery.Device.{i}.Location";
+    }
+    leaf server {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Device.{i}.Server";
+      reference
+        "Device.UPnP.Discovery.Device.{i}.Server";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Device.{i}.Host";
+      reference
+        "Device.UPnP.Discovery.Device.{i}.Host";
+    }
+    leaf last-update {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Device.{i}.LastUpdate";
+      reference
+        "Device.UPnP.Discovery.Device.{i}.LastUpdate";
+    }
+  }
+
+  grouping discovery-root-device-g {
+    description
+      "Grouping object for Device.UPnP.Discovery.RootDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.RootDevice.{i}.Status";
+      reference
+        "Device.UPnP.Discovery.RootDevice.{i}.Status";
+    }
+    leaf uuid {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.RootDevice.{i}.UUID";
+      reference
+        "Device.UPnP.Discovery.RootDevice.{i}.UUID";
+    }
+    leaf usn {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.RootDevice.{i}.USN";
+      reference
+        "Device.UPnP.Discovery.RootDevice.{i}.USN";
+    }
+    leaf lease-time {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Discovery.RootDevice.{i}.LeaseTime";
+      reference
+        "Device.UPnP.Discovery.RootDevice.{i}.LeaseTime";
+    }
+    leaf location {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.RootDevice.{i}.Location";
+      reference
+        "Device.UPnP.Discovery.RootDevice.{i}.Location";
+    }
+    leaf server {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.RootDevice.{i}.Server";
+      reference
+        "Device.UPnP.Discovery.RootDevice.{i}.Server";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.RootDevice.{i}.Host";
+      reference
+        "Device.UPnP.Discovery.RootDevice.{i}.Host";
+    }
+    leaf last-update {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.RootDevice.{i}.LastUpdate";
+      reference
+        "Device.UPnP.Discovery.RootDevice.{i}.LastUpdate";
+    }
+  }
+
+  grouping discovery-service-g {
+    description
+      "Grouping object for Device.UPnP.Discovery.Service.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Service.{i}.Status";
+      reference
+        "Device.UPnP.Discovery.Service.{i}.Status";
+    }
+    leaf usn {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Service.{i}.USN";
+      reference
+        "Device.UPnP.Discovery.Service.{i}.USN";
+    }
+    leaf lease-time {
+      type uint32;
+      config false;
+      description
+        "Device.UPnP.Discovery.Service.{i}.LeaseTime";
+      reference
+        "Device.UPnP.Discovery.Service.{i}.LeaseTime";
+    }
+    leaf location {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Service.{i}.Location";
+      reference
+        "Device.UPnP.Discovery.Service.{i}.Location";
+    }
+    leaf server {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Service.{i}.Server";
+      reference
+        "Device.UPnP.Discovery.Service.{i}.Server";
+    }
+    leaf host {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Service.{i}.Host";
+      reference
+        "Device.UPnP.Discovery.Service.{i}.Host";
+    }
+    leaf last-update {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Service.{i}.LastUpdate";
+      reference
+        "Device.UPnP.Discovery.Service.{i}.LastUpdate";
+    }
+    leaf parent-device {
+      type string;
+      config false;
+      description
+        "Device.UPnP.Discovery.Service.{i}.ParentDevice";
+      reference
+        "Device.UPnP.Discovery.Service.{i}.ParentDevice";
+    }
+  }
+
+  grouping device-usb-g {
+    description
+      "Grouping object for Device.USB.";
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.USB.InterfaceNumberOfEntries";
+      reference
+        "Device.USB.InterfaceNumberOfEntries";
+    }
+    leaf port-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.USB.PortNumberOfEntries";
+      reference
+        "Device.USB.PortNumberOfEntries";
+    }
+  }
+
+  grouping usb-interface-g {
+    description
+      "Grouping object for Device.USB.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.USB.Interface.{i}.Enable";
+      reference
+        "Device.USB.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Status";
+      reference
+        "Device.USB.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.USB.Interface.{i}.Alias";
+      reference
+        "Device.USB.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Name";
+      reference
+        "Device.USB.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.USB.Interface.{i}.LastChange";
+      reference
+        "Device.USB.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.USB.Interface.{i}.LowerLayers";
+      reference
+        "Device.USB.Interface.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Upstream";
+      reference
+        "Device.USB.Interface.{i}.Upstream";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.USB.Interface.{i}.MACAddress";
+      reference
+        "Device.USB.Interface.{i}.MACAddress";
+    }
+    leaf max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.USB.Interface.{i}.MaxBitRate";
+      reference
+        "Device.USB.Interface.{i}.MaxBitRate";
+    }
+    leaf port {
+      type string;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Port";
+      reference
+        "Device.USB.Interface.{i}.Port";
+    }
+  }
+
+  grouping usb-interface-stats-g {
+    description
+      "Grouping object for Device.USB.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.USB.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.USB.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.USB.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.USB.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.USB.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.USB.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.USB.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.USB.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.USB.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.USB.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.USB.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.USB.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.USB.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.USB.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.USB.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.USB.Interface.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping usb-port-g {
+    description
+      "Grouping object for Device.USB.Port.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.USB.Port.{i}.Alias";
+      reference
+        "Device.USB.Port.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.USB.Port.{i}.Name";
+      reference
+        "Device.USB.Port.{i}.Name";
+    }
+    leaf standard {
+      type string;
+      config false;
+      description
+        "Device.USB.Port.{i}.Standard";
+      reference
+        "Device.USB.Port.{i}.Standard";
+    }
+    leaf type {
+      type string;
+      config false;
+      description
+        "Device.USB.Port.{i}.Type";
+      reference
+        "Device.USB.Port.{i}.Type";
+    }
+    leaf receptacle {
+      type string;
+      config false;
+      description
+        "Device.USB.Port.{i}.Receptacle";
+      reference
+        "Device.USB.Port.{i}.Receptacle";
+    }
+    leaf rate {
+      type string;
+      config false;
+      description
+        "Device.USB.Port.{i}.Rate";
+      reference
+        "Device.USB.Port.{i}.Rate";
+    }
+    leaf power {
+      type string;
+      config false;
+      description
+        "Device.USB.Port.{i}.Power";
+      reference
+        "Device.USB.Port.{i}.Power";
+    }
+  }
+
+  grouping usb-usb-hosts-g {
+    description
+      "Grouping object for Device.USB.USBHosts.";
+    leaf host-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.HostNumberOfEntries";
+      reference
+        "Device.USB.USBHosts.HostNumberOfEntries";
+    }
+  }
+
+  grouping usb-hosts-host-g {
+    description
+      "Grouping object for Device.USB.USBHosts.Host.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.USB.USBHosts.Host.{i}.Alias";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.USB.USBHosts.Host.{i}.Enable";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Enable";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Name";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Name";
+    }
+    leaf type {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Type";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Type";
+    }
+    leaf power-management-enable {
+      type boolean;
+      description
+        "Device.USB.USBHosts.Host.{i}.PowerManagementEnable";
+      reference
+        "Device.USB.USBHosts.Host.{i}.PowerManagementEnable";
+    }
+    leaf usb-version {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.USBVersion";
+      reference
+        "Device.USB.USBHosts.Host.{i}.USBVersion";
+    }
+    leaf device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.DeviceNumberOfEntries";
+      reference
+        "Device.USB.USBHosts.Host.{i}.DeviceNumberOfEntries";
+    }
+  }
+
+  grouping host-device-g {
+    description
+      "Grouping object for Device.USB.USBHosts.Host.{i}.Device.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf device-number {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.DeviceNumber";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.DeviceNumber";
+    }
+    leaf usb-version {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.USBVersion";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.USBVersion";
+    }
+    leaf device-class {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.DeviceClass";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.DeviceClass";
+    }
+    leaf device-sub-class {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.DeviceSubClass";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.DeviceSubClass";
+    }
+    leaf device-version {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.DeviceVersion";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.DeviceVersion";
+    }
+    leaf device-protocol {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.DeviceProtocol";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.DeviceProtocol";
+    }
+    leaf product-id {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.ProductID";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.ProductID";
+    }
+    leaf vendor-id {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.VendorID";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.VendorID";
+    }
+    leaf manufacturer {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Manufacturer";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Manufacturer";
+    }
+    leaf product-class {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.ProductClass";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.ProductClass";
+    }
+    leaf serial-number {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.SerialNumber";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.SerialNumber";
+    }
+    leaf port {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Port";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Port";
+    }
+    leaf usb-port {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.USBPort";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.USBPort";
+    }
+    leaf rate {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Rate";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Rate";
+    }
+    leaf parent {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Parent";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Parent";
+    }
+    leaf max-children {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.MaxChildren";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.MaxChildren";
+    }
+    leaf is-suspended {
+      type boolean;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.IsSuspended";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.IsSuspended";
+    }
+    leaf is-self-powered {
+      type boolean;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.IsSelfPowered";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.IsSelfPowered";
+    }
+    leaf configuration-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.ConfigurationNumberOfEntries";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.ConfigurationNumberOfEntries";
+    }
+  }
+
+  grouping device-configuration-g {
+    description
+      "Grouping object for Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf configuration-number {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.ConfigurationNumber";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.ConfigurationNumber";
+    }
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.InterfaceNumberOfEntries";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.InterfaceNumberOfEntries";
+    }
+  }
+
+  grouping configuration-interface-g {
+    description
+      "Grouping object for Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf interface-number {
+      type uint32;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.InterfaceNumber";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.InterfaceNumber";
+    }
+    leaf interface-class {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.InterfaceClass";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.InterfaceClass";
+    }
+    leaf interface-sub-class {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.InterfaceSubClass";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.InterfaceSubClass";
+    }
+    leaf interface-protocol {
+      type string;
+      config false;
+      description
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.InterfaceProtocol";
+      reference
+        "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.InterfaceProtocol";
+    }
+  }
+
+  grouping device-user-interface-g {
+    description
+      "Grouping object for Device.UserInterface.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.UserInterface.Enable";
+      reference
+        "Device.UserInterface.Enable";
+    }
+    leaf password-required {
+      type boolean;
+      description
+        "Device.UserInterface.PasswordRequired";
+      reference
+        "Device.UserInterface.PasswordRequired";
+    }
+    leaf password-user-selectable {
+      type boolean;
+      description
+        "Device.UserInterface.PasswordUserSelectable";
+      reference
+        "Device.UserInterface.PasswordUserSelectable";
+    }
+    leaf upgrade-available {
+      type boolean;
+      description
+        "Device.UserInterface.UpgradeAvailable";
+      reference
+        "Device.UserInterface.UpgradeAvailable";
+    }
+    leaf warranty-date {
+      type string;
+      description
+        "Device.UserInterface.WarrantyDate";
+      reference
+        "Device.UserInterface.WarrantyDate";
+    }
+    leaf isp-name {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.UserInterface.ISPName";
+      reference
+        "Device.UserInterface.ISPName";
+    }
+    leaf isp-help-desk {
+      type string {
+        length "min..32";
+      }
+      description
+        "Device.UserInterface.ISPHelpDesk";
+      reference
+        "Device.UserInterface.ISPHelpDesk";
+    }
+    leaf isp-home-page {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.UserInterface.ISPHomePage";
+      reference
+        "Device.UserInterface.ISPHomePage";
+    }
+    leaf isp-help-page {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.UserInterface.ISPHelpPage";
+      reference
+        "Device.UserInterface.ISPHelpPage";
+    }
+    leaf isp-logo {
+      type string {
+        length "0..4095";
+      }
+      description
+        "Device.UserInterface.ISPLogo";
+      reference
+        "Device.UserInterface.ISPLogo";
+    }
+    leaf isp-logo-size {
+      type uint32 {
+        range "0..4095";
+      }
+      description
+        "Device.UserInterface.ISPLogoSize";
+      reference
+        "Device.UserInterface.ISPLogoSize";
+    }
+    leaf isp-mail-server {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.UserInterface.ISPMailServer";
+      reference
+        "Device.UserInterface.ISPMailServer";
+    }
+    leaf isp-news-server {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.UserInterface.ISPNewsServer";
+      reference
+        "Device.UserInterface.ISPNewsServer";
+    }
+    leaf text-color {
+      type string {
+        length "3";
+      }
+      description
+        "Device.UserInterface.TextColor";
+      reference
+        "Device.UserInterface.TextColor";
+    }
+    leaf background-color {
+      type string {
+        length "3";
+      }
+      description
+        "Device.UserInterface.BackgroundColor";
+      reference
+        "Device.UserInterface.BackgroundColor";
+    }
+    leaf button-color {
+      type string {
+        length "3";
+      }
+      description
+        "Device.UserInterface.ButtonColor";
+      reference
+        "Device.UserInterface.ButtonColor";
+    }
+    leaf button-text-color {
+      type string {
+        length "3";
+      }
+      description
+        "Device.UserInterface.ButtonTextColor";
+      reference
+        "Device.UserInterface.ButtonTextColor";
+    }
+    leaf auto-update-server {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.UserInterface.AutoUpdateServer";
+      reference
+        "Device.UserInterface.AutoUpdateServer";
+    }
+    leaf user-update-server {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.UserInterface.UserUpdateServer";
+      reference
+        "Device.UserInterface.UserUpdateServer";
+    }
+    leaf available-languages {
+      type string;
+      config false;
+      description
+        "Device.UserInterface.AvailableLanguages";
+      reference
+        "Device.UserInterface.AvailableLanguages";
+    }
+    leaf current-language {
+      type string {
+        length "min..16";
+      }
+      description
+        "Device.UserInterface.CurrentLanguage";
+      reference
+        "Device.UserInterface.CurrentLanguage";
+    }
+  }
+
+  grouping user-interface-local-display-g {
+    description
+      "Grouping object for Device.UserInterface.LocalDisplay.";
+    leaf movable {
+      type boolean;
+      description
+        "Device.UserInterface.LocalDisplay.Movable";
+      reference
+        "Device.UserInterface.LocalDisplay.Movable";
+    }
+    leaf resizable {
+      type boolean;
+      description
+        "Device.UserInterface.LocalDisplay.Resizable";
+      reference
+        "Device.UserInterface.LocalDisplay.Resizable";
+    }
+    leaf pos-x {
+      type int32;
+      description
+        "Device.UserInterface.LocalDisplay.PosX";
+      reference
+        "Device.UserInterface.LocalDisplay.PosX";
+    }
+    leaf pos-y {
+      type int32;
+      description
+        "Device.UserInterface.LocalDisplay.PosY";
+      reference
+        "Device.UserInterface.LocalDisplay.PosY";
+    }
+    leaf width {
+      type uint32;
+      description
+        "Device.UserInterface.LocalDisplay.Width";
+      reference
+        "Device.UserInterface.LocalDisplay.Width";
+    }
+    leaf height {
+      type uint32;
+      description
+        "Device.UserInterface.LocalDisplay.Height";
+      reference
+        "Device.UserInterface.LocalDisplay.Height";
+    }
+    leaf display-width {
+      type uint32;
+      config false;
+      description
+        "Device.UserInterface.LocalDisplay.DisplayWidth";
+      reference
+        "Device.UserInterface.LocalDisplay.DisplayWidth";
+    }
+    leaf display-height {
+      type uint32;
+      config false;
+      description
+        "Device.UserInterface.LocalDisplay.DisplayHeight";
+      reference
+        "Device.UserInterface.LocalDisplay.DisplayHeight";
+    }
+  }
+
+  grouping user-interface-messages-g {
+    description
+      "Grouping object for Device.UserInterface.Messages.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.UserInterface.Messages.Enable";
+      reference
+        "Device.UserInterface.Messages.Enable";
+    }
+    leaf title {
+      type string {
+        length "min..128";
+      }
+      description
+        "Device.UserInterface.Messages.Title";
+      reference
+        "Device.UserInterface.Messages.Title";
+    }
+    leaf sub-title {
+      type string {
+        length "min..128";
+      }
+      description
+        "Device.UserInterface.Messages.SubTitle";
+      reference
+        "Device.UserInterface.Messages.SubTitle";
+    }
+    leaf text {
+      type string;
+      description
+        "Device.UserInterface.Messages.Text";
+      reference
+        "Device.UserInterface.Messages.Text";
+    }
+    leaf icon-type {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Greeting {
+          description
+            "Enum Value - Greeting";
+        }
+        enum Information {
+          description
+            "Enum Value - Information";
+        }
+        enum Warning {
+          description
+            "Enum Value - Warning";
+        }
+        enum Important {
+          description
+            "Enum Value - Important";
+        }
+        enum Urgent {
+          description
+            "Enum Value - Urgent";
+        }
+        enum Advertisement {
+          description
+            "Enum Value - Advertisement";
+        }
+      }
+      description
+        "Device.UserInterface.Messages.IconType";
+      reference
+        "Device.UserInterface.Messages.IconType";
+    }
+    leaf message-color {
+      type string {
+        length "3";
+      }
+      description
+        "Device.UserInterface.Messages.MessageColor";
+      reference
+        "Device.UserInterface.Messages.MessageColor";
+    }
+    leaf background-color {
+      type string {
+        length "3";
+      }
+      description
+        "Device.UserInterface.Messages.BackgroundColor";
+      reference
+        "Device.UserInterface.Messages.BackgroundColor";
+    }
+    leaf title-color {
+      type string {
+        length "3";
+      }
+      description
+        "Device.UserInterface.Messages.TitleColor";
+      reference
+        "Device.UserInterface.Messages.TitleColor";
+    }
+    leaf sub-title-color {
+      type string {
+        length "3";
+      }
+      description
+        "Device.UserInterface.Messages.SubTitleColor";
+      reference
+        "Device.UserInterface.Messages.SubTitleColor";
+    }
+    leaf requested-number-of-repetitions {
+      type uint32;
+      description
+        "Device.UserInterface.Messages.RequestedNumberOfRepetitions";
+      reference
+        "Device.UserInterface.Messages.RequestedNumberOfRepetitions";
+    }
+    leaf executed-number-of-repetitions {
+      type uint32;
+      config false;
+      description
+        "Device.UserInterface.Messages.ExecutedNumberOfRepetitions";
+      reference
+        "Device.UserInterface.Messages.ExecutedNumberOfRepetitions";
+    }
+  }
+
+  grouping user-interface-remote-access-g {
+    description
+      "Grouping object for Device.UserInterface.RemoteAccess.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.UserInterface.RemoteAccess.Enable";
+      reference
+        "Device.UserInterface.RemoteAccess.Enable";
+    }
+    leaf port {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.UserInterface.RemoteAccess.Port";
+      reference
+        "Device.UserInterface.RemoteAccess.Port";
+    }
+    leaf supported-protocols {
+      type string;
+      config false;
+      description
+        "Device.UserInterface.RemoteAccess.SupportedProtocols";
+      reference
+        "Device.UserInterface.RemoteAccess.SupportedProtocols";
+    }
+    leaf protocol {
+      type string;
+      description
+        "Device.UserInterface.RemoteAccess.Protocol";
+      reference
+        "Device.UserInterface.RemoteAccess.Protocol";
+    }
+  }
+
+  grouping device-users-g {
+    description
+      "Grouping object for Device.Users.";
+    leaf user-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.Users.UserNumberOfEntries";
+      reference
+        "Device.Users.UserNumberOfEntries";
+    }
+  }
+
+  grouping users-user-g {
+    description
+      "Grouping object for Device.Users.User.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Users.User.{i}.Alias";
+      reference
+        "Device.Users.User.{i}.Alias";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.Users.User.{i}.Enable";
+      reference
+        "Device.Users.User.{i}.Enable";
+    }
+    leaf remote-access-capable {
+      type boolean;
+      description
+        "Device.Users.User.{i}.RemoteAccessCapable";
+      reference
+        "Device.Users.User.{i}.RemoteAccessCapable";
+    }
+    leaf username {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.Users.User.{i}.Username";
+      reference
+        "Device.Users.User.{i}.Username";
+    }
+    leaf language {
+      type string {
+        length "min..16";
+      }
+      description
+        "Device.Users.User.{i}.Language";
+      reference
+        "Device.Users.User.{i}.Language";
+    }
+  }
+
+  grouping device-vxlan-g {
+    description
+      "Grouping object for Device.VXLAN.";
+    leaf tunnel-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.TunnelNumberOfEntries";
+      reference
+        "Device.VXLAN.TunnelNumberOfEntries";
+    }
+    leaf filter-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.FilterNumberOfEntries";
+      reference
+        "Device.VXLAN.FilterNumberOfEntries";
+    }
+  }
+
+  grouping vxlan-filter-g {
+    description
+      "Grouping object for Device.VXLAN.Filter.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.VXLAN.Filter.{i}.Enable";
+      reference
+        "Device.VXLAN.Filter.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.VXLAN.Filter.{i}.Status";
+      reference
+        "Device.VXLAN.Filter.{i}.Status";
+    }
+    leaf order {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.VXLAN.Filter.{i}.Order";
+      reference
+        "Device.VXLAN.Filter.{i}.Order";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.VXLAN.Filter.{i}.Alias";
+      reference
+        "Device.VXLAN.Filter.{i}.Alias";
+    }
+    leaf interface {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.VXLAN.Filter.{i}.Interface";
+      reference
+        "Device.VXLAN.Filter.{i}.Interface";
+    }
+    leaf all-interfaces {
+      type boolean;
+      description
+        "Device.VXLAN.Filter.{i}.AllInterfaces";
+      reference
+        "Device.VXLAN.Filter.{i}.AllInterfaces";
+    }
+    leaf vlanid-check {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.VXLAN.Filter.{i}.VLANIDCheck";
+      reference
+        "Device.VXLAN.Filter.{i}.VLANIDCheck";
+    }
+    leaf vlanid-exclude {
+      type boolean;
+      description
+        "Device.VXLAN.Filter.{i}.VLANIDExclude";
+      reference
+        "Device.VXLAN.Filter.{i}.VLANIDExclude";
+    }
+    leaf dscp-mark-policy {
+      type int32 {
+        range "-2..63";
+      }
+      description
+        "Device.VXLAN.Filter.{i}.DSCPMarkPolicy";
+      reference
+        "Device.VXLAN.Filter.{i}.DSCPMarkPolicy";
+    }
+  }
+
+  grouping vxlan-tunnel-g {
+    description
+      "Grouping object for Device.VXLAN.Tunnel.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.VXLAN.Tunnel.{i}.Enable";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Status";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.VXLAN.Tunnel.{i}.Alias";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Alias";
+    }
+    leaf remote-endpoints {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.VXLAN.Tunnel.{i}.RemoteEndpoints";
+      reference
+        "Device.VXLAN.Tunnel.{i}.RemoteEndpoints";
+    }
+    leaf keep-alive-policy {
+      type enumeration {
+        enum ICMP {
+          description
+            "Enum Value - ICMP";
+        }
+        enum None {
+          description
+            "Enum Value - None";
+        }
+      }
+      description
+        "Device.VXLAN.Tunnel.{i}.KeepAlivePolicy";
+      reference
+        "Device.VXLAN.Tunnel.{i}.KeepAlivePolicy";
+    }
+    leaf keep-alive-timeout {
+      type uint32;
+      description
+        "Device.VXLAN.Tunnel.{i}.KeepAliveTimeout";
+      reference
+        "Device.VXLAN.Tunnel.{i}.KeepAliveTimeout";
+    }
+    leaf keep-alive-threshold {
+      type uint32;
+      description
+        "Device.VXLAN.Tunnel.{i}.KeepAliveThreshold";
+      reference
+        "Device.VXLAN.Tunnel.{i}.KeepAliveThreshold";
+    }
+    leaf delivery-header-protocol {
+      type enumeration {
+        enum IPv4 {
+          description
+            "Enum Value - IPv4";
+        }
+        enum IPv6 {
+          description
+            "Enum Value - IPv6";
+        }
+      }
+      description
+        "Device.VXLAN.Tunnel.{i}.DeliveryHeaderProtocol";
+      reference
+        "Device.VXLAN.Tunnel.{i}.DeliveryHeaderProtocol";
+    }
+    leaf default-dscp-mark {
+      type uint32;
+      description
+        "Device.VXLAN.Tunnel.{i}.DefaultDSCPMark";
+      reference
+        "Device.VXLAN.Tunnel.{i}.DefaultDSCPMark";
+    }
+    leaf connected-remote-endpoint {
+      type string;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.ConnectedRemoteEndpoint";
+      reference
+        "Device.VXLAN.Tunnel.{i}.ConnectedRemoteEndpoint";
+    }
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.InterfaceNumberOfEntries";
+      reference
+        "Device.VXLAN.Tunnel.{i}.InterfaceNumberOfEntries";
+    }
+    leaf source-port {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.VXLAN.Tunnel.{i}.SourcePort";
+      reference
+        "Device.VXLAN.Tunnel.{i}.SourcePort";
+    }
+    leaf remote-port {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.VXLAN.Tunnel.{i}.RemotePort";
+      reference
+        "Device.VXLAN.Tunnel.{i}.RemotePort";
+    }
+  }
+
+  grouping vxlan-tunnel-interface-g {
+    description
+      "Grouping object for Device.VXLAN.Tunnel.{i}.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Enable";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Status";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Alias";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Name";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.LastChange";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.LowerLayers";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.LowerLayers";
+    }
+    leaf vni {
+      type int32 {
+        range "-1 | 0..16777215";
+      }
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.VNI";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.VNI";
+    }
+  }
+
+  grouping vxlan-tunnel-interface-stats-g {
+    description
+      "Grouping object for Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf discard-checksum-received {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.DiscardChecksumReceived";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.DiscardChecksumReceived";
+    }
+    leaf discard-sequence-number-received {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.DiscardSequenceNumberReceived";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.DiscardSequenceNumberReceived";
+    }
+  }
+
+  grouping vxlan-tunnel-stats-g {
+    description
+      "Grouping object for Device.VXLAN.Tunnel.{i}.Stats.";
+    leaf keep-alive-sent {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Stats.KeepAliveSent";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Stats.KeepAliveSent";
+    }
+    leaf keep-alive-received {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Stats.KeepAliveReceived";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Stats.KeepAliveReceived";
+    }
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Stats.BytesSent";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Stats.BytesReceived";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Stats.PacketsSent";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Stats.PacketsReceived";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Stats.ErrorsSent";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.VXLAN.Tunnel.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.VXLAN.Tunnel.{i}.Stats.ErrorsReceived";
+    }
+  }
+
+  grouping device-wi-fi-g {
+    description
+      "Grouping object for Device.WiFi.";
+    leaf radio-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.RadioNumberOfEntries";
+      reference
+        "Device.WiFi.RadioNumberOfEntries";
+    }
+    leaf ssid-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSIDNumberOfEntries";
+      reference
+        "Device.WiFi.SSIDNumberOfEntries";
+    }
+    leaf access-point-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPointNumberOfEntries";
+      reference
+        "Device.WiFi.AccessPointNumberOfEntries";
+    }
+    leaf end-point-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.EndPointNumberOfEntries";
+      reference
+        "Device.WiFi.EndPointNumberOfEntries";
+    }
+    leaf reset-counter {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.ResetCounter";
+      reference
+        "Device.WiFi.ResetCounter";
+    }
+  }
+
+  grouping wi-fi-access-point-g {
+    description
+      "Grouping object for Device.WiFi.AccessPoint.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.WiFi.AccessPoint.{i}.Enable";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.Status";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.Alias";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Alias";
+    }
+    leaf ssid-reference {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.SSIDReference";
+      reference
+        "Device.WiFi.AccessPoint.{i}.SSIDReference";
+    }
+    leaf ssid-advertisement-enabled {
+      type boolean;
+      description
+        "Device.WiFi.AccessPoint.{i}.SSIDAdvertisementEnabled";
+      reference
+        "Device.WiFi.AccessPoint.{i}.SSIDAdvertisementEnabled";
+    }
+    leaf retry-limit {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.RetryLimit";
+      reference
+        "Device.WiFi.AccessPoint.{i}.RetryLimit";
+    }
+    leaf wmm-capability {
+      type boolean;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.WMMCapability";
+      reference
+        "Device.WiFi.AccessPoint.{i}.WMMCapability";
+    }
+    leaf uapsd-capability {
+      type boolean;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.UAPSDCapability";
+      reference
+        "Device.WiFi.AccessPoint.{i}.UAPSDCapability";
+    }
+    leaf wmm-enable {
+      type boolean;
+      description
+        "Device.WiFi.AccessPoint.{i}.WMMEnable";
+      reference
+        "Device.WiFi.AccessPoint.{i}.WMMEnable";
+    }
+    leaf uapsd-enable {
+      type boolean;
+      description
+        "Device.WiFi.AccessPoint.{i}.UAPSDEnable";
+      reference
+        "Device.WiFi.AccessPoint.{i}.UAPSDEnable";
+    }
+    leaf associated-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDeviceNumberOfEntries";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDeviceNumberOfEntries";
+    }
+    leaf max-associated-devices {
+      type uint32;
+      description
+        "Device.WiFi.AccessPoint.{i}.MaxAssociatedDevices";
+      reference
+        "Device.WiFi.AccessPoint.{i}.MaxAssociatedDevices";
+    }
+    leaf isolation-enable {
+      type boolean;
+      description
+        "Device.WiFi.AccessPoint.{i}.IsolationEnable";
+      reference
+        "Device.WiFi.AccessPoint.{i}.IsolationEnable";
+    }
+    leaf mac-address-control-enabled {
+      type boolean;
+      description
+        "Device.WiFi.AccessPoint.{i}.MACAddressControlEnabled";
+      reference
+        "Device.WiFi.AccessPoint.{i}.MACAddressControlEnabled";
+    }
+    leaf allowed-mac-address {
+      type string {
+        length "min..17";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.AllowedMACAddress";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AllowedMACAddress";
+    }
+    leaf max-allowed-associations {
+      type uint32;
+      description
+        "Device.WiFi.AccessPoint.{i}.MaxAllowedAssociations";
+      reference
+        "Device.WiFi.AccessPoint.{i}.MaxAllowedAssociations";
+    }
+  }
+
+  grouping access-point-ac-g {
+    description
+      "Grouping object for Device.WiFi.AccessPoint.{i}.AC.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf access-category {
+      type string;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.AccessCategory";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.AccessCategory";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Alias";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Alias";
+    }
+    leaf aifsn {
+      type uint32 {
+        range "2..15";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.AIFSN";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.AIFSN";
+    }
+    leaf ecw-min {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.ECWMin";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.ECWMin";
+    }
+    leaf ecw-max {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.ECWMax";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.ECWMax";
+    }
+    leaf tx-op-max {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.TxOpMax";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.TxOpMax";
+    }
+    leaf ack-policy {
+      type boolean;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.AckPolicy";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.AckPolicy";
+    }
+    leaf out-q-len-histogram-intervals {
+      type string;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.OutQLenHistogramIntervals";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.OutQLenHistogramIntervals";
+    }
+    leaf out-q-len-histogram-sample-interval {
+      type uint32;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.OutQLenHistogramSampleInterval";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.OutQLenHistogramSampleInterval";
+    }
+  }
+
+  grouping ac-stats-g {
+    description
+      "Grouping object for Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.BytesSent";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.BytesReceived";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.PacketsSent";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.PacketsReceived";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.ErrorsSent";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.ErrorsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf retrans-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.RetransCount";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.RetransCount";
+    }
+    leaf out-q-len-histogram {
+      type string;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.OutQLenHistogram";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.OutQLenHistogram";
+    }
+  }
+
+  grouping access-point-accounting-g {
+    description
+      "Grouping object for Device.WiFi.AccessPoint.{i}.Accounting.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.WiFi.AccessPoint.{i}.Accounting.Enable";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Accounting.Enable";
+    }
+    leaf server-ip-addr {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.Accounting.ServerIPAddr";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Accounting.ServerIPAddr";
+    }
+    leaf secondary-server-ip-addr {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.Accounting.SecondaryServerIPAddr";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Accounting.SecondaryServerIPAddr";
+    }
+    leaf server-port {
+      type uint32;
+      description
+        "Device.WiFi.AccessPoint.{i}.Accounting.ServerPort";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Accounting.ServerPort";
+    }
+    leaf secondary-server-port {
+      type uint32;
+      description
+        "Device.WiFi.AccessPoint.{i}.Accounting.SecondaryServerPort";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Accounting.SecondaryServerPort";
+    }
+    leaf interim-interval {
+      type uint32 {
+        range "0..60";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.Accounting.InterimInterval";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Accounting.InterimInterval";
+    }
+  }
+
+  grouping access-point-associated-device-g {
+    description
+      "Grouping object for Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.MACAddress";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.MACAddress";
+    }
+    leaf operating-standard {
+      type string;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.OperatingStandard";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.OperatingStandard";
+    }
+    leaf authentication-state {
+      type boolean;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.AuthenticationState";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.AuthenticationState";
+    }
+    leaf last-data-downlink-rate {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.LastDataDownlinkRate";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.LastDataDownlinkRate";
+    }
+    leaf last-data-uplink-rate {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.LastDataUplinkRate";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.LastDataUplinkRate";
+    }
+    leaf association-time {
+      type string;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.AssociationTime";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.AssociationTime";
+    }
+    leaf signal-strength {
+      type int32 {
+        range "-200..0";
+      }
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.SignalStrength";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.SignalStrength";
+    }
+    leaf noise {
+      type int32 {
+        range "-200..0";
+      }
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Noise";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Noise";
+    }
+    leaf retransmissions {
+      type uint32 {
+        range "0..100";
+      }
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Retransmissions";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Retransmissions";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Active";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Active";
+    }
+  }
+
+  grouping associated-device-stats-g {
+    description
+      "Grouping object for Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.BytesSent";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.BytesReceived";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.PacketsSent";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.PacketsReceived";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.ErrorsSent";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.ErrorsSent";
+    }
+    leaf retrans-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.RetransCount";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.RetransCount";
+    }
+    leaf failed-retrans-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.FailedRetransCount";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.FailedRetransCount";
+    }
+    leaf retry-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.RetryCount";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.RetryCount";
+    }
+    leaf multiple-retry-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.MultipleRetryCount";
+      reference
+        "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.MultipleRetryCount";
+    }
+  }
+
+  grouping access-point-security-g {
+    description
+      "Grouping object for Device.WiFi.AccessPoint.{i}.Security.";
+    leaf modes-supported {
+      type string;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.Security.ModesSupported";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Security.ModesSupported";
+    }
+    leaf mode-enabled {
+      type string;
+      description
+        "Device.WiFi.AccessPoint.{i}.Security.ModeEnabled";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Security.ModeEnabled";
+    }
+    leaf rekeying-interval {
+      type uint32;
+      description
+        "Device.WiFi.AccessPoint.{i}.Security.RekeyingInterval";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Security.RekeyingInterval";
+    }
+    leaf radius-server-ip-addr {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.Security.RadiusServerIPAddr";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Security.RadiusServerIPAddr";
+    }
+    leaf secondary-radius-server-ip-addr {
+      type string {
+        length "min..45";
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.Security.SecondaryRadiusServerIPAddr";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Security.SecondaryRadiusServerIPAddr";
+    }
+    leaf radius-server-port {
+      type uint32;
+      description
+        "Device.WiFi.AccessPoint.{i}.Security.RadiusServerPort";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Security.RadiusServerPort";
+    }
+    leaf secondary-radius-server-port {
+      type uint32;
+      description
+        "Device.WiFi.AccessPoint.{i}.Security.SecondaryRadiusServerPort";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Security.SecondaryRadiusServerPort";
+    }
+    leaf mfp-config {
+      type enumeration {
+        enum Disabled {
+          description
+            "Enum Value - Disabled";
+        }
+        enum Optional {
+          description
+            "Enum Value - Optional";
+        }
+        enum Required {
+          description
+            "Enum Value - Required";
+        }
+      }
+      description
+        "Device.WiFi.AccessPoint.{i}.Security.MFPConfig";
+      reference
+        "Device.WiFi.AccessPoint.{i}.Security.MFPConfig";
+    }
+  }
+
+  grouping access-point-wps-g {
+    description
+      "Grouping object for Device.WiFi.AccessPoint.{i}.WPS.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.WiFi.AccessPoint.{i}.WPS.Enable";
+      reference
+        "Device.WiFi.AccessPoint.{i}.WPS.Enable";
+    }
+    leaf config-methods-supported {
+      type string;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.WPS.ConfigMethodsSupported";
+      reference
+        "Device.WiFi.AccessPoint.{i}.WPS.ConfigMethodsSupported";
+    }
+    leaf config-methods-enabled {
+      type string;
+      description
+        "Device.WiFi.AccessPoint.{i}.WPS.ConfigMethodsEnabled";
+      reference
+        "Device.WiFi.AccessPoint.{i}.WPS.ConfigMethodsEnabled";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.WPS.Status";
+      reference
+        "Device.WiFi.AccessPoint.{i}.WPS.Status";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.WiFi.AccessPoint.{i}.WPS.Version";
+      reference
+        "Device.WiFi.AccessPoint.{i}.WPS.Version";
+    }
+  }
+
+  grouping wi-fi-end-point-g {
+    description
+      "Grouping object for Device.WiFi.EndPoint.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.WiFi.EndPoint.{i}.Enable";
+      reference
+        "Device.WiFi.EndPoint.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.Status";
+      reference
+        "Device.WiFi.EndPoint.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.Alias";
+      reference
+        "Device.WiFi.EndPoint.{i}.Alias";
+    }
+    leaf profile-reference {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.ProfileReference";
+      reference
+        "Device.WiFi.EndPoint.{i}.ProfileReference";
+    }
+    leaf ssid-reference {
+      type string;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.SSIDReference";
+      reference
+        "Device.WiFi.EndPoint.{i}.SSIDReference";
+    }
+    leaf profile-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.ProfileNumberOfEntries";
+      reference
+        "Device.WiFi.EndPoint.{i}.ProfileNumberOfEntries";
+    }
+  }
+
+  grouping end-point-ac-g {
+    description
+      "Grouping object for Device.WiFi.EndPoint.{i}.AC.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf access-category {
+      type string;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.AccessCategory";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.AccessCategory";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Alias";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Alias";
+    }
+    leaf aifsn {
+      type uint32 {
+        range "2..15";
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.AIFSN";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.AIFSN";
+    }
+    leaf ecw-min {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.ECWMin";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.ECWMin";
+    }
+    leaf ecw-max {
+      type uint32 {
+        range "0..15";
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.ECWMax";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.ECWMax";
+    }
+    leaf tx-op-max {
+      type uint32 {
+        range "0..255";
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.TxOpMax";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.TxOpMax";
+    }
+    leaf ack-policy {
+      type boolean;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.AckPolicy";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.AckPolicy";
+    }
+    leaf out-q-len-histogram-intervals {
+      type string;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.OutQLenHistogramIntervals";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.OutQLenHistogramIntervals";
+    }
+    leaf out-q-len-histogram-sample-interval {
+      type uint32;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.OutQLenHistogramSampleInterval";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.OutQLenHistogramSampleInterval";
+    }
+  }
+
+  grouping end-point-ac-stats-g {
+    description
+      "Grouping object for Device.WiFi.EndPoint.{i}.AC.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.BytesSent";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.BytesReceived";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.PacketsSent";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.PacketsReceived";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.ErrorsSent";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.ErrorsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf retrans-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.RetransCount";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.RetransCount";
+    }
+    leaf out-q-len-histogram {
+      type string;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.OutQLenHistogram";
+      reference
+        "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.OutQLenHistogram";
+    }
+  }
+
+  grouping end-point-profile-g {
+    description
+      "Grouping object for Device.WiFi.EndPoint.{i}.Profile.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Enable";
+      reference
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Status";
+      reference
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Alias";
+      reference
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Alias";
+    }
+    leaf ssid {
+      type string {
+        length "min..32";
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.SSID";
+      reference
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.SSID";
+    }
+    leaf location {
+      type string;
+      description
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Location";
+      reference
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Location";
+    }
+    leaf priority {
+      type uint32 {
+        range "min..255";
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Priority";
+      reference
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Priority";
+    }
+  }
+
+  grouping profile-security-g {
+    description
+      "Grouping object for Device.WiFi.EndPoint.{i}.Profile.{i}.Security.";
+    leaf mode-enabled {
+      type string;
+      description
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Security.ModeEnabled";
+      reference
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Security.ModeEnabled";
+    }
+    leaf mfp-config {
+      type enumeration {
+        enum Disabled {
+          description
+            "Enum Value - Disabled";
+        }
+        enum Optional {
+          description
+            "Enum Value - Optional";
+        }
+        enum Required {
+          description
+            "Enum Value - Required";
+        }
+      }
+      description
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Security.MFPConfig";
+      reference
+        "Device.WiFi.EndPoint.{i}.Profile.{i}.Security.MFPConfig";
+    }
+  }
+
+  grouping end-point-security-g {
+    description
+      "Grouping object for Device.WiFi.EndPoint.{i}.Security.";
+    leaf modes-supported {
+      type string;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.Security.ModesSupported";
+      reference
+        "Device.WiFi.EndPoint.{i}.Security.ModesSupported";
+    }
+  }
+
+  grouping end-point-stats-g {
+    description
+      "Grouping object for Device.WiFi.EndPoint.{i}.Stats.";
+    leaf last-data-downlink-rate {
+      type uint32 {
+        range "1000..600000";
+      }
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.Stats.LastDataDownlinkRate";
+      reference
+        "Device.WiFi.EndPoint.{i}.Stats.LastDataDownlinkRate";
+    }
+    leaf last-data-uplink-rate {
+      type uint32 {
+        range "1000..600000";
+      }
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.Stats.LastDataUplinkRate";
+      reference
+        "Device.WiFi.EndPoint.{i}.Stats.LastDataUplinkRate";
+    }
+    leaf signal-strength {
+      type int32 {
+        range "-200..0";
+      }
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.Stats.SignalStrength";
+      reference
+        "Device.WiFi.EndPoint.{i}.Stats.SignalStrength";
+    }
+    leaf retransmissions {
+      type uint32 {
+        range "0..100";
+      }
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.Stats.Retransmissions";
+      reference
+        "Device.WiFi.EndPoint.{i}.Stats.Retransmissions";
+    }
+  }
+
+  grouping end-point-wps-g {
+    description
+      "Grouping object for Device.WiFi.EndPoint.{i}.WPS.";
+    leaf enable {
+      type boolean;
+      description
+        "Device.WiFi.EndPoint.{i}.WPS.Enable";
+      reference
+        "Device.WiFi.EndPoint.{i}.WPS.Enable";
+    }
+    leaf config-methods-supported {
+      type string;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.WPS.ConfigMethodsSupported";
+      reference
+        "Device.WiFi.EndPoint.{i}.WPS.ConfigMethodsSupported";
+    }
+    leaf config-methods-enabled {
+      type string;
+      description
+        "Device.WiFi.EndPoint.{i}.WPS.ConfigMethodsEnabled";
+      reference
+        "Device.WiFi.EndPoint.{i}.WPS.ConfigMethodsEnabled";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.WPS.Status";
+      reference
+        "Device.WiFi.EndPoint.{i}.WPS.Status";
+    }
+    leaf version {
+      type string;
+      config false;
+      description
+        "Device.WiFi.EndPoint.{i}.WPS.Version";
+      reference
+        "Device.WiFi.EndPoint.{i}.WPS.Version";
+    }
+  }
+
+  grouping wi-fi-neighboring-wi-fi-diagnostic-g {
+    description
+      "Grouping object for Device.WiFi.NeighboringWiFiDiagnostic.";
+    leaf diagnostics-state {
+      type enumeration {
+        enum None {
+          description
+            "Enum Value - None";
+        }
+        enum Requested {
+          description
+            "Enum Value - Requested";
+        }
+        enum Canceled {
+          description
+            "Enum Value - Canceled";
+        }
+        enum Complete {
+          description
+            "Enum Value - Complete";
+        }
+        enum Error {
+          description
+            "Enum Value - Error";
+        }
+        enum Completed {
+          description
+            "Enum Value - Completed";
+        }
+      }
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState";
+    }
+    leaf result-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.ResultNumberOfEntries";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.ResultNumberOfEntries";
+    }
+  }
+
+  grouping neighboring-wi-fi-diagnostic-result-g {
+    description
+      "Grouping object for Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf radio {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.Radio";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.Radio";
+    }
+    leaf ssid {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.SSID";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.SSID";
+    }
+    leaf bssid {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.BSSID";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.BSSID";
+    }
+    leaf mode {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.Mode";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.Mode";
+    }
+    leaf channel {
+      type uint32 {
+        range "1..255";
+      }
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.Channel";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.Channel";
+    }
+    leaf signal-strength {
+      type int32 {
+        range "-200..0";
+      }
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.SignalStrength";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.SignalStrength";
+    }
+    leaf security-mode-enabled {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.SecurityModeEnabled";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.SecurityModeEnabled";
+    }
+    leaf encryption-mode {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.EncryptionMode";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.EncryptionMode";
+    }
+    leaf operating-frequency-band {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.OperatingFrequencyBand";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.OperatingFrequencyBand";
+    }
+    leaf supported-standards {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.SupportedStandards";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.SupportedStandards";
+    }
+    leaf operating-standards {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.OperatingStandards";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.OperatingStandards";
+    }
+    leaf operating-channel-bandwidth {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.OperatingChannelBandwidth";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.OperatingChannelBandwidth";
+    }
+    leaf beacon-period {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.BeaconPeriod";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.BeaconPeriod";
+    }
+    leaf noise {
+      type int32 {
+        range "-200..0";
+      }
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.Noise";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.Noise";
+    }
+    leaf basic-data-transfer-rates {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.BasicDataTransferRates";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.BasicDataTransferRates";
+    }
+    leaf supported-data-transfer-rates {
+      type string;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.SupportedDataTransferRates";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.SupportedDataTransferRates";
+    }
+    leaf dtim-period {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.DTIMPeriod";
+      reference
+        "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.DTIMPeriod";
+    }
+  }
+
+  grouping wi-fi-radio-g {
+    description
+      "Grouping object for Device.WiFi.Radio.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.WiFi.Radio.{i}.Enable";
+      reference
+        "Device.WiFi.Radio.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Status";
+      reference
+        "Device.WiFi.Radio.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.WiFi.Radio.{i}.Alias";
+      reference
+        "Device.WiFi.Radio.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Name";
+      reference
+        "Device.WiFi.Radio.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.LastChange";
+      reference
+        "Device.WiFi.Radio.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.WiFi.Radio.{i}.LowerLayers";
+      reference
+        "Device.WiFi.Radio.{i}.LowerLayers";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Upstream";
+      reference
+        "Device.WiFi.Radio.{i}.Upstream";
+    }
+    leaf max-bit-rate {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.MaxBitRate";
+      reference
+        "Device.WiFi.Radio.{i}.MaxBitRate";
+    }
+    leaf supported-frequency-bands {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.SupportedFrequencyBands";
+      reference
+        "Device.WiFi.Radio.{i}.SupportedFrequencyBands";
+    }
+    leaf operating-frequency-band {
+      type string;
+      description
+        "Device.WiFi.Radio.{i}.OperatingFrequencyBand";
+      reference
+        "Device.WiFi.Radio.{i}.OperatingFrequencyBand";
+    }
+    leaf supported-standards {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.SupportedStandards";
+      reference
+        "Device.WiFi.Radio.{i}.SupportedStandards";
+    }
+    leaf operating-standards {
+      type string;
+      description
+        "Device.WiFi.Radio.{i}.OperatingStandards";
+      reference
+        "Device.WiFi.Radio.{i}.OperatingStandards";
+    }
+    leaf possible-channels {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.PossibleChannels";
+      reference
+        "Device.WiFi.Radio.{i}.PossibleChannels";
+    }
+    leaf channels-in-use {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.ChannelsInUse";
+      reference
+        "Device.WiFi.Radio.{i}.ChannelsInUse";
+    }
+    leaf channel {
+      type uint32 {
+        range "1..255";
+      }
+      description
+        "Device.WiFi.Radio.{i}.Channel";
+      reference
+        "Device.WiFi.Radio.{i}.Channel";
+    }
+    leaf auto-channel-supported {
+      type boolean;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.AutoChannelSupported";
+      reference
+        "Device.WiFi.Radio.{i}.AutoChannelSupported";
+    }
+    leaf auto-channel-enable {
+      type boolean;
+      description
+        "Device.WiFi.Radio.{i}.AutoChannelEnable";
+      reference
+        "Device.WiFi.Radio.{i}.AutoChannelEnable";
+    }
+    leaf auto-channel-refresh-period {
+      type uint32;
+      description
+        "Device.WiFi.Radio.{i}.AutoChannelRefreshPeriod";
+      reference
+        "Device.WiFi.Radio.{i}.AutoChannelRefreshPeriod";
+    }
+    leaf channel-last-change {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.ChannelLastChange";
+      reference
+        "Device.WiFi.Radio.{i}.ChannelLastChange";
+    }
+    leaf channel-last-selection-reason {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.ChannelLastSelectionReason";
+      reference
+        "Device.WiFi.Radio.{i}.ChannelLastSelectionReason";
+    }
+    leaf max-supported-ssi-ds {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.MaxSupportedSSIDs";
+      reference
+        "Device.WiFi.Radio.{i}.MaxSupportedSSIDs";
+    }
+    leaf max-supported-associations {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.MaxSupportedAssociations";
+      reference
+        "Device.WiFi.Radio.{i}.MaxSupportedAssociations";
+    }
+    leaf firmware-version {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.FirmwareVersion";
+      reference
+        "Device.WiFi.Radio.{i}.FirmwareVersion";
+    }
+    leaf supported-operating-channel-bandwidths {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.SupportedOperatingChannelBandwidths";
+      reference
+        "Device.WiFi.Radio.{i}.SupportedOperatingChannelBandwidths";
+    }
+    leaf operating-channel-bandwidth {
+      type string;
+      description
+        "Device.WiFi.Radio.{i}.OperatingChannelBandwidth";
+      reference
+        "Device.WiFi.Radio.{i}.OperatingChannelBandwidth";
+    }
+    leaf current-operating-channel-bandwidth {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.CurrentOperatingChannelBandwidth";
+      reference
+        "Device.WiFi.Radio.{i}.CurrentOperatingChannelBandwidth";
+    }
+    leaf extension-channel {
+      type enumeration {
+        enum AboveControlChannel {
+          description
+            "Enum Value - AboveControlChannel";
+        }
+        enum BelowControlChannel {
+          description
+            "Enum Value - BelowControlChannel";
+        }
+        enum Auto {
+          description
+            "Enum Value - Auto";
+        }
+      }
+      description
+        "Device.WiFi.Radio.{i}.ExtensionChannel";
+      reference
+        "Device.WiFi.Radio.{i}.ExtensionChannel";
+    }
+    leaf guard-interval {
+      type enumeration {
+        enum 400nsec {
+          description
+            "Enum Value - 400nsec";
+        }
+        enum 800nsec {
+          description
+            "Enum Value - 800nsec";
+        }
+        enum Auto {
+          description
+            "Enum Value - Auto";
+        }
+      }
+      description
+        "Device.WiFi.Radio.{i}.GuardInterval";
+      reference
+        "Device.WiFi.Radio.{i}.GuardInterval";
+    }
+    leaf mcs {
+      type int32 {
+        range "-1..15 | 16..31";
+      }
+      description
+        "Device.WiFi.Radio.{i}.MCS";
+      reference
+        "Device.WiFi.Radio.{i}.MCS";
+    }
+    leaf transmit-power-supported {
+      type int32 {
+        range "-1..100";
+      }
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.TransmitPowerSupported";
+      reference
+        "Device.WiFi.Radio.{i}.TransmitPowerSupported";
+    }
+    leaf transmit-power {
+      type int32 {
+        range "-1..100";
+      }
+      description
+        "Device.WiFi.Radio.{i}.TransmitPower";
+      reference
+        "Device.WiFi.Radio.{i}.TransmitPower";
+    }
+    leaf ieee80211h-supported {
+      type boolean;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.IEEE80211hSupported";
+      reference
+        "Device.WiFi.Radio.{i}.IEEE80211hSupported";
+    }
+    leaf ieee80211h-enabled {
+      type boolean;
+      description
+        "Device.WiFi.Radio.{i}.IEEE80211hEnabled";
+      reference
+        "Device.WiFi.Radio.{i}.IEEE80211hEnabled";
+    }
+    leaf regulatory-domain {
+      type string {
+        length "3";
+      }
+      description
+        "Device.WiFi.Radio.{i}.RegulatoryDomain";
+      reference
+        "Device.WiFi.Radio.{i}.RegulatoryDomain";
+    }
+    leaf retry-limit {
+      type uint32 {
+        range "0..7";
+      }
+      description
+        "Device.WiFi.Radio.{i}.RetryLimit";
+      reference
+        "Device.WiFi.Radio.{i}.RetryLimit";
+    }
+    leaf cca-request {
+      type string {
+        length "11";
+      }
+      description
+        "Device.WiFi.Radio.{i}.CCARequest";
+      reference
+        "Device.WiFi.Radio.{i}.CCARequest";
+    }
+    leaf cca-report {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.CCAReport";
+      reference
+        "Device.WiFi.Radio.{i}.CCAReport";
+    }
+    leaf rpi-histogram-request {
+      type string {
+        length "11";
+      }
+      description
+        "Device.WiFi.Radio.{i}.RPIHistogramRequest";
+      reference
+        "Device.WiFi.Radio.{i}.RPIHistogramRequest";
+    }
+    leaf rpi-histogram-report {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.RPIHistogramReport";
+      reference
+        "Device.WiFi.Radio.{i}.RPIHistogramReport";
+    }
+    leaf fragmentation-threshold {
+      type uint32;
+      description
+        "Device.WiFi.Radio.{i}.FragmentationThreshold";
+      reference
+        "Device.WiFi.Radio.{i}.FragmentationThreshold";
+    }
+    leaf rts-threshold {
+      type uint32;
+      description
+        "Device.WiFi.Radio.{i}.RTSThreshold";
+      reference
+        "Device.WiFi.Radio.{i}.RTSThreshold";
+    }
+    leaf long-retry-limit {
+      type uint32;
+      description
+        "Device.WiFi.Radio.{i}.LongRetryLimit";
+      reference
+        "Device.WiFi.Radio.{i}.LongRetryLimit";
+    }
+    leaf beacon-period {
+      type uint32;
+      description
+        "Device.WiFi.Radio.{i}.BeaconPeriod";
+      reference
+        "Device.WiFi.Radio.{i}.BeaconPeriod";
+    }
+    leaf dtim-period {
+      type uint32;
+      description
+        "Device.WiFi.Radio.{i}.DTIMPeriod";
+      reference
+        "Device.WiFi.Radio.{i}.DTIMPeriod";
+    }
+    leaf packet-aggregation-enable {
+      type boolean;
+      description
+        "Device.WiFi.Radio.{i}.PacketAggregationEnable";
+      reference
+        "Device.WiFi.Radio.{i}.PacketAggregationEnable";
+    }
+    leaf preamble-type {
+      type enumeration {
+        enum short {
+          description
+            "Enum Value - short";
+        }
+        enum auto {
+          description
+            "Enum Value - auto";
+        }
+      }
+      description
+        "Device.WiFi.Radio.{i}.PreambleType";
+      reference
+        "Device.WiFi.Radio.{i}.PreambleType";
+    }
+    leaf basic-data-transmit-rates {
+      type string;
+      description
+        "Device.WiFi.Radio.{i}.BasicDataTransmitRates";
+      reference
+        "Device.WiFi.Radio.{i}.BasicDataTransmitRates";
+    }
+    leaf operational-data-transmit-rates {
+      type string;
+      description
+        "Device.WiFi.Radio.{i}.OperationalDataTransmitRates";
+      reference
+        "Device.WiFi.Radio.{i}.OperationalDataTransmitRates";
+    }
+    leaf supported-data-transmit-rates {
+      type string;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.SupportedDataTransmitRates";
+      reference
+        "Device.WiFi.Radio.{i}.SupportedDataTransmitRates";
+    }
+  }
+
+  grouping radio-stats-g {
+    description
+      "Grouping object for Device.WiFi.Radio.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.BytesSent";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.BytesReceived";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.PacketsSent";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.PacketsReceived";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.ErrorsSent";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.ErrorsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf plcp-error-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.PLCPErrorCount";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.PLCPErrorCount";
+    }
+    leaf fcs-error-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.FCSErrorCount";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.FCSErrorCount";
+    }
+    leaf invalid-mac-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.InvalidMACCount";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.InvalidMACCount";
+    }
+    leaf packets-other-received {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.PacketsOtherReceived";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.PacketsOtherReceived";
+    }
+    leaf noise {
+      type int32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.Noise";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.Noise";
+    }
+    leaf total-channel-change-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.TotalChannelChangeCount";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.TotalChannelChangeCount";
+    }
+    leaf manual-channel-change-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.ManualChannelChangeCount";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.ManualChannelChangeCount";
+    }
+    leaf auto-startup-channel-change-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.AutoStartupChannelChangeCount";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.AutoStartupChannelChangeCount";
+    }
+    leaf auto-user-channel-change-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.AutoUserChannelChangeCount";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.AutoUserChannelChangeCount";
+    }
+    leaf auto-refresh-channel-change-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.AutoRefreshChannelChangeCount";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.AutoRefreshChannelChangeCount";
+    }
+    leaf auto-dynamic-channel-change-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.AutoDynamicChannelChangeCount";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.AutoDynamicChannelChangeCount";
+    }
+    leaf auto-dfs-channel-change-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.Radio.{i}.Stats.AutoDFSChannelChangeCount";
+      reference
+        "Device.WiFi.Radio.{i}.Stats.AutoDFSChannelChangeCount";
+    }
+  }
+
+  grouping wi-fi-ssid-g {
+    description
+      "Grouping object for Device.WiFi.SSID.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.WiFi.SSID.{i}.Enable";
+      reference
+        "Device.WiFi.SSID.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Status";
+      reference
+        "Device.WiFi.SSID.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.WiFi.SSID.{i}.Alias";
+      reference
+        "Device.WiFi.SSID.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Name";
+      reference
+        "Device.WiFi.SSID.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.LastChange";
+      reference
+        "Device.WiFi.SSID.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.WiFi.SSID.{i}.LowerLayers";
+      reference
+        "Device.WiFi.SSID.{i}.LowerLayers";
+    }
+    leaf bssid {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.BSSID";
+      reference
+        "Device.WiFi.SSID.{i}.BSSID";
+    }
+    leaf mac-address {
+      type string {
+        length "min..17";
+      }
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.MACAddress";
+      reference
+        "Device.WiFi.SSID.{i}.MACAddress";
+    }
+    leaf ssid {
+      type string {
+        length "min..32";
+      }
+      description
+        "Device.WiFi.SSID.{i}.SSID";
+      reference
+        "Device.WiFi.SSID.{i}.SSID";
+    }
+    leaf upstream {
+      type boolean;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Upstream";
+      reference
+        "Device.WiFi.SSID.{i}.Upstream";
+    }
+  }
+
+  grouping ssid-stats-g {
+    description
+      "Grouping object for Device.WiFi.SSID.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.BytesSent";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.BytesReceived";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.PacketsSent";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.PacketsReceived";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.ErrorsSent";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.ErrorsSent";
+    }
+    leaf retrans-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.RetransCount";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.RetransCount";
+    }
+    leaf failed-retrans-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.FailedRetransCount";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.FailedRetransCount";
+    }
+    leaf retry-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.RetryCount";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.RetryCount";
+    }
+    leaf multiple-retry-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.MultipleRetryCount";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.MultipleRetryCount";
+    }
+    leaf ack-failure-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.ACKFailureCount";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.ACKFailureCount";
+    }
+    leaf aggregated-packet-count {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.AggregatedPacketCount";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.AggregatedPacketCount";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-proto-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.WiFi.SSID.{i}.Stats.UnknownProtoPacketsReceived";
+      reference
+        "Device.WiFi.SSID.{i}.Stats.UnknownProtoPacketsReceived";
+    }
+  }
+
+  grouping device-xmpp-g {
+    description
+      "Grouping object for Device.XMPP.";
+    leaf connection-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.XMPP.ConnectionNumberOfEntries";
+      reference
+        "Device.XMPP.ConnectionNumberOfEntries";
+    }
+    leaf supported-server-connect-algorithms {
+      type string;
+      config false;
+      description
+        "Device.XMPP.SupportedServerConnectAlgorithms";
+      reference
+        "Device.XMPP.SupportedServerConnectAlgorithms";
+    }
+  }
+
+  grouping xmpp-connection-g {
+    description
+      "Grouping object for Device.XMPP.Connection.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.XMPP.Connection.{i}.Enable";
+      reference
+        "Device.XMPP.Connection.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.XMPP.Connection.{i}.Alias";
+      reference
+        "Device.XMPP.Connection.{i}.Alias";
+    }
+    leaf username {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.XMPP.Connection.{i}.Username";
+      reference
+        "Device.XMPP.Connection.{i}.Username";
+    }
+    leaf domain {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.XMPP.Connection.{i}.Domain";
+      reference
+        "Device.XMPP.Connection.{i}.Domain";
+    }
+    leaf resource {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.XMPP.Connection.{i}.Resource";
+      reference
+        "Device.XMPP.Connection.{i}.Resource";
+    }
+    leaf jabber-id {
+      type string;
+      config false;
+      description
+        "Device.XMPP.Connection.{i}.JabberID";
+      reference
+        "Device.XMPP.Connection.{i}.JabberID";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.XMPP.Connection.{i}.Status";
+      reference
+        "Device.XMPP.Connection.{i}.Status";
+    }
+    leaf last-change-date {
+      type string;
+      config false;
+      description
+        "Device.XMPP.Connection.{i}.LastChangeDate";
+      reference
+        "Device.XMPP.Connection.{i}.LastChangeDate";
+    }
+    leaf server-connect-algorithm {
+      type string;
+      description
+        "Device.XMPP.Connection.{i}.ServerConnectAlgorithm";
+      reference
+        "Device.XMPP.Connection.{i}.ServerConnectAlgorithm";
+    }
+    leaf keep-alive-interval {
+      type int32 {
+        range "-1..max";
+      }
+      description
+        "Device.XMPP.Connection.{i}.KeepAliveInterval";
+      reference
+        "Device.XMPP.Connection.{i}.KeepAliveInterval";
+    }
+    leaf server-connect-attempts {
+      type uint32;
+      description
+        "Device.XMPP.Connection.{i}.ServerConnectAttempts";
+      reference
+        "Device.XMPP.Connection.{i}.ServerConnectAttempts";
+    }
+    leaf server-retry-initial-interval {
+      type uint32 {
+        range "1..65535";
+      }
+      description
+        "Device.XMPP.Connection.{i}.ServerRetryInitialInterval";
+      reference
+        "Device.XMPP.Connection.{i}.ServerRetryInitialInterval";
+    }
+    leaf server-retry-interval-multiplier {
+      type uint32 {
+        range "1000..65535";
+      }
+      description
+        "Device.XMPP.Connection.{i}.ServerRetryIntervalMultiplier";
+      reference
+        "Device.XMPP.Connection.{i}.ServerRetryIntervalMultiplier";
+    }
+    leaf server-retry-max-interval {
+      type uint32 {
+        range "1..max";
+      }
+      description
+        "Device.XMPP.Connection.{i}.ServerRetryMaxInterval";
+      reference
+        "Device.XMPP.Connection.{i}.ServerRetryMaxInterval";
+    }
+    leaf use-tls {
+      type boolean;
+      description
+        "Device.XMPP.Connection.{i}.UseTLS";
+      reference
+        "Device.XMPP.Connection.{i}.UseTLS";
+    }
+    leaf tls-established {
+      type boolean;
+      config false;
+      description
+        "Device.XMPP.Connection.{i}.TLSEstablished";
+      reference
+        "Device.XMPP.Connection.{i}.TLSEstablished";
+    }
+    leaf server-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.XMPP.Connection.{i}.ServerNumberOfEntries";
+      reference
+        "Device.XMPP.Connection.{i}.ServerNumberOfEntries";
+    }
+  }
+
+  grouping connection-server-g {
+    description
+      "Grouping object for Device.XMPP.Connection.{i}.Server.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.XMPP.Connection.{i}.Server.{i}.Enable";
+      reference
+        "Device.XMPP.Connection.{i}.Server.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.XMPP.Connection.{i}.Server.{i}.Alias";
+      reference
+        "Device.XMPP.Connection.{i}.Server.{i}.Alias";
+    }
+    leaf priority {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.XMPP.Connection.{i}.Server.{i}.Priority";
+      reference
+        "Device.XMPP.Connection.{i}.Server.{i}.Priority";
+    }
+    leaf weight {
+      type int32 {
+        range "-1..65535";
+      }
+      description
+        "Device.XMPP.Connection.{i}.Server.{i}.Weight";
+      reference
+        "Device.XMPP.Connection.{i}.Server.{i}.Weight";
+    }
+    leaf server-address {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.XMPP.Connection.{i}.Server.{i}.ServerAddress";
+      reference
+        "Device.XMPP.Connection.{i}.Server.{i}.ServerAddress";
+    }
+    leaf port {
+      type uint32 {
+        range "0..65535";
+      }
+      description
+        "Device.XMPP.Connection.{i}.Server.{i}.Port";
+      reference
+        "Device.XMPP.Connection.{i}.Server.{i}.Port";
+    }
+  }
+
+  grouping connection-stats-g {
+    description
+      "Grouping object for Device.XMPP.Connection.{i}.Stats.";
+    leaf received-messages {
+      type uint32;
+      config false;
+      description
+        "Device.XMPP.Connection.{i}.Stats.ReceivedMessages";
+      reference
+        "Device.XMPP.Connection.{i}.Stats.ReceivedMessages";
+    }
+    leaf transmitted-messages {
+      type uint32;
+      config false;
+      description
+        "Device.XMPP.Connection.{i}.Stats.TransmittedMessages";
+      reference
+        "Device.XMPP.Connection.{i}.Stats.TransmittedMessages";
+    }
+    leaf received-error-messages {
+      type uint32;
+      config false;
+      description
+        "Device.XMPP.Connection.{i}.Stats.ReceivedErrorMessages";
+      reference
+        "Device.XMPP.Connection.{i}.Stats.ReceivedErrorMessages";
+    }
+    leaf transmitted-error-messages {
+      type uint32;
+      config false;
+      description
+        "Device.XMPP.Connection.{i}.Stats.TransmittedErrorMessages";
+      reference
+        "Device.XMPP.Connection.{i}.Stats.TransmittedErrorMessages";
+    }
+  }
+
+  grouping device-zig-bee-g {
+    description
+      "Grouping object for Device.ZigBee.";
+    leaf interface-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.InterfaceNumberOfEntries";
+      reference
+        "Device.ZigBee.InterfaceNumberOfEntries";
+    }
+    leaf zdo-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDONumberOfEntries";
+      reference
+        "Device.ZigBee.ZDONumberOfEntries";
+    }
+  }
+
+  grouping zig-bee-discovery-g {
+    description
+      "Grouping object for Device.ZigBee.Discovery.";
+    leaf area-network-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Discovery.AreaNetworkNumberOfEntries";
+      reference
+        "Device.ZigBee.Discovery.AreaNetworkNumberOfEntries";
+    }
+  }
+
+  grouping discovery-area-network-g {
+    description
+      "Grouping object for Device.ZigBee.Discovery.AreaNetwork.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.Enable";
+      reference
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.Enable";
+    }
+    leaf last-update {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.LastUpdate";
+      reference
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.LastUpdate";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.Status";
+      reference
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.Alias";
+      reference
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.Alias";
+    }
+    leaf coordinator {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.Coordinator";
+      reference
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.Coordinator";
+    }
+    leaf zdo-reference {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.ZDOReference";
+      reference
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.ZDOReference";
+    }
+    leaf zdo-list {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.ZDOList";
+      reference
+        "Device.ZigBee.Discovery.AreaNetwork.{i}.ZDOList";
+    }
+  }
+
+  grouping zig-bee-interface-g {
+    description
+      "Grouping object for Device.ZigBee.Interface.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ZigBee.Interface.{i}.Enable";
+      reference
+        "Device.ZigBee.Interface.{i}.Enable";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Status";
+      reference
+        "Device.ZigBee.Interface.{i}.Status";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ZigBee.Interface.{i}.Alias";
+      reference
+        "Device.ZigBee.Interface.{i}.Alias";
+    }
+    leaf name {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Name";
+      reference
+        "Device.ZigBee.Interface.{i}.Name";
+    }
+    leaf last-change {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.LastChange";
+      reference
+        "Device.ZigBee.Interface.{i}.LastChange";
+    }
+    leaf lower-layers {
+      type string {
+        length "min..1024";
+      }
+      description
+        "Device.ZigBee.Interface.{i}.LowerLayers";
+      reference
+        "Device.ZigBee.Interface.{i}.LowerLayers";
+    }
+    leaf ieee-address {
+      type string {
+        length "min..23";
+      }
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.IEEEAddress";
+      reference
+        "Device.ZigBee.Interface.{i}.IEEEAddress";
+    }
+    leaf network-address {
+      type string {
+        length "min..4";
+      }
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.NetworkAddress";
+      reference
+        "Device.ZigBee.Interface.{i}.NetworkAddress";
+    }
+    leaf zdo-reference {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.ZDOReference";
+      reference
+        "Device.ZigBee.Interface.{i}.ZDOReference";
+    }
+    leaf associated-device-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.AssociatedDeviceNumberOfEntries";
+      reference
+        "Device.ZigBee.Interface.{i}.AssociatedDeviceNumberOfEntries";
+    }
+  }
+
+  grouping zig-bee-interface-associated-device-g {
+    description
+      "Grouping object for Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf ieee-address {
+      type string {
+        length "min..23";
+      }
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.IEEEAddress";
+      reference
+        "Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.IEEEAddress";
+    }
+    leaf network-address {
+      type string {
+        length "min..4";
+      }
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.NetworkAddress";
+      reference
+        "Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.NetworkAddress";
+    }
+    leaf active {
+      type boolean;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.Active";
+      reference
+        "Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.Active";
+    }
+    leaf zdo-reference {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.ZDOReference";
+      reference
+        "Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.ZDOReference";
+    }
+  }
+
+  grouping zig-bee-interface-stats-g {
+    description
+      "Grouping object for Device.ZigBee.Interface.{i}.Stats.";
+    leaf bytes-sent {
+      type uint64;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.BytesSent";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.BytesSent";
+    }
+    leaf bytes-received {
+      type uint64;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.BytesReceived";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.BytesReceived";
+    }
+    leaf packets-sent {
+      type uint64;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.PacketsSent";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.PacketsSent";
+    }
+    leaf packets-received {
+      type uint64;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.PacketsReceived";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.PacketsReceived";
+    }
+    leaf errors-sent {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.ErrorsSent";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.ErrorsSent";
+    }
+    leaf errors-received {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.ErrorsReceived";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.ErrorsReceived";
+    }
+    leaf unicast-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.UnicastPacketsSent";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.UnicastPacketsSent";
+    }
+    leaf unicast-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.UnicastPacketsReceived";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.UnicastPacketsReceived";
+    }
+    leaf discard-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.DiscardPacketsSent";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.DiscardPacketsSent";
+    }
+    leaf discard-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.DiscardPacketsReceived";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.DiscardPacketsReceived";
+    }
+    leaf multicast-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.MulticastPacketsSent";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.MulticastPacketsSent";
+    }
+    leaf multicast-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.MulticastPacketsReceived";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.MulticastPacketsReceived";
+    }
+    leaf broadcast-packets-sent {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.BroadcastPacketsSent";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.BroadcastPacketsSent";
+    }
+    leaf broadcast-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.BroadcastPacketsReceived";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.BroadcastPacketsReceived";
+    }
+    leaf unknown-packets-received {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.Interface.{i}.Stats.UnknownPacketsReceived";
+      reference
+        "Device.ZigBee.Interface.{i}.Stats.UnknownPacketsReceived";
+    }
+  }
+
+  grouping zig-bee-zdo-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Alias";
+      reference
+        "Device.ZigBee.ZDO.{i}.Alias";
+    }
+    leaf ieee-address {
+      type string {
+        length "min..23";
+      }
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.IEEEAddress";
+      reference
+        "Device.ZigBee.ZDO.{i}.IEEEAddress";
+    }
+    leaf network-address {
+      type string {
+        length "min..4";
+      }
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NetworkAddress";
+      reference
+        "Device.ZigBee.ZDO.{i}.NetworkAddress";
+    }
+    leaf binding-table-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.BindingTableNumberOfEntries";
+      reference
+        "Device.ZigBee.ZDO.{i}.BindingTableNumberOfEntries";
+    }
+    leaf group-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.GroupNumberOfEntries";
+      reference
+        "Device.ZigBee.ZDO.{i}.GroupNumberOfEntries";
+    }
+    leaf application-endpoint-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpointNumberOfEntries";
+      reference
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpointNumberOfEntries";
+    }
+  }
+
+  grouping zdo-application-endpoint-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.Enable";
+      reference
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.Alias";
+      reference
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.Alias";
+    }
+    leaf endpoint-id {
+      type uint32 {
+        range "min..240";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.EndpointId";
+      reference
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.EndpointId";
+    }
+  }
+
+  grouping application-endpoint-simple-descriptor-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.";
+    leaf profile-id {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.ProfileId";
+      reference
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.ProfileId";
+    }
+    leaf device-id {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.DeviceId";
+      reference
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.DeviceId";
+    }
+    leaf device-version {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.DeviceVersion";
+      reference
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.DeviceVersion";
+    }
+    leaf input-cluster-list {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.InputClusterList";
+      reference
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.InputClusterList";
+    }
+    leaf output-cluster-list {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.OutputClusterList";
+      reference
+        "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.OutputClusterList";
+    }
+  }
+
+  grouping zdo-binding-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.Binding.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.Enable";
+      reference
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.Alias";
+      reference
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.Alias";
+    }
+    leaf source-endpoint {
+      type uint32 {
+        range "min..240";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.SourceEndpoint";
+      reference
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.SourceEndpoint";
+    }
+    leaf source-address {
+      type string {
+        length "min..23";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.SourceAddress";
+      reference
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.SourceAddress";
+    }
+    leaf cluster-id {
+      type uint32 {
+        range "min..65535";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.ClusterId";
+      reference
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.ClusterId";
+    }
+    leaf destination-address-mode {
+      type enumeration {
+        enum Group {
+          description
+            "Enum Value - Group";
+        }
+        enum Endpoint {
+          description
+            "Enum Value - Endpoint";
+        }
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.DestinationAddressMode";
+      reference
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.DestinationAddressMode";
+    }
+    leaf destination-endpoint {
+      type uint32 {
+        range "min..240";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.DestinationEndpoint";
+      reference
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.DestinationEndpoint";
+    }
+    leaf ieee-destination-address {
+      type string {
+        length "min..23";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.IEEEDestinationAddress";
+      reference
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.IEEEDestinationAddress";
+    }
+    leaf group-destination-address {
+      type string {
+        length "min..4";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.GroupDestinationAddress";
+      reference
+        "Device.ZigBee.ZDO.{i}.Binding.{i}.GroupDestinationAddress";
+    }
+  }
+
+  grouping zdo-complex-descriptor-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.ComplexDescriptor.";
+    leaf descriptor-available {
+      type boolean;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.DescriptorAvailable";
+      reference
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.DescriptorAvailable";
+    }
+    leaf language {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.Language";
+      reference
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.Language";
+    }
+    leaf character-set {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.CharacterSet";
+      reference
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.CharacterSet";
+    }
+    leaf manufacturer-name {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.ManufacturerName";
+      reference
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.ManufacturerName";
+    }
+    leaf model-name {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.ModelName";
+      reference
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.ModelName";
+    }
+    leaf serial-number {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.SerialNumber";
+      reference
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.SerialNumber";
+    }
+    leaf device-url {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.DeviceURL";
+      reference
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.DeviceURL";
+    }
+    leaf icon {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.Icon";
+      reference
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.Icon";
+    }
+    leaf icon-url {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.IconURL";
+      reference
+        "Device.ZigBee.ZDO.{i}.ComplexDescriptor.IconURL";
+    }
+  }
+
+  grouping zdo-group-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.Group.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf enable {
+      type boolean;
+      description
+        "Device.ZigBee.ZDO.{i}.Group.{i}.Enable";
+      reference
+        "Device.ZigBee.ZDO.{i}.Group.{i}.Enable";
+    }
+    leaf alias {
+      type string {
+        length "min..64";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Group.{i}.Alias";
+      reference
+        "Device.ZigBee.ZDO.{i}.Group.{i}.Alias";
+    }
+    leaf group-id {
+      type string {
+        length "min..4";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Group.{i}.GroupId";
+      reference
+        "Device.ZigBee.ZDO.{i}.Group.{i}.GroupId";
+    }
+    leaf endpoint-list {
+      type string {
+        length "min..256";
+      }
+      description
+        "Device.ZigBee.ZDO.{i}.Group.{i}.EndpointList";
+      reference
+        "Device.ZigBee.ZDO.{i}.Group.{i}.EndpointList";
+    }
+  }
+
+  grouping zdo-network-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.Network.";
+    leaf neighbor-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.Network.NeighborNumberOfEntries";
+      reference
+        "Device.ZigBee.ZDO.{i}.Network.NeighborNumberOfEntries";
+    }
+  }
+
+  grouping network-neighbor-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf neighbor {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.Neighbor";
+      reference
+        "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.Neighbor";
+    }
+    leaf lqi {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.LQI";
+      reference
+        "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.LQI";
+    }
+    leaf relationship {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.Relationship";
+      reference
+        "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.Relationship";
+    }
+    leaf permit-join {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.PermitJoin";
+      reference
+        "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.PermitJoin";
+    }
+    leaf depth {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.Depth";
+      reference
+        "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.Depth";
+    }
+  }
+
+  grouping zdo-node-descriptor-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.NodeDescriptor.";
+    leaf logical-type {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.LogicalType";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.LogicalType";
+    }
+    leaf complex-descriptor-supported {
+      type boolean;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.ComplexDescriptorSupported";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.ComplexDescriptorSupported";
+    }
+    leaf user-descriptor-supported {
+      type boolean;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.UserDescriptorSupported";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.UserDescriptorSupported";
+    }
+    leaf frequency-band {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.FrequencyBand";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.FrequencyBand";
+    }
+    leaf mac-capability {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.MACCapability";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.MACCapability";
+    }
+    leaf manufacture-code {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.ManufactureCode";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.ManufactureCode";
+    }
+    leaf maximum-buffer-size {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.MaximumBufferSize";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.MaximumBufferSize";
+    }
+    leaf maximum-incoming-transfer-size {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.MaximumIncomingTransferSize";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.MaximumIncomingTransferSize";
+    }
+    leaf maximum-outgoing-transfer-size {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.MaximumOutgoingTransferSize";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.MaximumOutgoingTransferSize";
+    }
+    leaf server-mask {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.ServerMask";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.ServerMask";
+    }
+    leaf descriptor-capability {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.DescriptorCapability";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeDescriptor.DescriptorCapability";
+    }
+  }
+
+  grouping zdo-node-manager-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.NodeManager.";
+    leaf routing-table-number-of-entries {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTableNumberOfEntries";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTableNumberOfEntries";
+    }
+  }
+
+  grouping node-manager-routing-table-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.";
+    leaf index {
+      type uint16;
+      description
+        "Index attribute";
+    }
+    leaf destination-address {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.DestinationAddress";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.DestinationAddress";
+    }
+    leaf next-hop-address {
+      type string {
+        length "min..4";
+      }
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.NextHopAddress";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.NextHopAddress";
+    }
+    leaf status {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.Status";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.Status";
+    }
+    leaf memory-constrained {
+      type boolean;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.MemoryConstrained";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.MemoryConstrained";
+    }
+    leaf many-to-one {
+      type boolean;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.ManyToOne";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.ManyToOne";
+    }
+    leaf route-record-required {
+      type boolean;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.RouteRecordRequired";
+      reference
+        "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.RouteRecordRequired";
+    }
+  }
+
+  grouping zdo-power-descriptor-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.PowerDescriptor.";
+    leaf current-power-mode {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.PowerDescriptor.CurrentPowerMode";
+      reference
+        "Device.ZigBee.ZDO.{i}.PowerDescriptor.CurrentPowerMode";
+    }
+    leaf available-power-source {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.PowerDescriptor.AvailablePowerSource";
+      reference
+        "Device.ZigBee.ZDO.{i}.PowerDescriptor.AvailablePowerSource";
+    }
+    leaf current-power-source {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.PowerDescriptor.CurrentPowerSource";
+      reference
+        "Device.ZigBee.ZDO.{i}.PowerDescriptor.CurrentPowerSource";
+    }
+    leaf current-power-source-level {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.PowerDescriptor.CurrentPowerSourceLevel";
+      reference
+        "Device.ZigBee.ZDO.{i}.PowerDescriptor.CurrentPowerSourceLevel";
+    }
+  }
+
+  grouping zdo-security-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.Security.";
+    leaf trust-center-address {
+      type string {
+        length "min..23";
+      }
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.Security.TrustCenterAddress";
+      reference
+        "Device.ZigBee.ZDO.{i}.Security.TrustCenterAddress";
+    }
+    leaf security-level {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.Security.SecurityLevel";
+      reference
+        "Device.ZigBee.ZDO.{i}.Security.SecurityLevel";
+    }
+    leaf time-out-period {
+      type uint32;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.Security.TimeOutPeriod";
+      reference
+        "Device.ZigBee.ZDO.{i}.Security.TimeOutPeriod";
+    }
+  }
+
+  grouping zdo-user-descriptor-g {
+    description
+      "Grouping object for Device.ZigBee.ZDO.{i}.UserDescriptor.";
+    leaf descriptor-available {
+      type boolean;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.UserDescriptor.DescriptorAvailable";
+      reference
+        "Device.ZigBee.ZDO.{i}.UserDescriptor.DescriptorAvailable";
+    }
+    leaf description {
+      type string;
+      config false;
+      description
+        "Device.ZigBee.ZDO.{i}.UserDescriptor.Description";
+      reference
+        "Device.ZigBee.ZDO.{i}.UserDescriptor.Description";
+    }
+  }
+
+  grouping atm-diagnostics-g {
+    description
+      "Grouping object";
+  }
+
+  grouping device-dlna-g {
+    description
+      "Grouping object";
+  }
+
+  grouping dns-diagnostics-g {
+    description
+      "Grouping object";
+  }
+
+  grouping bonded-channel-ethernet-g {
+    description
+      "Grouping object";
+  }
+
+  grouping bonding-group-ethernet-g {
+    description
+      "Grouping object";
+  }
+
+  grouping dsl-diagnostics-g {
+    description
+      "Grouping object";
+  }
+
+  grouping device-fap-g {
+    description
+      "Grouping object";
+  }
+
+  grouping ghn-diagnostics-g {
+    description
+      "Grouping object";
+  }
+
+  grouping hpna-diagnostics-g {
+    description
+      "Grouping object";
+  }
+
+  grouping device-lan-config-security-g {
+    description
+      "Grouping object";
+  }
+
+  grouping device-lldp-g {
+    description
+      "Grouping object";
+  }
+
+  grouping management-server-download-availability-g {
+    description
+      "Grouping object";
+  }
+
+  grouping interface-pp-po-a-g {
+    description
+      "Grouping object";
+  }
+
+  grouping device-services-g {
+    description
+      "Grouping object";
+  }
+
+  grouping execution-unit-extensions-g {
+    description
+      "Grouping object";
+  }
+
+  grouping upa-diagnostics-g {
+    description
+      "Grouping object";
+  }
+
+  grouping device-u-pn-p-g {
+    description
+      "Grouping object";
+  }
+
+  container device {
+    description
+      "Container for object class Device.";
+    reference
+      "Device.";
+    uses device-g;
+    container atm {
+      description
+        "Container for object class Device.ATM.";
+      reference
+        "Device.ATM.";
+      uses device-atm-g;
+      container diagnostics {
+        description
+          "Container for object class Device.ATM.Diagnostics.";
+        reference
+          "Device.ATM.Diagnostics.";
+        uses atm-diagnostics-g;
+        container f5-loopback {
+          description
+            "Container for object class Device.ATM.Diagnostics.F5Loopback.";
+          reference
+            "Device.ATM.Diagnostics.F5Loopback.";
+          uses diagnostics-f5-loopback-g;
+        }
+      }
+      list link {
+        key "index";
+        description
+          "Device.ATM.Link.{i}.";
+        reference
+          "Device.ATM.Link.{i}.";
+        uses atm-link-g;
+        container qo-s {
+          description
+            "Container for object class Device.ATM.Link.{i}.QoS.";
+          reference
+            "Device.ATM.Link.{i}.QoS.";
+          uses link-qo-s-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.ATM.Link.{i}.Stats.";
+          reference
+            "Device.ATM.Link.{i}.Stats.";
+          uses link-stats-g;
+        }
+      }
+    }
+    container basapm {
+      description
+        "Container for object class Device.BASAPM.";
+      reference
+        "Device.BASAPM.";
+      uses device-basapm-g;
+      list measurement-endpoint {
+        key "index";
+        description
+          "Device.BASAPM.MeasurementEndpoint.{i}.";
+        reference
+          "Device.BASAPM.MeasurementEndpoint.{i}.";
+        uses basapm-measurement-endpoint-g;
+        container customer-device {
+          description
+            "Container for object class Device.BASAPM.MeasurementEndpoint.{i}.CustomerDevice.";
+          reference
+            "Device.BASAPM.MeasurementEndpoint.{i}.CustomerDevice.";
+          uses measurement-endpoint-customer-device-g;
+        }
+        container isp-device {
+          description
+            "Container for object class Device.BASAPM.MeasurementEndpoint.{i}.ISPDevice.";
+          reference
+            "Device.BASAPM.MeasurementEndpoint.{i}.ISPDevice.";
+          uses measurement-endpoint-isp-device-g;
+        }
+      }
+    }
+    container bridging {
+      description
+        "Container for object class Device.Bridging.";
+      reference
+        "Device.Bridging.";
+      uses device-bridging-g;
+      list bridge {
+        key "index";
+        description
+          "Device.Bridging.Bridge.{i}.";
+        reference
+          "Device.Bridging.Bridge.{i}.";
+        uses bridging-bridge-g;
+        list port {
+          key "index";
+          description
+            "Device.Bridging.Bridge.{i}.Port.{i}.";
+          reference
+            "Device.Bridging.Bridge.{i}.Port.{i}.";
+          uses bridge-port-g;
+          container priority-code-point {
+            description
+              "Container for object class Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.";
+            reference
+              "Device.Bridging.Bridge.{i}.Port.{i}.PriorityCodePoint.";
+            uses port-priority-code-point-g;
+          }
+          container stats {
+            description
+              "Container for object class Device.Bridging.Bridge.{i}.Port.{i}.Stats.";
+            reference
+              "Device.Bridging.Bridge.{i}.Port.{i}.Stats.";
+            uses port-stats-g;
+          }
+        }
+        list vlan {
+          key "index";
+          description
+            "Device.Bridging.Bridge.{i}.VLAN.{i}.";
+          reference
+            "Device.Bridging.Bridge.{i}.VLAN.{i}.";
+          uses bridge-vlan-g;
+        }
+        list vlan-port {
+          key "index";
+          description
+            "Device.Bridging.Bridge.{i}.VLANPort.{i}.";
+          reference
+            "Device.Bridging.Bridge.{i}.VLANPort.{i}.";
+          uses bridge-vlan-port-g;
+        }
+      }
+      list filter {
+        key "index";
+        description
+          "Device.Bridging.Filter.{i}.";
+        reference
+          "Device.Bridging.Filter.{i}.";
+        uses bridging-filter-g;
+      }
+      list provider-bridge {
+        key "index";
+        description
+          "Device.Bridging.ProviderBridge.{i}.";
+        reference
+          "Device.Bridging.ProviderBridge.{i}.";
+        uses bridging-provider-bridge-g;
+      }
+    }
+    container bulk-data {
+      description
+        "Container for object class Device.BulkData.";
+      reference
+        "Device.BulkData.";
+      uses device-bulk-data-g;
+      list profile {
+        key "index";
+        description
+          "Device.BulkData.Profile.{i}.";
+        reference
+          "Device.BulkData.Profile.{i}.";
+        uses bulk-data-profile-g;
+        container csv-encoding {
+          description
+            "Container for object class Device.BulkData.Profile.{i}.CSVEncoding.";
+          reference
+            "Device.BulkData.Profile.{i}.CSVEncoding.";
+          uses profile-csv-encoding-g;
+        }
+        container http {
+          description
+            "Container for object class Device.BulkData.Profile.{i}.HTTP.";
+          reference
+            "Device.BulkData.Profile.{i}.HTTP.";
+          uses profile-http-g;
+          list request-uri-parameter {
+            key "index";
+            description
+              "Device.BulkData.Profile.{i}.HTTP.RequestURIParameter.{i}.";
+            reference
+              "Device.BulkData.Profile.{i}.HTTP.RequestURIParameter.{i}.";
+            uses http-request-uri-parameter-g;
+          }
+        }
+        container json-encoding {
+          description
+            "Container for object class Device.BulkData.Profile.{i}.JSONEncoding.";
+          reference
+            "Device.BulkData.Profile.{i}.JSONEncoding.";
+          uses profile-json-encoding-g;
+        }
+        list parameter {
+          key "index";
+          description
+            "Device.BulkData.Profile.{i}.Parameter.{i}.";
+          reference
+            "Device.BulkData.Profile.{i}.Parameter.{i}.";
+          uses profile-parameter-g;
+        }
+      }
+    }
+    container captive-portal {
+      description
+        "Container for object class Device.CaptivePortal.";
+      reference
+        "Device.CaptivePortal.";
+      uses device-captive-portal-g;
+    }
+    container cellular {
+      description
+        "Container for object class Device.Cellular.";
+      reference
+        "Device.Cellular.";
+      uses device-cellular-g;
+      list access-point {
+        key "index";
+        description
+          "Device.Cellular.AccessPoint.{i}.";
+        reference
+          "Device.Cellular.AccessPoint.{i}.";
+        uses cellular-access-point-g;
+      }
+      list interface {
+        key "index";
+        description
+          "Device.Cellular.Interface.{i}.";
+        reference
+          "Device.Cellular.Interface.{i}.";
+        uses cellular-interface-g;
+        container stats {
+          description
+            "Container for object class Device.Cellular.Interface.{i}.Stats.";
+          reference
+            "Device.Cellular.Interface.{i}.Stats.";
+          uses interface-stats-g;
+        }
+        container usim {
+          description
+            "Container for object class Device.Cellular.Interface.{i}.USIM.";
+          reference
+            "Device.Cellular.Interface.{i}.USIM.";
+          uses interface-usim-g;
+        }
+      }
+    }
+    container dhcpv4 {
+      description
+        "Container for object class Device.DHCPv4.";
+      reference
+        "Device.DHCPv4.";
+      uses device-dhcpv4-g;
+      list client {
+        key "index";
+        description
+          "Device.DHCPv4.Client.{i}.";
+        reference
+          "Device.DHCPv4.Client.{i}.";
+        uses dhcpv4-client-g;
+        list req-option {
+          key "index";
+          description
+            "Device.DHCPv4.Client.{i}.ReqOption.{i}.";
+          reference
+            "Device.DHCPv4.Client.{i}.ReqOption.{i}.";
+          uses client-req-option-g;
+        }
+        list sent-option {
+          key "index";
+          description
+            "Device.DHCPv4.Client.{i}.SentOption.{i}.";
+          reference
+            "Device.DHCPv4.Client.{i}.SentOption.{i}.";
+          uses client-sent-option-g;
+        }
+      }
+      container relay {
+        description
+          "Container for object class Device.DHCPv4.Relay.";
+        reference
+          "Device.DHCPv4.Relay.";
+        uses dhcpv4-relay-g;
+        list forwarding {
+          key "index";
+          description
+            "Device.DHCPv4.Relay.Forwarding.{i}.";
+          reference
+            "Device.DHCPv4.Relay.Forwarding.{i}.";
+          uses relay-forwarding-g;
+        }
+      }
+      container server {
+        description
+          "Container for object class Device.DHCPv4.Server.";
+        reference
+          "Device.DHCPv4.Server.";
+        uses dhcpv4-server-g;
+        list pool {
+          key "index";
+          description
+            "Device.DHCPv4.Server.Pool.{i}.";
+          reference
+            "Device.DHCPv4.Server.Pool.{i}.";
+          uses server-pool-g;
+          list client {
+            key "index";
+            description
+              "Device.DHCPv4.Server.Pool.{i}.Client.{i}.";
+            reference
+              "Device.DHCPv4.Server.Pool.{i}.Client.{i}.";
+            uses pool-client-g;
+            list ipv4-address {
+              key "index";
+              description
+                "Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4Address.{i}.";
+              reference
+                "Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4Address.{i}.";
+              uses client-ipv4-address-g;
+            }
+            list option {
+              key "index";
+              description
+                "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Option.{i}.";
+              reference
+                "Device.DHCPv4.Server.Pool.{i}.Client.{i}.Option.{i}.";
+              uses client-option-g;
+            }
+          }
+          list option {
+            key "index";
+            description
+              "Device.DHCPv4.Server.Pool.{i}.Option.{i}.";
+            reference
+              "Device.DHCPv4.Server.Pool.{i}.Option.{i}.";
+            uses pool-option-g;
+          }
+          list static-address {
+            key "index";
+            description
+              "Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.";
+            reference
+              "Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}.";
+            uses pool-static-address-g;
+          }
+        }
+      }
+    }
+    container dhcpv6 {
+      description
+        "Container for object class Device.DHCPv6.";
+      reference
+        "Device.DHCPv6.";
+      uses device-dhcpv6-g;
+      list client {
+        key "index";
+        description
+          "Device.DHCPv6.Client.{i}.";
+        reference
+          "Device.DHCPv6.Client.{i}.";
+        uses dhcpv6-client-g;
+        list received-option {
+          key "index";
+          description
+            "Device.DHCPv6.Client.{i}.ReceivedOption.{i}.";
+          reference
+            "Device.DHCPv6.Client.{i}.ReceivedOption.{i}.";
+          uses client-received-option-g;
+        }
+        list sent-option {
+          key "index";
+          description
+            "Device.DHCPv6.Client.{i}.SentOption.{i}.";
+          reference
+            "Device.DHCPv6.Client.{i}.SentOption.{i}.";
+          uses dhcpv6-client-sent-option-g;
+        }
+        list server {
+          key "index";
+          description
+            "Device.DHCPv6.Client.{i}.Server.{i}.";
+          reference
+            "Device.DHCPv6.Client.{i}.Server.{i}.";
+          uses client-server-g;
+        }
+      }
+      container server {
+        description
+          "Container for object class Device.DHCPv6.Server.";
+        reference
+          "Device.DHCPv6.Server.";
+        uses dhcpv6-server-g;
+        list pool {
+          key "index";
+          description
+            "Device.DHCPv6.Server.Pool.{i}.";
+          reference
+            "Device.DHCPv6.Server.Pool.{i}.";
+          uses dhcpv6-server-pool-g;
+          list client {
+            key "index";
+            description
+              "Device.DHCPv6.Server.Pool.{i}.Client.{i}.";
+            reference
+              "Device.DHCPv6.Server.Pool.{i}.Client.{i}.";
+            uses server-pool-client-g;
+            list ipv6-address {
+              key "index";
+              description
+                "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}.";
+              reference
+                "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}.";
+              uses client-ipv6-address-g;
+            }
+            list ipv6-prefix {
+              key "index";
+              description
+                "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}.";
+              reference
+                "Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}.";
+              uses client-ipv6-prefix-g;
+            }
+            list option {
+              key "index";
+              description
+                "Device.DHCPv6.Server.Pool.{i}.Client.{i}.Option.{i}.";
+              reference
+                "Device.DHCPv6.Server.Pool.{i}.Client.{i}.Option.{i}.";
+              uses pool-client-option-g;
+            }
+          }
+          list option {
+            key "index";
+            description
+              "Device.DHCPv6.Server.Pool.{i}.Option.{i}.";
+            reference
+              "Device.DHCPv6.Server.Pool.{i}.Option.{i}.";
+            uses server-pool-option-g;
+          }
+        }
+      }
+    }
+    container dlna {
+      description
+        "Container for object class Device.DLNA.";
+      reference
+        "Device.DLNA.";
+      uses device-dlna-g;
+      container capabilities {
+        description
+          "Container for object class Device.DLNA.Capabilities.";
+        reference
+          "Device.DLNA.Capabilities.";
+        uses dlna-capabilities-g;
+      }
+    }
+    container dns {
+      description
+        "Container for object class Device.DNS.";
+      reference
+        "Device.DNS.";
+      uses device-dns-g;
+      container client {
+        description
+          "Container for object class Device.DNS.Client.";
+        reference
+          "Device.DNS.Client.";
+        uses dns-client-g;
+        list server {
+          key "index";
+          description
+            "Device.DNS.Client.Server.{i}.";
+          reference
+            "Device.DNS.Client.Server.{i}.";
+          uses dns-client-server-g;
+        }
+      }
+      container diagnostics {
+        description
+          "Container for object class Device.DNS.Diagnostics.";
+        reference
+          "Device.DNS.Diagnostics.";
+        uses dns-diagnostics-g;
+        container ns-lookup-diagnostics {
+          description
+            "Container for object class Device.DNS.Diagnostics.NSLookupDiagnostics.";
+          reference
+            "Device.DNS.Diagnostics.NSLookupDiagnostics.";
+          uses diagnostics-ns-lookup-diagnostics-g;
+          list result {
+            key "index";
+            description
+              "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.";
+            reference
+              "Device.DNS.Diagnostics.NSLookupDiagnostics.Result.{i}.";
+            uses ns-lookup-diagnostics-result-g;
+          }
+        }
+      }
+      container relay {
+        description
+          "Container for object class Device.DNS.Relay.";
+        reference
+          "Device.DNS.Relay.";
+        uses dns-relay-g;
+        list forwarding {
+          key "index";
+          description
+            "Device.DNS.Relay.Forwarding.{i}.";
+          reference
+            "Device.DNS.Relay.Forwarding.{i}.";
+          uses dns-relay-forwarding-g;
+        }
+      }
+      container sd {
+        description
+          "Container for object class Device.DNS.SD.";
+        reference
+          "Device.DNS.SD.";
+        uses dns-sd-g;
+        list service {
+          key "index";
+          description
+            "Device.DNS.SD.Service.{i}.";
+          reference
+            "Device.DNS.SD.Service.{i}.";
+          uses sd-service-g;
+          list text-record {
+            key "index";
+            description
+              "Device.DNS.SD.Service.{i}.TextRecord.{i}.";
+            reference
+              "Device.DNS.SD.Service.{i}.TextRecord.{i}.";
+            uses service-text-record-g;
+          }
+        }
+      }
+    }
+    container dsl {
+      description
+        "Container for object class Device.DSL.";
+      reference
+        "Device.DSL.";
+      uses device-dsl-g;
+      list bonding-group {
+        key "index";
+        description
+          "Device.DSL.BondingGroup.{i}.";
+        reference
+          "Device.DSL.BondingGroup.{i}.";
+        uses dsl-bonding-group-g;
+        list bonded-channel {
+          key "index";
+          description
+            "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.";
+          reference
+            "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.";
+          uses bonding-group-bonded-channel-g;
+          container ethernet {
+            description
+              "Container for object class Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.";
+            reference
+              "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.";
+            uses bonded-channel-ethernet-g;
+            container stats {
+              description
+                "Container for object class Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.";
+              reference
+                "Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats.";
+              uses ethernet-stats-g;
+            }
+          }
+        }
+        container ethernet {
+          description
+            "Container for object class Device.DSL.BondingGroup.{i}.Ethernet.";
+          reference
+            "Device.DSL.BondingGroup.{i}.Ethernet.";
+          uses bonding-group-ethernet-g;
+          container stats {
+            description
+              "Container for object class Device.DSL.BondingGroup.{i}.Ethernet.Stats.";
+            reference
+              "Device.DSL.BondingGroup.{i}.Ethernet.Stats.";
+            uses bonding-group-ethernet-stats-g;
+          }
+        }
+        container stats {
+          description
+            "Container for object class Device.DSL.BondingGroup.{i}.Stats.";
+          reference
+            "Device.DSL.BondingGroup.{i}.Stats.";
+          uses bonding-group-stats-g;
+          container current-day {
+            description
+              "Container for object class Device.DSL.BondingGroup.{i}.Stats.CurrentDay.";
+            reference
+              "Device.DSL.BondingGroup.{i}.Stats.CurrentDay.";
+            uses stats-current-day-g;
+          }
+          container quarter-hour {
+            description
+              "Container for object class Device.DSL.BondingGroup.{i}.Stats.QuarterHour.";
+            reference
+              "Device.DSL.BondingGroup.{i}.Stats.QuarterHour.";
+            uses stats-quarter-hour-g;
+          }
+          container total {
+            description
+              "Container for object class Device.DSL.BondingGroup.{i}.Stats.Total.";
+            reference
+              "Device.DSL.BondingGroup.{i}.Stats.Total.";
+            uses stats-total-g;
+          }
+        }
+      }
+      list channel {
+        key "index";
+        description
+          "Device.DSL.Channel.{i}.";
+        reference
+          "Device.DSL.Channel.{i}.";
+        uses dsl-channel-g;
+        container stats {
+          description
+            "Container for object class Device.DSL.Channel.{i}.Stats.";
+          reference
+            "Device.DSL.Channel.{i}.Stats.";
+          uses channel-stats-g;
+          container current-day {
+            description
+              "Container for object class Device.DSL.Channel.{i}.Stats.CurrentDay.";
+            reference
+              "Device.DSL.Channel.{i}.Stats.CurrentDay.";
+            uses channel-stats-current-day-g;
+          }
+          container last-showtime {
+            description
+              "Container for object class Device.DSL.Channel.{i}.Stats.LastShowtime.";
+            reference
+              "Device.DSL.Channel.{i}.Stats.LastShowtime.";
+            uses stats-last-showtime-g;
+          }
+          container quarter-hour {
+            description
+              "Container for object class Device.DSL.Channel.{i}.Stats.QuarterHour.";
+            reference
+              "Device.DSL.Channel.{i}.Stats.QuarterHour.";
+            uses channel-stats-quarter-hour-g;
+          }
+          container showtime {
+            description
+              "Container for object class Device.DSL.Channel.{i}.Stats.Showtime.";
+            reference
+              "Device.DSL.Channel.{i}.Stats.Showtime.";
+            uses stats-showtime-g;
+          }
+          container total {
+            description
+              "Container for object class Device.DSL.Channel.{i}.Stats.Total.";
+            reference
+              "Device.DSL.Channel.{i}.Stats.Total.";
+            uses channel-stats-total-g;
+          }
+        }
+      }
+      container diagnostics {
+        description
+          "Container for object class Device.DSL.Diagnostics.";
+        reference
+          "Device.DSL.Diagnostics.";
+        uses dsl-diagnostics-g;
+        container adsl-line-test {
+          description
+            "Container for object class Device.DSL.Diagnostics.ADSLLineTest.";
+          reference
+            "Device.DSL.Diagnostics.ADSLLineTest.";
+          uses diagnostics-adsl-line-test-g;
+        }
+      }
+      list line {
+        key "index";
+        description
+          "Device.DSL.Line.{i}.";
+        reference
+          "Device.DSL.Line.{i}.";
+        uses dsl-line-g;
+        container data-gathering {
+          description
+            "Container for object class Device.DSL.Line.{i}.DataGathering.";
+          reference
+            "Device.DSL.Line.{i}.DataGathering.";
+          uses line-data-gathering-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.DSL.Line.{i}.Stats.";
+          reference
+            "Device.DSL.Line.{i}.Stats.";
+          uses line-stats-g;
+          container current-day {
+            description
+              "Container for object class Device.DSL.Line.{i}.Stats.CurrentDay.";
+            reference
+              "Device.DSL.Line.{i}.Stats.CurrentDay.";
+            uses line-stats-current-day-g;
+          }
+          container last-showtime {
+            description
+              "Container for object class Device.DSL.Line.{i}.Stats.LastShowtime.";
+            reference
+              "Device.DSL.Line.{i}.Stats.LastShowtime.";
+            uses line-stats-last-showtime-g;
+          }
+          container quarter-hour {
+            description
+              "Container for object class Device.DSL.Line.{i}.Stats.QuarterHour.";
+            reference
+              "Device.DSL.Line.{i}.Stats.QuarterHour.";
+            uses line-stats-quarter-hour-g;
+          }
+          container showtime {
+            description
+              "Container for object class Device.DSL.Line.{i}.Stats.Showtime.";
+            reference
+              "Device.DSL.Line.{i}.Stats.Showtime.";
+            uses line-stats-showtime-g;
+          }
+          container total {
+            description
+              "Container for object class Device.DSL.Line.{i}.Stats.Total.";
+            reference
+              "Device.DSL.Line.{i}.Stats.Total.";
+            uses line-stats-total-g;
+          }
+        }
+        container test-params {
+          description
+            "Container for object class Device.DSL.Line.{i}.TestParams.";
+          reference
+            "Device.DSL.Line.{i}.TestParams.";
+          uses line-test-params-g;
+        }
+      }
+    }
+    container ds-lite {
+      description
+        "Container for object class Device.DSLite.";
+      reference
+        "Device.DSLite.";
+      uses device-ds-lite-g;
+      list interface-setting {
+        key "index";
+        description
+          "Device.DSLite.InterfaceSetting.{i}.";
+        reference
+          "Device.DSLite.InterfaceSetting.{i}.";
+        uses ds-lite-interface-setting-g;
+      }
+    }
+    container device-info {
+      description
+        "Container for object class Device.DeviceInfo.";
+      reference
+        "Device.DeviceInfo.";
+      uses device-device-info-g;
+      list device-image-file {
+        key "index";
+        description
+          "Device.DeviceInfo.DeviceImageFile.{i}.";
+        reference
+          "Device.DeviceInfo.DeviceImageFile.{i}.";
+        uses device-info-device-image-file-g;
+      }
+      list firmware-image {
+        key "index";
+        description
+          "Device.DeviceInfo.FirmwareImage.{i}.";
+        reference
+          "Device.DeviceInfo.FirmwareImage.{i}.";
+        uses device-info-firmware-image-g;
+      }
+      list location {
+        key "index";
+        description
+          "Device.DeviceInfo.Location.{i}.";
+        reference
+          "Device.DeviceInfo.Location.{i}.";
+        uses device-info-location-g;
+      }
+      container memory-status {
+        description
+          "Container for object class Device.DeviceInfo.MemoryStatus.";
+        reference
+          "Device.DeviceInfo.MemoryStatus.";
+        uses device-info-memory-status-g;
+      }
+      container network-properties {
+        description
+          "Container for object class Device.DeviceInfo.NetworkProperties.";
+        reference
+          "Device.DeviceInfo.NetworkProperties.";
+        uses device-info-network-properties-g;
+      }
+      container process-status {
+        description
+          "Container for object class Device.DeviceInfo.ProcessStatus.";
+        reference
+          "Device.DeviceInfo.ProcessStatus.";
+        uses device-info-process-status-g;
+        list process {
+          key "index";
+          description
+            "Device.DeviceInfo.ProcessStatus.Process.{i}.";
+          reference
+            "Device.DeviceInfo.ProcessStatus.Process.{i}.";
+          uses process-status-process-g;
+        }
+      }
+      list processor {
+        key "index";
+        description
+          "Device.DeviceInfo.Processor.{i}.";
+        reference
+          "Device.DeviceInfo.Processor.{i}.";
+        uses device-info-processor-g;
+      }
+      container proxier-info {
+        description
+          "Container for object class Device.DeviceInfo.ProxierInfo.";
+        reference
+          "Device.DeviceInfo.ProxierInfo.";
+        uses device-info-proxier-info-g;
+      }
+      list supported-data-model {
+        key "index";
+        description
+          "Device.DeviceInfo.SupportedDataModel.{i}.";
+        reference
+          "Device.DeviceInfo.SupportedDataModel.{i}.";
+        uses device-info-supported-data-model-g;
+      }
+      container temperature-status {
+        description
+          "Container for object class Device.DeviceInfo.TemperatureStatus.";
+        reference
+          "Device.DeviceInfo.TemperatureStatus.";
+        uses device-info-temperature-status-g;
+        list temperature-sensor {
+          key "index";
+          description
+            "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.";
+          reference
+            "Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}.";
+          uses temperature-status-temperature-sensor-g;
+        }
+      }
+      list vendor-config-file {
+        key "index";
+        description
+          "Device.DeviceInfo.VendorConfigFile.{i}.";
+        reference
+          "Device.DeviceInfo.VendorConfigFile.{i}.";
+        uses device-info-vendor-config-file-g;
+      }
+      list vendor-log-file {
+        key "index";
+        description
+          "Device.DeviceInfo.VendorLogFile.{i}.";
+        reference
+          "Device.DeviceInfo.VendorLogFile.{i}.";
+        uses device-info-vendor-log-file-g;
+      }
+    }
+    container dynamic-dns {
+      description
+        "Container for object class Device.DynamicDNS.";
+      reference
+        "Device.DynamicDNS.";
+      uses device-dynamic-dns-g;
+      list client {
+        key "index";
+        description
+          "Device.DynamicDNS.Client.{i}.";
+        reference
+          "Device.DynamicDNS.Client.{i}.";
+        uses dynamic-dns-client-g;
+        list hostname {
+          key "index";
+          description
+            "Device.DynamicDNS.Client.{i}.Hostname.{i}.";
+          reference
+            "Device.DynamicDNS.Client.{i}.Hostname.{i}.";
+          uses client-hostname-g;
+        }
+      }
+      list server {
+        key "index";
+        description
+          "Device.DynamicDNS.Server.{i}.";
+        reference
+          "Device.DynamicDNS.Server.{i}.";
+        uses dynamic-dns-server-g;
+      }
+    }
+    container etsi-m2-m {
+      description
+        "Container for object class Device.ETSIM2M.";
+      reference
+        "Device.ETSIM2M.";
+      uses device-etsi-m2-m-g;
+      list scl {
+        key "index";
+        description
+          "Device.ETSIM2M.SCL.{i}.";
+        reference
+          "Device.ETSIM2M.SCL.{i}.";
+        uses etsi-m2-m-scl-g;
+        list area-nwk-device-info-instance {
+          key "index";
+          description
+            "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.";
+          reference
+            "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.";
+          uses scl-area-nwk-device-info-instance-g;
+          list property {
+            key "index";
+            description
+              "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Property.{i}.";
+            reference
+              "Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.Property.{i}.";
+            uses area-nwk-device-info-instance-property-g;
+          }
+        }
+        list area-nwk-instance {
+          key "index";
+          description
+            "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.";
+          reference
+            "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.";
+          uses scl-area-nwk-instance-g;
+          list property {
+            key "index";
+            description
+              "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.Property.{i}.";
+            reference
+              "Device.ETSIM2M.SCL.{i}.AreaNwkInstance.{i}.Property.{i}.";
+            uses area-nwk-instance-property-g;
+          }
+        }
+        container discovery {
+          description
+            "Container for object class Device.ETSIM2M.SCL.{i}.Discovery.";
+          reference
+            "Device.ETSIM2M.SCL.{i}.Discovery.";
+          uses scl-discovery-g;
+        }
+        container reregistration {
+          description
+            "Container for object class Device.ETSIM2M.SCL.{i}.Reregistration.";
+          reference
+            "Device.ETSIM2M.SCL.{i}.Reregistration.";
+          uses scl-reregistration-g;
+          container action-status {
+            description
+              "Container for object class Device.ETSIM2M.SCL.{i}.Reregistration.ActionStatus.";
+            reference
+              "Device.ETSIM2M.SCL.{i}.Reregistration.ActionStatus.";
+            uses reregistration-action-status-g;
+          }
+        }
+        list saf-policy-set {
+          key "index";
+          description
+            "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.";
+          reference
+            "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.";
+          uses scl-saf-policy-set-g;
+          list anp-policy {
+            key "index";
+            description
+              "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.";
+            reference
+              "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.";
+            uses saf-policy-set-anp-policy-g;
+            list block-period {
+              key "index";
+              description
+                "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.";
+              reference
+                "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.BlockPeriod.{i}.";
+              uses anp-policy-block-period-g;
+            }
+            list request-category {
+              key "index";
+              description
+                "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.";
+              reference
+                "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.";
+              uses anp-policy-request-category-g;
+              list schedule {
+                key "index";
+                description
+                  "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.";
+                reference
+                  "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.";
+                uses request-category-schedule-g;
+                list abs-time-span {
+                  key "index";
+                  description
+                    "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.";
+                  reference
+                    "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.ANPPolicy.{i}.RequestCategory.{i}.Schedule.{i}.AbsTimeSpan.{i}.";
+                  uses schedule-abs-time-span-g;
+                }
+              }
+            }
+          }
+          container m2-msp-policy {
+            description
+              "Container for object class Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.";
+            reference
+              "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.";
+            uses saf-policy-set-m2-msp-policy-g;
+            list request-category {
+              key "index";
+              description
+                "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.";
+              reference
+                "Device.ETSIM2M.SCL.{i}.SAFPolicySet.{i}.M2MSPPolicy.RequestCategory.{i}.";
+              uses m2-msp-policy-request-category-g;
+            }
+          }
+        }
+      }
+    }
+    container ethernet {
+      description
+        "Container for object class Device.Ethernet.";
+      reference
+        "Device.Ethernet.";
+      uses device-ethernet-g;
+      list interface {
+        key "index";
+        description
+          "Device.Ethernet.Interface.{i}.";
+        reference
+          "Device.Ethernet.Interface.{i}.";
+        uses ethernet-interface-g;
+        container stats {
+          description
+            "Container for object class Device.Ethernet.Interface.{i}.Stats.";
+          reference
+            "Device.Ethernet.Interface.{i}.Stats.";
+          uses ethernet-interface-stats-g;
+        }
+      }
+      list lag {
+        key "index";
+        description
+          "Device.Ethernet.LAG.{i}.";
+        reference
+          "Device.Ethernet.LAG.{i}.";
+        uses ethernet-lag-g;
+        container stats {
+          description
+            "Container for object class Device.Ethernet.LAG.{i}.Stats.";
+          reference
+            "Device.Ethernet.LAG.{i}.Stats.";
+          uses lag-stats-g;
+        }
+      }
+      list link {
+        key "index";
+        description
+          "Device.Ethernet.Link.{i}.";
+        reference
+          "Device.Ethernet.Link.{i}.";
+        uses ethernet-link-g;
+        container stats {
+          description
+            "Container for object class Device.Ethernet.Link.{i}.Stats.";
+          reference
+            "Device.Ethernet.Link.{i}.Stats.";
+          uses ethernet-link-stats-g;
+        }
+      }
+      list rmon-stats {
+        key "index";
+        description
+          "Device.Ethernet.RMONStats.{i}.";
+        reference
+          "Device.Ethernet.RMONStats.{i}.";
+        uses ethernet-rmon-stats-g;
+      }
+      list vlan-termination {
+        key "index";
+        description
+          "Device.Ethernet.VLANTermination.{i}.";
+        reference
+          "Device.Ethernet.VLANTermination.{i}.";
+        uses ethernet-vlan-termination-g;
+        container stats {
+          description
+            "Container for object class Device.Ethernet.VLANTermination.{i}.Stats.";
+          reference
+            "Device.Ethernet.VLANTermination.{i}.Stats.";
+          uses vlan-termination-stats-g;
+        }
+      }
+    }
+    container fap {
+      description
+        "Container for object class Device.FAP.";
+      reference
+        "Device.FAP.";
+      uses device-fap-g;
+      container application-platform {
+        description
+          "Container for object class Device.FAP.ApplicationPlatform.";
+        reference
+          "Device.FAP.ApplicationPlatform.";
+        uses fap-application-platform-g;
+        container capabilities {
+          description
+            "Container for object class Device.FAP.ApplicationPlatform.Capabilities.";
+          reference
+            "Device.FAP.ApplicationPlatform.Capabilities.";
+          uses application-platform-capabilities-g;
+        }
+        container control {
+          description
+            "Container for object class Device.FAP.ApplicationPlatform.Control.";
+          reference
+            "Device.FAP.ApplicationPlatform.Control.";
+          uses application-platform-control-g;
+          container femto-awareness {
+            description
+              "Container for object class Device.FAP.ApplicationPlatform.Control.FemtoAwareness.";
+            reference
+              "Device.FAP.ApplicationPlatform.Control.FemtoAwareness.";
+            uses control-femto-awareness-g;
+          }
+          container mms {
+            description
+              "Container for object class Device.FAP.ApplicationPlatform.Control.MMS.";
+            reference
+              "Device.FAP.ApplicationPlatform.Control.MMS.";
+            uses control-mms-g;
+          }
+          container sms {
+            description
+              "Container for object class Device.FAP.ApplicationPlatform.Control.SMS.";
+            reference
+              "Device.FAP.ApplicationPlatform.Control.SMS.";
+            uses control-sms-g;
+          }
+          container terminal-location {
+            description
+              "Container for object class Device.FAP.ApplicationPlatform.Control.TerminalLocation.";
+            reference
+              "Device.FAP.ApplicationPlatform.Control.TerminalLocation.";
+            uses control-terminal-location-g;
+          }
+        }
+        container monitoring {
+          description
+            "Container for object class Device.FAP.ApplicationPlatform.Monitoring.";
+          reference
+            "Device.FAP.ApplicationPlatform.Monitoring.";
+          uses application-platform-monitoring-g;
+          container femto-awareness {
+            description
+              "Container for object class Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.";
+            reference
+              "Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness.";
+            uses monitoring-femto-awareness-g;
+          }
+          container mms {
+            description
+              "Container for object class Device.FAP.ApplicationPlatform.Monitoring.MMS.";
+            reference
+              "Device.FAP.ApplicationPlatform.Monitoring.MMS.";
+            uses monitoring-mms-g;
+          }
+          container sms {
+            description
+              "Container for object class Device.FAP.ApplicationPlatform.Monitoring.SMS.";
+            reference
+              "Device.FAP.ApplicationPlatform.Monitoring.SMS.";
+            uses monitoring-sms-g;
+          }
+          container terminal-location {
+            description
+              "Container for object class Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.";
+            reference
+              "Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation.";
+            uses monitoring-terminal-location-g;
+          }
+        }
+      }
+      container gps {
+        description
+          "Container for object class Device.FAP.GPS.";
+        reference
+          "Device.FAP.GPS.";
+        uses fap-gps-g;
+        container agps-server-config {
+          description
+            "Container for object class Device.FAP.GPS.AGPSServerConfig.";
+          reference
+            "Device.FAP.GPS.AGPSServerConfig.";
+          uses gps-agps-server-config-g;
+        }
+        container continuous-gps-status {
+          description
+            "Container for object class Device.FAP.GPS.ContinuousGPSStatus.";
+          reference
+            "Device.FAP.GPS.ContinuousGPSStatus.";
+          uses gps-continuous-gps-status-g;
+        }
+      }
+      container perf-mgmt {
+        description
+          "Container for object class Device.FAP.PerfMgmt.";
+        reference
+          "Device.FAP.PerfMgmt.";
+        uses fap-perf-mgmt-g;
+        list config {
+          key "index";
+          description
+            "Device.FAP.PerfMgmt.Config.{i}.";
+          reference
+            "Device.FAP.PerfMgmt.Config.{i}.";
+          uses perf-mgmt-config-g;
+        }
+      }
+    }
+    container fast {
+      description
+        "Container for object class Device.FAST.";
+      reference
+        "Device.FAST.";
+      uses device-fast-g;
+      list line {
+        key "index";
+        description
+          "Device.FAST.Line.{i}.";
+        reference
+          "Device.FAST.Line.{i}.";
+        uses fast-line-g;
+        container stats {
+          description
+            "Container for object class Device.FAST.Line.{i}.Stats.";
+          reference
+            "Device.FAST.Line.{i}.Stats.";
+          uses fast-line-stats-g;
+          container current-day {
+            description
+              "Container for object class Device.FAST.Line.{i}.Stats.CurrentDay.";
+            reference
+              "Device.FAST.Line.{i}.Stats.CurrentDay.";
+            uses fast-line-stats-current-day-g;
+          }
+          container last-showtime {
+            description
+              "Container for object class Device.FAST.Line.{i}.Stats.LastShowtime.";
+            reference
+              "Device.FAST.Line.{i}.Stats.LastShowtime.";
+            uses fast-line-stats-last-showtime-g;
+          }
+          container quarter-hour {
+            description
+              "Container for object class Device.FAST.Line.{i}.Stats.QuarterHour.";
+            reference
+              "Device.FAST.Line.{i}.Stats.QuarterHour.";
+            uses fast-line-stats-quarter-hour-g;
+          }
+          container showtime {
+            description
+              "Container for object class Device.FAST.Line.{i}.Stats.Showtime.";
+            reference
+              "Device.FAST.Line.{i}.Stats.Showtime.";
+            uses fast-line-stats-showtime-g;
+          }
+          container total {
+            description
+              "Container for object class Device.FAST.Line.{i}.Stats.Total.";
+            reference
+              "Device.FAST.Line.{i}.Stats.Total.";
+            uses fast-line-stats-total-g;
+          }
+        }
+        container test-params {
+          description
+            "Container for object class Device.FAST.Line.{i}.TestParams.";
+          reference
+            "Device.FAST.Line.{i}.TestParams.";
+          uses fast-line-test-params-g;
+        }
+      }
+    }
+    container fault-mgmt {
+      description
+        "Container for object class Device.FaultMgmt.";
+      reference
+        "Device.FaultMgmt.";
+      uses device-fault-mgmt-g;
+      list current-alarm {
+        key "index";
+        description
+          "Device.FaultMgmt.CurrentAlarm.{i}.";
+        reference
+          "Device.FaultMgmt.CurrentAlarm.{i}.";
+        uses fault-mgmt-current-alarm-g;
+      }
+      list expedited-event {
+        key "index";
+        description
+          "Device.FaultMgmt.ExpeditedEvent.{i}.";
+        reference
+          "Device.FaultMgmt.ExpeditedEvent.{i}.";
+        uses fault-mgmt-expedited-event-g;
+      }
+      list history-event {
+        key "index";
+        description
+          "Device.FaultMgmt.HistoryEvent.{i}.";
+        reference
+          "Device.FaultMgmt.HistoryEvent.{i}.";
+        uses fault-mgmt-history-event-g;
+      }
+      list queued-event {
+        key "index";
+        description
+          "Device.FaultMgmt.QueuedEvent.{i}.";
+        reference
+          "Device.FaultMgmt.QueuedEvent.{i}.";
+        uses fault-mgmt-queued-event-g;
+      }
+      list supported-alarm {
+        key "index";
+        description
+          "Device.FaultMgmt.SupportedAlarm.{i}.";
+        reference
+          "Device.FaultMgmt.SupportedAlarm.{i}.";
+        uses fault-mgmt-supported-alarm-g;
+      }
+    }
+    container firewall {
+      description
+        "Container for object class Device.Firewall.";
+      reference
+        "Device.Firewall.";
+      uses device-firewall-g;
+      list chain {
+        key "index";
+        description
+          "Device.Firewall.Chain.{i}.";
+        reference
+          "Device.Firewall.Chain.{i}.";
+        uses firewall-chain-g;
+        list rule {
+          key "index";
+          description
+            "Device.Firewall.Chain.{i}.Rule.{i}.";
+          reference
+            "Device.Firewall.Chain.{i}.Rule.{i}.";
+          uses chain-rule-g;
+        }
+      }
+      list level {
+        key "index";
+        description
+          "Device.Firewall.Level.{i}.";
+        reference
+          "Device.Firewall.Level.{i}.";
+        uses firewall-level-g;
+      }
+    }
+    container gre {
+      description
+        "Container for object class Device.GRE.";
+      reference
+        "Device.GRE.";
+      uses device-gre-g;
+      list filter {
+        key "index";
+        description
+          "Device.GRE.Filter.{i}.";
+        reference
+          "Device.GRE.Filter.{i}.";
+        uses gre-filter-g;
+      }
+      list tunnel {
+        key "index";
+        description
+          "Device.GRE.Tunnel.{i}.";
+        reference
+          "Device.GRE.Tunnel.{i}.";
+        uses gre-tunnel-g;
+        list interface {
+          key "index";
+          description
+            "Device.GRE.Tunnel.{i}.Interface.{i}.";
+          reference
+            "Device.GRE.Tunnel.{i}.Interface.{i}.";
+          uses tunnel-interface-g;
+          container stats {
+            description
+              "Container for object class Device.GRE.Tunnel.{i}.Interface.{i}.Stats.";
+            reference
+              "Device.GRE.Tunnel.{i}.Interface.{i}.Stats.";
+            uses tunnel-interface-stats-g;
+          }
+        }
+        container stats {
+          description
+            "Container for object class Device.GRE.Tunnel.{i}.Stats.";
+          reference
+            "Device.GRE.Tunnel.{i}.Stats.";
+          uses tunnel-stats-g;
+        }
+      }
+    }
+    container gateway-info {
+      description
+        "Container for object class Device.GatewayInfo.";
+      reference
+        "Device.GatewayInfo.";
+      uses device-gateway-info-g;
+    }
+    container ghn {
+      description
+        "Container for object class Device.Ghn.";
+      reference
+        "Device.Ghn.";
+      uses device-ghn-g;
+      container diagnostics {
+        description
+          "Container for object class Device.Ghn.Diagnostics.";
+        reference
+          "Device.Ghn.Diagnostics.";
+        uses ghn-diagnostics-g;
+        container phy-throughput {
+          description
+            "Container for object class Device.Ghn.Diagnostics.PHYThroughput.";
+          reference
+            "Device.Ghn.Diagnostics.PHYThroughput.";
+          uses diagnostics-phy-throughput-g;
+          list result {
+            key "index";
+            description
+              "Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.";
+            reference
+              "Device.Ghn.Diagnostics.PHYThroughput.Result.{i}.";
+            uses phy-throughput-result-g;
+          }
+        }
+        container performance-monitoring {
+          description
+            "Container for object class Device.Ghn.Diagnostics.PerformanceMonitoring.";
+          reference
+            "Device.Ghn.Diagnostics.PerformanceMonitoring.";
+          uses diagnostics-performance-monitoring-g;
+          container channels {
+            description
+              "Container for object class Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.";
+            reference
+              "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.";
+            uses performance-monitoring-channels-g;
+            list channel {
+              key "index";
+              description
+                "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.";
+              reference
+                "Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.";
+              uses channels-channel-g;
+            }
+          }
+          container nodes {
+            description
+              "Container for object class Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.";
+            reference
+              "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.";
+            uses performance-monitoring-nodes-g;
+            list node {
+              key "index";
+              description
+                "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.";
+              reference
+                "Device.Ghn.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.";
+              uses nodes-node-g;
+            }
+          }
+        }
+      }
+      list interface {
+        key "index";
+        description
+          "Device.Ghn.Interface.{i}.";
+        reference
+          "Device.Ghn.Interface.{i}.";
+        uses ghn-interface-g;
+        list associated-device {
+          key "index";
+          description
+            "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.";
+          reference
+            "Device.Ghn.Interface.{i}.AssociatedDevice.{i}.";
+          uses interface-associated-device-g;
+        }
+        container dm-info {
+          description
+            "Container for object class Device.Ghn.Interface.{i}.DMInfo.";
+          reference
+            "Device.Ghn.Interface.{i}.DMInfo.";
+          uses interface-dm-info-g;
+        }
+        container sc-info {
+          description
+            "Container for object class Device.Ghn.Interface.{i}.SCInfo.";
+          reference
+            "Device.Ghn.Interface.{i}.SCInfo.";
+          uses interface-sc-info-g;
+        }
+        list sm-masked-band {
+          key "index";
+          description
+            "Device.Ghn.Interface.{i}.SMMaskedBand.{i}.";
+          reference
+            "Device.Ghn.Interface.{i}.SMMaskedBand.{i}.";
+          uses interface-sm-masked-band-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.Ghn.Interface.{i}.Stats.";
+          reference
+            "Device.Ghn.Interface.{i}.Stats.";
+          uses ghn-interface-stats-g;
+        }
+      }
+    }
+    container hpna {
+      description
+        "Container for object class Device.HPNA.";
+      reference
+        "Device.HPNA.";
+      uses device-hpna-g;
+      container diagnostics {
+        description
+          "Container for object class Device.HPNA.Diagnostics.";
+        reference
+          "Device.HPNA.Diagnostics.";
+        uses hpna-diagnostics-g;
+        container phy-throughput {
+          description
+            "Container for object class Device.HPNA.Diagnostics.PHYThroughput.";
+          reference
+            "Device.HPNA.Diagnostics.PHYThroughput.";
+          uses hpna-diagnostics-phy-throughput-g;
+          list result {
+            key "index";
+            description
+              "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.";
+            reference
+              "Device.HPNA.Diagnostics.PHYThroughput.Result.{i}.";
+            uses diagnostics-phy-throughput-result-g;
+          }
+        }
+        container performance-monitoring {
+          description
+            "Container for object class Device.HPNA.Diagnostics.PerformanceMonitoring.";
+          reference
+            "Device.HPNA.Diagnostics.PerformanceMonitoring.";
+          uses hpna-diagnostics-performance-monitoring-g;
+          container channels {
+            description
+              "Container for object class Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.";
+            reference
+              "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.";
+            uses diagnostics-performance-monitoring-channels-g;
+            list channel {
+              key "index";
+              description
+                "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.";
+              reference
+                "Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.";
+              uses performance-monitoring-channels-channel-g;
+            }
+          }
+          container nodes {
+            description
+              "Container for object class Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.";
+            reference
+              "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.";
+            uses diagnostics-performance-monitoring-nodes-g;
+            list node {
+              key "index";
+              description
+                "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.";
+              reference
+                "Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}.";
+              uses performance-monitoring-nodes-node-g;
+            }
+          }
+        }
+      }
+      list interface {
+        key "index";
+        description
+          "Device.HPNA.Interface.{i}.";
+        reference
+          "Device.HPNA.Interface.{i}.";
+        uses hpna-interface-g;
+        list associated-device {
+          key "index";
+          description
+            "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.";
+          reference
+            "Device.HPNA.Interface.{i}.AssociatedDevice.{i}.";
+          uses hpna-interface-associated-device-g;
+        }
+        container qo-s {
+          description
+            "Container for object class Device.HPNA.Interface.{i}.QoS.";
+          reference
+            "Device.HPNA.Interface.{i}.QoS.";
+          uses interface-qo-s-g;
+          list flow-spec {
+            key "index";
+            description
+              "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.";
+            reference
+              "Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.";
+            uses qo-s-flow-spec-g;
+          }
+        }
+        container stats {
+          description
+            "Container for object class Device.HPNA.Interface.{i}.Stats.";
+          reference
+            "Device.HPNA.Interface.{i}.Stats.";
+          uses hpna-interface-stats-g;
+        }
+      }
+    }
+    container home-plug {
+      description
+        "Container for object class Device.HomePlug.";
+      reference
+        "Device.HomePlug.";
+      uses device-home-plug-g;
+      list interface {
+        key "index";
+        description
+          "Device.HomePlug.Interface.{i}.";
+        reference
+          "Device.HomePlug.Interface.{i}.";
+        uses home-plug-interface-g;
+        list associated-device {
+          key "index";
+          description
+            "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.";
+          reference
+            "Device.HomePlug.Interface.{i}.AssociatedDevice.{i}.";
+          uses home-plug-interface-associated-device-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.HomePlug.Interface.{i}.Stats.";
+          reference
+            "Device.HomePlug.Interface.{i}.Stats.";
+          uses home-plug-interface-stats-g;
+        }
+      }
+    }
+    container hosts {
+      description
+        "Container for object class Device.Hosts.";
+      reference
+        "Device.Hosts.";
+      uses device-hosts-g;
+      list host {
+        key "index";
+        description
+          "Device.Hosts.Host.{i}.";
+        reference
+          "Device.Hosts.Host.{i}.";
+        uses hosts-host-g;
+        list ipv4-address {
+          key "index";
+          description
+            "Device.Hosts.Host.{i}.IPv4Address.{i}.";
+          reference
+            "Device.Hosts.Host.{i}.IPv4Address.{i}.";
+          uses host-ipv4-address-g;
+        }
+        list ipv6-address {
+          key "index";
+          description
+            "Device.Hosts.Host.{i}.IPv6Address.{i}.";
+          reference
+            "Device.Hosts.Host.{i}.IPv6Address.{i}.";
+          uses host-ipv6-address-g;
+        }
+        container wan-stats {
+          description
+            "Container for object class Device.Hosts.Host.{i}.WANStats.";
+          reference
+            "Device.Hosts.Host.{i}.WANStats.";
+          uses host-wan-stats-g;
+        }
+      }
+    }
+    container ieee1905 {
+      description
+        "Container for object class Device.IEEE1905.";
+      reference
+        "Device.IEEE1905.";
+      uses device-ieee1905-g;
+      container al {
+        description
+          "Container for object class Device.IEEE1905.AL.";
+        reference
+          "Device.IEEE1905.AL.";
+        uses ieee1905-al-g;
+        container forwarding-table {
+          description
+            "Container for object class Device.IEEE1905.AL.ForwardingTable.";
+          reference
+            "Device.IEEE1905.AL.ForwardingTable.";
+          uses al-forwarding-table-g;
+          list forwarding-rule {
+            key "index";
+            description
+              "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.";
+            reference
+              "Device.IEEE1905.AL.ForwardingTable.ForwardingRule.{i}.";
+            uses forwarding-table-forwarding-rule-g;
+          }
+        }
+        list interface {
+          key "index";
+          description
+            "Device.IEEE1905.AL.Interface.{i}.";
+          reference
+            "Device.IEEE1905.AL.Interface.{i}.";
+          uses al-interface-g;
+          list link {
+            key "index";
+            description
+              "Device.IEEE1905.AL.Interface.{i}.Link.{i}.";
+            reference
+              "Device.IEEE1905.AL.Interface.{i}.Link.{i}.";
+            uses interface-link-g;
+            container metric {
+              description
+                "Container for object class Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.";
+              reference
+                "Device.IEEE1905.AL.Interface.{i}.Link.{i}.Metric.";
+              uses link-metric-g;
+            }
+          }
+          list vendor-properties {
+            key "index";
+            description
+              "Device.IEEE1905.AL.Interface.{i}.VendorProperties.{i}.";
+            reference
+              "Device.IEEE1905.AL.Interface.{i}.VendorProperties.{i}.";
+            uses interface-vendor-properties-g;
+          }
+        }
+        container network-topology {
+          description
+            "Container for object class Device.IEEE1905.AL.NetworkTopology.";
+          reference
+            "Device.IEEE1905.AL.NetworkTopology.";
+          uses al-network-topology-g;
+          list change-log {
+            key "index";
+            description
+              "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.";
+            reference
+              "Device.IEEE1905.AL.NetworkTopology.ChangeLog.{i}.";
+            uses network-topology-change-log-g;
+          }
+          list ieee1905-device {
+            key "index";
+            description
+              "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.";
+            reference
+              "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.";
+            uses network-topology-ieee1905-device-g;
+            list bridging-tuple {
+              key "index";
+              description
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.BridgingTuple.{i}.";
+              reference
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.BridgingTuple.{i}.";
+              uses ieee1905-device-bridging-tuple-g;
+            }
+            list ieee1905-neighbor {
+              key "index";
+              description
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.";
+              reference
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.";
+              uses ieee1905-device-ieee1905-neighbor-g;
+              list metric {
+                key "index";
+                description
+                  "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.";
+                reference
+                  "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IEEE1905Neighbor.{i}.Metric.{i}.";
+                uses ieee1905-neighbor-metric-g;
+              }
+            }
+            list ipv4-address {
+              key "index";
+              description
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.";
+              reference
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv4Address.{i}.";
+              uses ieee1905-device-ipv4-address-g;
+            }
+            list ipv6-address {
+              key "index";
+              description
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.";
+              reference
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.IPv6Address.{i}.";
+              uses ieee1905-device-ipv6-address-g;
+            }
+            list interface {
+              key "index";
+              description
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.";
+              reference
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.Interface.{i}.";
+              uses ieee1905-device-interface-g;
+            }
+            list l2-neighbor {
+              key "index";
+              description
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2Neighbor.{i}.";
+              reference
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.L2Neighbor.{i}.";
+              uses ieee1905-device-l2-neighbor-g;
+            }
+            list non-ieee1905-neighbor {
+              key "index";
+              description
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905Neighbor.{i}.";
+              reference
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.NonIEEE1905Neighbor.{i}.";
+              uses ieee1905-device-non-ieee1905-neighbor-g;
+            }
+            list vendor-properties {
+              key "index";
+              description
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorProperties.{i}.";
+              reference
+                "Device.IEEE1905.AL.NetworkTopology.IEEE1905Device.{i}.VendorProperties.{i}.";
+              uses ieee1905-device-vendor-properties-g;
+            }
+          }
+        }
+        container networking-registrar {
+          description
+            "Container for object class Device.IEEE1905.AL.NetworkingRegistrar.";
+          reference
+            "Device.IEEE1905.AL.NetworkingRegistrar.";
+          uses al-networking-registrar-g;
+        }
+        container security {
+          description
+            "Container for object class Device.IEEE1905.AL.Security.";
+          reference
+            "Device.IEEE1905.AL.Security.";
+          uses al-security-g;
+        }
+      }
+    }
+    container ieee8021x {
+      description
+        "Container for object class Device.IEEE8021x.";
+      reference
+        "Device.IEEE8021x.";
+      uses device-ieee8021x-g;
+      list supplicant {
+        key "index";
+        description
+          "Device.IEEE8021x.Supplicant.{i}.";
+        reference
+          "Device.IEEE8021x.Supplicant.{i}.";
+        uses ieee8021x-supplicant-g;
+        container eapm-d5 {
+          description
+            "Container for object class Device.IEEE8021x.Supplicant.{i}.EAPMD5.";
+          reference
+            "Device.IEEE8021x.Supplicant.{i}.EAPMD5.";
+          uses supplicant-eapm-d5-g;
+        }
+        container eaptls {
+          description
+            "Container for object class Device.IEEE8021x.Supplicant.{i}.EAPTLS.";
+          reference
+            "Device.IEEE8021x.Supplicant.{i}.EAPTLS.";
+          uses supplicant-eaptls-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.IEEE8021x.Supplicant.{i}.Stats.";
+          reference
+            "Device.IEEE8021x.Supplicant.{i}.Stats.";
+          uses supplicant-stats-g;
+        }
+      }
+    }
+    container ip {
+      description
+        "Container for object class Device.IP.";
+      reference
+        "Device.IP.";
+      uses device-ip-g;
+      list active-port {
+        key "index";
+        description
+          "Device.IP.ActivePort.{i}.";
+        reference
+          "Device.IP.ActivePort.{i}.";
+        uses ip-active-port-g;
+      }
+      container diagnostics {
+        description
+          "Container for object class Device.IP.Diagnostics.";
+        reference
+          "Device.IP.Diagnostics.";
+        uses ip-diagnostics-g;
+        container download-diagnostics {
+          description
+            "Container for object class Device.IP.Diagnostics.DownloadDiagnostics.";
+          reference
+            "Device.IP.Diagnostics.DownloadDiagnostics.";
+          uses diagnostics-download-diagnostics-g;
+          list incremental-result {
+            key "index";
+            description
+              "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.";
+            reference
+              "Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.";
+            uses download-diagnostics-incremental-result-g;
+          }
+          list per-connection-result {
+            key "index";
+            description
+              "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.";
+            reference
+              "Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.";
+            uses download-diagnostics-per-connection-result-g;
+          }
+        }
+        container ip-ping {
+          description
+            "Container for object class Device.IP.Diagnostics.IPPing.";
+          reference
+            "Device.IP.Diagnostics.IPPing.";
+          uses diagnostics-ip-ping-g;
+        }
+        container server-selection-diagnostics {
+          description
+            "Container for object class Device.IP.Diagnostics.ServerSelectionDiagnostics.";
+          reference
+            "Device.IP.Diagnostics.ServerSelectionDiagnostics.";
+          uses diagnostics-server-selection-diagnostics-g;
+        }
+        container trace-route {
+          description
+            "Container for object class Device.IP.Diagnostics.TraceRoute.";
+          reference
+            "Device.IP.Diagnostics.TraceRoute.";
+          uses diagnostics-trace-route-g;
+          list route-hops {
+            key "index";
+            description
+              "Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.";
+            reference
+              "Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.";
+            uses trace-route-route-hops-g;
+          }
+        }
+        container udp-echo-config {
+          description
+            "Container for object class Device.IP.Diagnostics.UDPEchoConfig.";
+          reference
+            "Device.IP.Diagnostics.UDPEchoConfig.";
+          uses diagnostics-udp-echo-config-g;
+        }
+        container udp-echo-diagnostics {
+          description
+            "Container for object class Device.IP.Diagnostics.UDPEchoDiagnostics.";
+          reference
+            "Device.IP.Diagnostics.UDPEchoDiagnostics.";
+          uses diagnostics-udp-echo-diagnostics-g;
+          list individual-packet-result {
+            key "index";
+            description
+              "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.";
+            reference
+              "Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.";
+            uses udp-echo-diagnostics-individual-packet-result-g;
+          }
+        }
+        container upload-diagnostics {
+          description
+            "Container for object class Device.IP.Diagnostics.UploadDiagnostics.";
+          reference
+            "Device.IP.Diagnostics.UploadDiagnostics.";
+          uses diagnostics-upload-diagnostics-g;
+          list incremental-result {
+            key "index";
+            description
+              "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.";
+            reference
+              "Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.";
+            uses upload-diagnostics-incremental-result-g;
+          }
+          list per-connection-result {
+            key "index";
+            description
+              "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.";
+            reference
+              "Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.";
+            uses upload-diagnostics-per-connection-result-g;
+          }
+        }
+      }
+      list interface {
+        key "index";
+        description
+          "Device.IP.Interface.{i}.";
+        reference
+          "Device.IP.Interface.{i}.";
+        uses ip-interface-g;
+        list ipv4-address {
+          key "index";
+          description
+            "Device.IP.Interface.{i}.IPv4Address.{i}.";
+          reference
+            "Device.IP.Interface.{i}.IPv4Address.{i}.";
+          uses interface-ipv4-address-g;
+        }
+        list ipv6-address {
+          key "index";
+          description
+            "Device.IP.Interface.{i}.IPv6Address.{i}.";
+          reference
+            "Device.IP.Interface.{i}.IPv6Address.{i}.";
+          uses interface-ipv6-address-g;
+        }
+        list ipv6-prefix {
+          key "index";
+          description
+            "Device.IP.Interface.{i}.IPv6Prefix.{i}.";
+          reference
+            "Device.IP.Interface.{i}.IPv6Prefix.{i}.";
+          uses interface-ipv6-prefix-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.IP.Interface.{i}.Stats.";
+          reference
+            "Device.IP.Interface.{i}.Stats.";
+          uses ip-interface-stats-g;
+        }
+        list twamp-reflector {
+          key "index";
+          description
+            "Device.IP.Interface.{i}.TWAMPReflector.{i}.";
+          reference
+            "Device.IP.Interface.{i}.TWAMPReflector.{i}.";
+          uses interface-twamp-reflector-g;
+        }
+      }
+    }
+    container i-psec {
+      description
+        "Container for object class Device.IPsec.";
+      reference
+        "Device.IPsec.";
+      uses device-i-psec-g;
+      list filter {
+        key "index";
+        description
+          "Device.IPsec.Filter.{i}.";
+        reference
+          "Device.IPsec.Filter.{i}.";
+        uses i-psec-filter-g;
+      }
+      list ikev2-sa {
+        key "index";
+        description
+          "Device.IPsec.IKEv2SA.{i}.";
+        reference
+          "Device.IPsec.IKEv2SA.{i}.";
+        uses i-psec-ikev2-sa-g;
+        list child-sa {
+          key "index";
+          description
+            "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.";
+          reference
+            "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.";
+          uses ikev2-sa-child-sa-g;
+          container stats {
+            description
+              "Container for object class Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.";
+            reference
+              "Device.IPsec.IKEv2SA.{i}.ChildSA.{i}.Stats.";
+            uses child-sa-stats-g;
+          }
+        }
+        list received-cp-attr {
+          key "index";
+          description
+            "Device.IPsec.IKEv2SA.{i}.ReceivedCPAttr.{i}.";
+          reference
+            "Device.IPsec.IKEv2SA.{i}.ReceivedCPAttr.{i}.";
+          uses ikev2-sa-received-cp-attr-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.IPsec.IKEv2SA.{i}.Stats.";
+          reference
+            "Device.IPsec.IKEv2SA.{i}.Stats.";
+          uses ikev2-sa-stats-g;
+        }
+      }
+      list profile {
+        key "index";
+        description
+          "Device.IPsec.Profile.{i}.";
+        reference
+          "Device.IPsec.Profile.{i}.";
+        uses i-psec-profile-g;
+        list sent-cp-attr {
+          key "index";
+          description
+            "Device.IPsec.Profile.{i}.SentCPAttr.{i}.";
+          reference
+            "Device.IPsec.Profile.{i}.SentCPAttr.{i}.";
+          uses profile-sent-cp-attr-g;
+        }
+      }
+      container stats {
+        description
+          "Container for object class Device.IPsec.Stats.";
+        reference
+          "Device.IPsec.Stats.";
+        uses i-psec-stats-g;
+      }
+      list tunnel {
+        key "index";
+        description
+          "Device.IPsec.Tunnel.{i}.";
+        reference
+          "Device.IPsec.Tunnel.{i}.";
+        uses i-psec-tunnel-g;
+        container stats {
+          description
+            "Container for object class Device.IPsec.Tunnel.{i}.Stats.";
+          reference
+            "Device.IPsec.Tunnel.{i}.Stats.";
+          uses i-psec-tunnel-stats-g;
+        }
+      }
+    }
+    container ipv6rd {
+      description
+        "Container for object class Device.IPv6rd.";
+      reference
+        "Device.IPv6rd.";
+      uses device-ipv6rd-g;
+      list interface-setting {
+        key "index";
+        description
+          "Device.IPv6rd.InterfaceSetting.{i}.";
+        reference
+          "Device.IPv6rd.InterfaceSetting.{i}.";
+        uses ipv6rd-interface-setting-g;
+      }
+    }
+    list interface-stack {
+      key "index";
+      description
+        "Device.InterfaceStack.{i}.";
+      reference
+        "Device.InterfaceStack.{i}.";
+      uses device-interface-stack-g;
+    }
+    container l2-tpv3 {
+      description
+        "Container for object class Device.L2TPv3.";
+      reference
+        "Device.L2TPv3.";
+      uses device-l2-tpv3-g;
+      list filter {
+        key "index";
+        description
+          "Device.L2TPv3.Filter.{i}.";
+        reference
+          "Device.L2TPv3.Filter.{i}.";
+        uses l2-tpv3-filter-g;
+      }
+      list tunnel {
+        key "index";
+        description
+          "Device.L2TPv3.Tunnel.{i}.";
+        reference
+          "Device.L2TPv3.Tunnel.{i}.";
+        uses l2-tpv3-tunnel-g;
+        list interface {
+          key "index";
+          description
+            "Device.L2TPv3.Tunnel.{i}.Interface.{i}.";
+          reference
+            "Device.L2TPv3.Tunnel.{i}.Interface.{i}.";
+          uses l2-tpv3-tunnel-interface-g;
+          container stats {
+            description
+              "Container for object class Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.";
+            reference
+              "Device.L2TPv3.Tunnel.{i}.Interface.{i}.Stats.";
+            uses l2-tpv3-tunnel-interface-stats-g;
+          }
+        }
+        container stats {
+          description
+            "Container for object class Device.L2TPv3.Tunnel.{i}.Stats.";
+          reference
+            "Device.L2TPv3.Tunnel.{i}.Stats.";
+          uses l2-tpv3-tunnel-stats-g;
+        }
+        container udp {
+          description
+            "Container for object class Device.L2TPv3.Tunnel.{i}.UDP.";
+          reference
+            "Device.L2TPv3.Tunnel.{i}.UDP.";
+          uses tunnel-udp-g;
+        }
+      }
+    }
+    container lan-config-security {
+      description
+        "Container for object class Device.LANConfigSecurity.";
+      reference
+        "Device.LANConfigSecurity.";
+      uses device-lan-config-security-g;
+    }
+    container le-ds {
+      description
+        "Container for object class Device.LEDs.";
+      reference
+        "Device.LEDs.";
+      uses device-le-ds-g;
+      list led {
+        key "index";
+        description
+          "Device.LEDs.LED.{i}.";
+        reference
+          "Device.LEDs.LED.{i}.";
+        uses le-ds-led-g;
+        container current-cycle-element {
+          description
+            "Container for object class Device.LEDs.LED.{i}.CurrentCycleElement.";
+          reference
+            "Device.LEDs.LED.{i}.CurrentCycleElement.";
+          uses led-current-cycle-element-g;
+        }
+        list cycle-element {
+          key "index";
+          description
+            "Device.LEDs.LED.{i}.CycleElement.{i}.";
+          reference
+            "Device.LEDs.LED.{i}.CycleElement.{i}.";
+          uses led-cycle-element-g;
+        }
+      }
+    }
+    container lldp {
+      description
+        "Container for object class Device.LLDP.";
+      reference
+        "Device.LLDP.";
+      uses device-lldp-g;
+      container discovery {
+        description
+          "Container for object class Device.LLDP.Discovery.";
+        reference
+          "Device.LLDP.Discovery.";
+        uses lldp-discovery-g;
+        list device {
+          key "index";
+          description
+            "Device.LLDP.Discovery.Device.{i}.";
+          reference
+            "Device.LLDP.Discovery.Device.{i}.";
+          uses discovery-device-g;
+          container device-information {
+            description
+              "Container for object class Device.LLDP.Discovery.Device.{i}.DeviceInformation.";
+            reference
+              "Device.LLDP.Discovery.Device.{i}.DeviceInformation.";
+            uses device-device-information-g;
+            list vendor-specific {
+              key "index";
+              description
+                "Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecific.{i}.";
+              reference
+                "Device.LLDP.Discovery.Device.{i}.DeviceInformation.VendorSpecific.{i}.";
+              uses device-information-vendor-specific-g;
+            }
+          }
+          list port {
+            key "index";
+            description
+              "Device.LLDP.Discovery.Device.{i}.Port.{i}.";
+            reference
+              "Device.LLDP.Discovery.Device.{i}.Port.{i}.";
+            uses device-port-g;
+            container link-information {
+              description
+                "Container for object class Device.LLDP.Discovery.Device.{i}.Port.{i}.LinkInformation.";
+              reference
+                "Device.LLDP.Discovery.Device.{i}.Port.{i}.LinkInformation.";
+              uses port-link-information-g;
+            }
+          }
+        }
+      }
+    }
+    container lmap {
+      description
+        "Container for object class Device.LMAP.";
+      reference
+        "Device.LMAP.";
+      uses device-lmap-g;
+      list event {
+        key "index";
+        description
+          "Device.LMAP.Event.{i}.";
+        reference
+          "Device.LMAP.Event.{i}.";
+        uses lmap-event-g;
+        container calendar-timer {
+          description
+            "Container for object class Device.LMAP.Event.{i}.CalendarTimer.";
+          reference
+            "Device.LMAP.Event.{i}.CalendarTimer.";
+          uses event-calendar-timer-g;
+        }
+        container one-off {
+          description
+            "Container for object class Device.LMAP.Event.{i}.OneOff.";
+          reference
+            "Device.LMAP.Event.{i}.OneOff.";
+          uses event-one-off-g;
+        }
+        container periodic-timer {
+          description
+            "Container for object class Device.LMAP.Event.{i}.PeriodicTimer.";
+          reference
+            "Device.LMAP.Event.{i}.PeriodicTimer.";
+          uses event-periodic-timer-g;
+        }
+      }
+      list measurement-agent {
+        key "index";
+        description
+          "Device.LMAP.MeasurementAgent.{i}.";
+        reference
+          "Device.LMAP.MeasurementAgent.{i}.";
+        uses lmap-measurement-agent-g;
+        list communication-channel {
+          key "index";
+          description
+            "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.";
+          reference
+            "Device.LMAP.MeasurementAgent.{i}.CommunicationChannel.{i}.";
+          uses measurement-agent-communication-channel-g;
+        }
+        container controller {
+          description
+            "Container for object class Device.LMAP.MeasurementAgent.{i}.Controller.";
+          reference
+            "Device.LMAP.MeasurementAgent.{i}.Controller.";
+          uses measurement-agent-controller-g;
+        }
+        list instruction {
+          key "index";
+          description
+            "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.";
+          reference
+            "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.";
+          uses measurement-agent-instruction-g;
+          list measurement-suppression {
+            key "index";
+            description
+              "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.";
+            reference
+              "Device.LMAP.MeasurementAgent.{i}.Instruction.{i}.MeasurementSuppression.{i}.";
+            uses instruction-measurement-suppression-g;
+          }
+        }
+        list schedule {
+          key "index";
+          description
+            "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.";
+          reference
+            "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.";
+          uses measurement-agent-schedule-g;
+          list action {
+            key "index";
+            description
+              "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.";
+            reference
+              "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.";
+            uses schedule-action-g;
+            list option {
+              key "index";
+              description
+                "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.";
+              reference
+                "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.";
+              uses action-option-g;
+            }
+            container stats {
+              description
+                "Container for object class Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.";
+              reference
+                "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Stats.";
+              uses action-stats-g;
+            }
+          }
+          container stats {
+            description
+              "Container for object class Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.";
+            reference
+              "Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Stats.";
+            uses schedule-stats-g;
+          }
+        }
+        list task {
+          key "index";
+          description
+            "Device.LMAP.MeasurementAgent.{i}.Task.{i}.";
+          reference
+            "Device.LMAP.MeasurementAgent.{i}.Task.{i}.";
+          uses measurement-agent-task-g;
+          list option {
+            key "index";
+            description
+              "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.";
+            reference
+              "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.";
+            uses task-option-g;
+          }
+          list registry {
+            key "index";
+            description
+              "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.";
+            reference
+              "Device.LMAP.MeasurementAgent.{i}.Task.{i}.Registry.{i}.";
+            uses task-registry-g;
+          }
+        }
+        list task-capability {
+          key "index";
+          description
+            "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.";
+          reference
+            "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.";
+          uses measurement-agent-task-capability-g;
+          list registry {
+            key "index";
+            description
+              "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Registry.{i}.";
+            reference
+              "Device.LMAP.MeasurementAgent.{i}.TaskCapability.{i}.Registry.{i}.";
+            uses task-capability-registry-g;
+          }
+        }
+      }
+      list report {
+        key "index";
+        description
+          "Device.LMAP.Report.{i}.";
+        reference
+          "Device.LMAP.Report.{i}.";
+        uses lmap-report-g;
+        list result {
+          key "index";
+          description
+            "Device.LMAP.Report.{i}.Result.{i}.";
+          reference
+            "Device.LMAP.Report.{i}.Result.{i}.";
+          uses report-result-g;
+          list conflict {
+            key "index";
+            description
+              "Device.LMAP.Report.{i}.Result.{i}.Conflict.{i}.";
+            reference
+              "Device.LMAP.Report.{i}.Result.{i}.Conflict.{i}.";
+            uses result-conflict-g;
+          }
+          list option {
+            key "index";
+            description
+              "Device.LMAP.Report.{i}.Result.{i}.Option.{i}.";
+            reference
+              "Device.LMAP.Report.{i}.Result.{i}.Option.{i}.";
+            uses result-option-g;
+          }
+          list report-table {
+            key "index";
+            description
+              "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.";
+            reference
+              "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.";
+            uses result-report-table-g;
+            list registry {
+              key "index";
+              description
+                "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.Registry.{i}.";
+              reference
+                "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.Registry.{i}.";
+              uses report-table-registry-g;
+            }
+            list result-row {
+              key "index";
+              description
+                "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.ResultRow.{i}.";
+              reference
+                "Device.LMAP.Report.{i}.Result.{i}.ReportTable.{i}.ResultRow.{i}.";
+              uses report-table-result-row-g;
+            }
+          }
+        }
+      }
+    }
+    container map {
+      description
+        "Container for object class Device.MAP.";
+      reference
+        "Device.MAP.";
+      uses device-map-g;
+      list domain {
+        key "index";
+        description
+          "Device.MAP.Domain.{i}.";
+        reference
+          "Device.MAP.Domain.{i}.";
+        uses map-domain-g;
+        container interface {
+          description
+            "Container for object class Device.MAP.Domain.{i}.Interface.";
+          reference
+            "Device.MAP.Domain.{i}.Interface.";
+          uses domain-interface-g;
+          container stats {
+            description
+              "Container for object class Device.MAP.Domain.{i}.Interface.Stats.";
+            reference
+              "Device.MAP.Domain.{i}.Interface.Stats.";
+            uses domain-interface-stats-g;
+          }
+        }
+        list rule {
+          key "index";
+          description
+            "Device.MAP.Domain.{i}.Rule.{i}.";
+          reference
+            "Device.MAP.Domain.{i}.Rule.{i}.";
+          uses domain-rule-g;
+        }
+      }
+    }
+    container mqtt {
+      description
+        "Container for object class Device.MQTT.";
+      reference
+        "Device.MQTT.";
+      uses device-mqtt-g;
+      list broker {
+        key "index";
+        description
+          "Device.MQTT.Broker.{i}.";
+        reference
+          "Device.MQTT.Broker.{i}.";
+        uses mqtt-broker-g;
+        list bridge {
+          key "index";
+          description
+            "Device.MQTT.Broker.{i}.Bridge.{i}.";
+          reference
+            "Device.MQTT.Broker.{i}.Bridge.{i}.";
+          uses broker-bridge-g;
+          list server {
+            key "index";
+            description
+              "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.";
+            reference
+              "Device.MQTT.Broker.{i}.Bridge.{i}.Server.{i}.";
+            uses bridge-server-g;
+          }
+          list subscription {
+            key "index";
+            description
+              "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.";
+            reference
+              "Device.MQTT.Broker.{i}.Bridge.{i}.Subscription.{i}.";
+            uses bridge-subscription-g;
+          }
+        }
+        container stats {
+          description
+            "Container for object class Device.MQTT.Broker.{i}.Stats.";
+          reference
+            "Device.MQTT.Broker.{i}.Stats.";
+          uses broker-stats-g;
+        }
+      }
+      container capabilities {
+        description
+          "Container for object class Device.MQTT.Capabilities.";
+        reference
+          "Device.MQTT.Capabilities.";
+        uses mqtt-capabilities-g;
+      }
+      list client {
+        key "index";
+        description
+          "Device.MQTT.Client.{i}.";
+        reference
+          "Device.MQTT.Client.{i}.";
+        uses mqtt-client-g;
+        container stats {
+          description
+            "Container for object class Device.MQTT.Client.{i}.Stats.";
+          reference
+            "Device.MQTT.Client.{i}.Stats.";
+          uses client-stats-g;
+        }
+        list subscription {
+          key "index";
+          description
+            "Device.MQTT.Client.{i}.Subscription.{i}.";
+          reference
+            "Device.MQTT.Client.{i}.Subscription.{i}.";
+          uses client-subscription-g;
+        }
+      }
+    }
+    container management-server {
+      description
+        "Container for object class Device.ManagementServer.";
+      reference
+        "Device.ManagementServer.";
+      uses device-management-server-g;
+      container autonomous-transfer-complete-policy {
+        description
+          "Container for object class Device.ManagementServer.AutonomousTransferCompletePolicy.";
+        reference
+          "Device.ManagementServer.AutonomousTransferCompletePolicy.";
+        uses management-server-autonomous-transfer-complete-policy-g;
+      }
+      container du-state-change-compl-policy {
+        description
+          "Container for object class Device.ManagementServer.DUStateChangeComplPolicy.";
+        reference
+          "Device.ManagementServer.DUStateChangeComplPolicy.";
+        uses management-server-du-state-change-compl-policy-g;
+      }
+      container download-availability {
+        description
+          "Container for object class Device.ManagementServer.DownloadAvailability.";
+        reference
+          "Device.ManagementServer.DownloadAvailability.";
+        uses management-server-download-availability-g;
+        container announcement {
+          description
+            "Container for object class Device.ManagementServer.DownloadAvailability.Announcement.";
+          reference
+            "Device.ManagementServer.DownloadAvailability.Announcement.";
+          uses download-availability-announcement-g;
+          list group {
+            key "index";
+            description
+              "Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.";
+            reference
+              "Device.ManagementServer.DownloadAvailability.Announcement.Group.{i}.";
+            uses announcement-group-g;
+          }
+        }
+        container query {
+          description
+            "Container for object class Device.ManagementServer.DownloadAvailability.Query.";
+          reference
+            "Device.ManagementServer.DownloadAvailability.Query.";
+          uses download-availability-query-g;
+        }
+      }
+      list embedded-device {
+        key "index";
+        description
+          "Device.ManagementServer.EmbeddedDevice.{i}.";
+        reference
+          "Device.ManagementServer.EmbeddedDevice.{i}.";
+        uses management-server-embedded-device-g;
+      }
+      container heartbeat-policy {
+        description
+          "Container for object class Device.ManagementServer.HeartbeatPolicy.";
+        reference
+          "Device.ManagementServer.HeartbeatPolicy.";
+        uses management-server-heartbeat-policy-g;
+      }
+      list inform-parameter {
+        key "index";
+        description
+          "Device.ManagementServer.InformParameter.{i}.";
+        reference
+          "Device.ManagementServer.InformParameter.{i}.";
+        uses management-server-inform-parameter-g;
+      }
+      list manageable-device {
+        key "index";
+        description
+          "Device.ManagementServer.ManageableDevice.{i}.";
+        reference
+          "Device.ManagementServer.ManageableDevice.{i}.";
+        uses management-server-manageable-device-g;
+      }
+      container standby-policy {
+        description
+          "Container for object class Device.ManagementServer.StandbyPolicy.";
+        reference
+          "Device.ManagementServer.StandbyPolicy.";
+        uses management-server-standby-policy-g;
+      }
+      list virtual-device {
+        key "index";
+        description
+          "Device.ManagementServer.VirtualDevice.{i}.";
+        reference
+          "Device.ManagementServer.VirtualDevice.{i}.";
+        uses management-server-virtual-device-g;
+      }
+    }
+    container mo-ca {
+      description
+        "Container for object class Device.MoCA.";
+      reference
+        "Device.MoCA.";
+      uses device-mo-ca-g;
+      list interface {
+        key "index";
+        description
+          "Device.MoCA.Interface.{i}.";
+        reference
+          "Device.MoCA.Interface.{i}.";
+        uses mo-ca-interface-g;
+        list associated-device {
+          key "index";
+          description
+            "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.";
+          reference
+            "Device.MoCA.Interface.{i}.AssociatedDevice.{i}.";
+          uses mo-ca-interface-associated-device-g;
+        }
+        container qo-s {
+          description
+            "Container for object class Device.MoCA.Interface.{i}.QoS.";
+          reference
+            "Device.MoCA.Interface.{i}.QoS.";
+          uses mo-ca-interface-qo-s-g;
+          list flow-stats {
+            key "index";
+            description
+              "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.";
+            reference
+              "Device.MoCA.Interface.{i}.QoS.FlowStats.{i}.";
+            uses qo-s-flow-stats-g;
+          }
+        }
+        container stats {
+          description
+            "Container for object class Device.MoCA.Interface.{i}.Stats.";
+          reference
+            "Device.MoCA.Interface.{i}.Stats.";
+          uses mo-ca-interface-stats-g;
+        }
+      }
+    }
+    container nat {
+      description
+        "Container for object class Device.NAT.";
+      reference
+        "Device.NAT.";
+      uses device-nat-g;
+      list interface-setting {
+        key "index";
+        description
+          "Device.NAT.InterfaceSetting.{i}.";
+        reference
+          "Device.NAT.InterfaceSetting.{i}.";
+        uses nat-interface-setting-g;
+      }
+      list port-mapping {
+        key "index";
+        description
+          "Device.NAT.PortMapping.{i}.";
+        reference
+          "Device.NAT.PortMapping.{i}.";
+        uses nat-port-mapping-g;
+      }
+    }
+    container neighbor-discovery {
+      description
+        "Container for object class Device.NeighborDiscovery.";
+      reference
+        "Device.NeighborDiscovery.";
+      uses device-neighbor-discovery-g;
+      list interface-setting {
+        key "index";
+        description
+          "Device.NeighborDiscovery.InterfaceSetting.{i}.";
+        reference
+          "Device.NeighborDiscovery.InterfaceSetting.{i}.";
+        uses neighbor-discovery-interface-setting-g;
+      }
+    }
+    container optical {
+      description
+        "Container for object class Device.Optical.";
+      reference
+        "Device.Optical.";
+      uses device-optical-g;
+      list interface {
+        key "index";
+        description
+          "Device.Optical.Interface.{i}.";
+        reference
+          "Device.Optical.Interface.{i}.";
+        uses optical-interface-g;
+        container stats {
+          description
+            "Container for object class Device.Optical.Interface.{i}.Stats.";
+          reference
+            "Device.Optical.Interface.{i}.Stats.";
+          uses optical-interface-stats-g;
+        }
+      }
+    }
+    container pcp {
+      description
+        "Container for object class Device.PCP.";
+      reference
+        "Device.PCP.";
+      uses device-pcp-g;
+      list client {
+        key "index";
+        description
+          "Device.PCP.Client.{i}.";
+        reference
+          "Device.PCP.Client.{i}.";
+        uses pcp-client-g;
+        container pcp-proxy {
+          description
+            "Container for object class Device.PCP.Client.{i}.PCPProxy.";
+          reference
+            "Device.PCP.Client.{i}.PCPProxy.";
+          uses client-pcp-proxy-g;
+        }
+        list server {
+          key "index";
+          description
+            "Device.PCP.Client.{i}.Server.{i}.";
+          reference
+            "Device.PCP.Client.{i}.Server.{i}.";
+          uses pcp-client-server-g;
+          list inbound-mapping {
+            key "index";
+            description
+              "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.";
+            reference
+              "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.";
+            uses server-inbound-mapping-g;
+            list filter {
+              key "index";
+              description
+                "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.";
+              reference
+                "Device.PCP.Client.{i}.Server.{i}.InboundMapping.{i}.Filter.{i}.";
+              uses inbound-mapping-filter-g;
+            }
+          }
+          list outbound-mapping {
+            key "index";
+            description
+              "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.";
+            reference
+              "Device.PCP.Client.{i}.Server.{i}.OutboundMapping.{i}.";
+            uses server-outbound-mapping-g;
+          }
+        }
+        container u-pn-piwf {
+          description
+            "Container for object class Device.PCP.Client.{i}.UPnPIWF.";
+          reference
+            "Device.PCP.Client.{i}.UPnPIWF.";
+          uses client-u-pn-piwf-g;
+        }
+      }
+    }
+    container ppp {
+      description
+        "Container for object class Device.PPP.";
+      reference
+        "Device.PPP.";
+      uses device-ppp-g;
+      list interface {
+        key "index";
+        description
+          "Device.PPP.Interface.{i}.";
+        reference
+          "Device.PPP.Interface.{i}.";
+        uses ppp-interface-g;
+        container ipcp {
+          description
+            "Container for object class Device.PPP.Interface.{i}.IPCP.";
+          reference
+            "Device.PPP.Interface.{i}.IPCP.";
+          uses interface-ipcp-g;
+        }
+        container ipv6-cp {
+          description
+            "Container for object class Device.PPP.Interface.{i}.IPv6CP.";
+          reference
+            "Device.PPP.Interface.{i}.IPv6CP.";
+          uses interface-ipv6-cp-g;
+        }
+        container pp-po-a {
+          description
+            "Container for object class Device.PPP.Interface.{i}.PPPoA.";
+          reference
+            "Device.PPP.Interface.{i}.PPPoA.";
+          uses interface-pp-po-a-g;
+        }
+        container pp-po-e {
+          description
+            "Container for object class Device.PPP.Interface.{i}.PPPoE.";
+          reference
+            "Device.PPP.Interface.{i}.PPPoE.";
+          uses interface-pp-po-e-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.PPP.Interface.{i}.Stats.";
+          reference
+            "Device.PPP.Interface.{i}.Stats.";
+          uses ppp-interface-stats-g;
+        }
+      }
+    }
+    container ptm {
+      description
+        "Container for object class Device.PTM.";
+      reference
+        "Device.PTM.";
+      uses device-ptm-g;
+      list link {
+        key "index";
+        description
+          "Device.PTM.Link.{i}.";
+        reference
+          "Device.PTM.Link.{i}.";
+        uses ptm-link-g;
+        container stats {
+          description
+            "Container for object class Device.PTM.Link.{i}.Stats.";
+          reference
+            "Device.PTM.Link.{i}.Stats.";
+          uses ptm-link-stats-g;
+        }
+      }
+    }
+    container periodic-statistics {
+      description
+        "Container for object class Device.PeriodicStatistics.";
+      reference
+        "Device.PeriodicStatistics.";
+      uses device-periodic-statistics-g;
+      list sample-set {
+        key "index";
+        description
+          "Device.PeriodicStatistics.SampleSet.{i}.";
+        reference
+          "Device.PeriodicStatistics.SampleSet.{i}.";
+        uses periodic-statistics-sample-set-g;
+        list parameter {
+          key "index";
+          description
+            "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.";
+          reference
+            "Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.";
+          uses sample-set-parameter-g;
+        }
+      }
+    }
+    container qo-s {
+      description
+        "Container for object class Device.QoS.";
+      reference
+        "Device.QoS.";
+      uses device-qo-s-g;
+      list app {
+        key "index";
+        description
+          "Device.QoS.App.{i}.";
+        reference
+          "Device.QoS.App.{i}.";
+        uses qo-s-app-g;
+      }
+      list classification {
+        key "index";
+        description
+          "Device.QoS.Classification.{i}.";
+        reference
+          "Device.QoS.Classification.{i}.";
+        uses qo-s-classification-g;
+      }
+      list flow {
+        key "index";
+        description
+          "Device.QoS.Flow.{i}.";
+        reference
+          "Device.QoS.Flow.{i}.";
+        uses qo-s-flow-g;
+      }
+      list policer {
+        key "index";
+        description
+          "Device.QoS.Policer.{i}.";
+        reference
+          "Device.QoS.Policer.{i}.";
+        uses qo-s-policer-g;
+      }
+      list queue {
+        key "index";
+        description
+          "Device.QoS.Queue.{i}.";
+        reference
+          "Device.QoS.Queue.{i}.";
+        uses qo-s-queue-g;
+      }
+      list queue-stats {
+        key "index";
+        description
+          "Device.QoS.QueueStats.{i}.";
+        reference
+          "Device.QoS.QueueStats.{i}.";
+        uses qo-s-queue-stats-g;
+      }
+      list shaper {
+        key "index";
+        description
+          "Device.QoS.Shaper.{i}.";
+        reference
+          "Device.QoS.Shaper.{i}.";
+        uses qo-s-shaper-g;
+      }
+    }
+    container router-advertisement {
+      description
+        "Container for object class Device.RouterAdvertisement.";
+      reference
+        "Device.RouterAdvertisement.";
+      uses device-router-advertisement-g;
+      list interface-setting {
+        key "index";
+        description
+          "Device.RouterAdvertisement.InterfaceSetting.{i}.";
+        reference
+          "Device.RouterAdvertisement.InterfaceSetting.{i}.";
+        uses router-advertisement-interface-setting-g;
+        list option {
+          key "index";
+          description
+            "Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.";
+          reference
+            "Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}.";
+          uses interface-setting-option-g;
+        }
+      }
+    }
+    container routing {
+      description
+        "Container for object class Device.Routing.";
+      reference
+        "Device.Routing.";
+      uses device-routing-g;
+      container rip {
+        description
+          "Container for object class Device.Routing.RIP.";
+        reference
+          "Device.Routing.RIP.";
+        uses routing-rip-g;
+        list interface-setting {
+          key "index";
+          description
+            "Device.Routing.RIP.InterfaceSetting.{i}.";
+          reference
+            "Device.Routing.RIP.InterfaceSetting.{i}.";
+          uses rip-interface-setting-g;
+        }
+      }
+      container route-information {
+        description
+          "Container for object class Device.Routing.RouteInformation.";
+        reference
+          "Device.Routing.RouteInformation.";
+        uses routing-route-information-g;
+        list interface-setting {
+          key "index";
+          description
+            "Device.Routing.RouteInformation.InterfaceSetting.{i}.";
+          reference
+            "Device.Routing.RouteInformation.InterfaceSetting.{i}.";
+          uses route-information-interface-setting-g;
+        }
+      }
+      list router {
+        key "index";
+        description
+          "Device.Routing.Router.{i}.";
+        reference
+          "Device.Routing.Router.{i}.";
+        uses routing-router-g;
+        list ipv4-forwarding {
+          key "index";
+          description
+            "Device.Routing.Router.{i}.IPv4Forwarding.{i}.";
+          reference
+            "Device.Routing.Router.{i}.IPv4Forwarding.{i}.";
+          uses router-ipv4-forwarding-g;
+        }
+        list ipv6-forwarding {
+          key "index";
+          description
+            "Device.Routing.Router.{i}.IPv6Forwarding.{i}.";
+          reference
+            "Device.Routing.Router.{i}.IPv6Forwarding.{i}.";
+          uses router-ipv6-forwarding-g;
+        }
+      }
+    }
+    container security {
+      description
+        "Container for object class Device.Security.";
+      reference
+        "Device.Security.";
+      uses device-security-g;
+      list certificate {
+        key "index";
+        description
+          "Device.Security.Certificate.{i}.";
+        reference
+          "Device.Security.Certificate.{i}.";
+        uses security-certificate-g;
+      }
+    }
+    container self-test-diagnostics {
+      description
+        "Container for object class Device.SelfTestDiagnostics.";
+      reference
+        "Device.SelfTestDiagnostics.";
+      uses device-self-test-diagnostics-g;
+    }
+    container services {
+      description
+        "Container for object class Device.Services.";
+      reference
+        "Device.Services.";
+      uses device-services-g;
+    }
+    container smart-card-readers {
+      description
+        "Container for object class Device.SmartCardReaders.";
+      reference
+        "Device.SmartCardReaders.";
+      uses device-smart-card-readers-g;
+      list smart-card-reader {
+        key "index";
+        description
+          "Device.SmartCardReaders.SmartCardReader.{i}.";
+        reference
+          "Device.SmartCardReaders.SmartCardReader.{i}.";
+        uses smart-card-readers-smart-card-reader-g;
+        container smart-card {
+          description
+            "Container for object class Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.";
+          reference
+            "Device.SmartCardReaders.SmartCardReader.{i}.SmartCard.";
+          uses smart-card-reader-smart-card-g;
+        }
+      }
+    }
+    container software-modules {
+      description
+        "Container for object class Device.SoftwareModules.";
+      reference
+        "Device.SoftwareModules.";
+      uses device-software-modules-g;
+      list deployment-unit {
+        key "index";
+        description
+          "Device.SoftwareModules.DeploymentUnit.{i}.";
+        reference
+          "Device.SoftwareModules.DeploymentUnit.{i}.";
+        uses software-modules-deployment-unit-g;
+      }
+      list exec-env {
+        key "index";
+        description
+          "Device.SoftwareModules.ExecEnv.{i}.";
+        reference
+          "Device.SoftwareModules.ExecEnv.{i}.";
+        uses software-modules-exec-env-g;
+      }
+      list execution-unit {
+        key "index";
+        description
+          "Device.SoftwareModules.ExecutionUnit.{i}.";
+        reference
+          "Device.SoftwareModules.ExecutionUnit.{i}.";
+        uses software-modules-execution-unit-g;
+        container extensions {
+          description
+            "Container for object class Device.SoftwareModules.ExecutionUnit.{i}.Extensions.";
+          reference
+            "Device.SoftwareModules.ExecutionUnit.{i}.Extensions.";
+          uses execution-unit-extensions-g;
+        }
+      }
+    }
+    container time {
+      description
+        "Container for object class Device.Time.";
+      reference
+        "Device.Time.";
+      uses device-time-g;
+    }
+    container upa {
+      description
+        "Container for object class Device.UPA.";
+      reference
+        "Device.UPA.";
+      uses device-upa-g;
+      container diagnostics {
+        description
+          "Container for object class Device.UPA.Diagnostics.";
+        reference
+          "Device.UPA.Diagnostics.";
+        uses upa-diagnostics-g;
+        container interface-measurement {
+          description
+            "Container for object class Device.UPA.Diagnostics.InterfaceMeasurement.";
+          reference
+            "Device.UPA.Diagnostics.InterfaceMeasurement.";
+          uses diagnostics-interface-measurement-g;
+        }
+      }
+      list interface {
+        key "index";
+        description
+          "Device.UPA.Interface.{i}.";
+        reference
+          "Device.UPA.Interface.{i}.";
+        uses upa-interface-g;
+        list active-notch {
+          key "index";
+          description
+            "Device.UPA.Interface.{i}.ActiveNotch.{i}.";
+          reference
+            "Device.UPA.Interface.{i}.ActiveNotch.{i}.";
+          uses interface-active-notch-g;
+        }
+        list associated-device {
+          key "index";
+          description
+            "Device.UPA.Interface.{i}.AssociatedDevice.{i}.";
+          reference
+            "Device.UPA.Interface.{i}.AssociatedDevice.{i}.";
+          uses upa-interface-associated-device-g;
+        }
+        list bridge-for {
+          key "index";
+          description
+            "Device.UPA.Interface.{i}.BridgeFor.{i}.";
+          reference
+            "Device.UPA.Interface.{i}.BridgeFor.{i}.";
+          uses interface-bridge-for-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.UPA.Interface.{i}.Stats.";
+          reference
+            "Device.UPA.Interface.{i}.Stats.";
+          uses upa-interface-stats-g;
+        }
+      }
+    }
+    container u-pn-p {
+      description
+        "Container for object class Device.UPnP.";
+      reference
+        "Device.UPnP.";
+      uses device-u-pn-p-g;
+      container description {
+        description
+          "Container for object class Device.UPnP.Description.";
+        reference
+          "Device.UPnP.Description.";
+        uses u-pn-p-description-g;
+        list device-description {
+          key "index";
+          description
+            "Device.UPnP.Description.DeviceDescription.{i}.";
+          reference
+            "Device.UPnP.Description.DeviceDescription.{i}.";
+          uses description-device-description-g;
+        }
+        list device-instance {
+          key "index";
+          description
+            "Device.UPnP.Description.DeviceInstance.{i}.";
+          reference
+            "Device.UPnP.Description.DeviceInstance.{i}.";
+          uses description-device-instance-g;
+        }
+        list service-instance {
+          key "index";
+          description
+            "Device.UPnP.Description.ServiceInstance.{i}.";
+          reference
+            "Device.UPnP.Description.ServiceInstance.{i}.";
+          uses description-service-instance-g;
+        }
+      }
+      container device {
+        description
+          "Container for object class Device.UPnP.Device.";
+        reference
+          "Device.UPnP.Device.";
+        uses u-pn-p-device-g;
+        container capabilities {
+          description
+            "Container for object class Device.UPnP.Device.Capabilities.";
+          reference
+            "Device.UPnP.Device.Capabilities.";
+          uses device-capabilities-g;
+        }
+      }
+      container discovery {
+        description
+          "Container for object class Device.UPnP.Discovery.";
+        reference
+          "Device.UPnP.Discovery.";
+        uses u-pn-p-discovery-g;
+        list device {
+          key "index";
+          description
+            "Device.UPnP.Discovery.Device.{i}.";
+          reference
+            "Device.UPnP.Discovery.Device.{i}.";
+          uses u-pn-p-discovery-device-g;
+        }
+        list root-device {
+          key "index";
+          description
+            "Device.UPnP.Discovery.RootDevice.{i}.";
+          reference
+            "Device.UPnP.Discovery.RootDevice.{i}.";
+          uses discovery-root-device-g;
+        }
+        list service {
+          key "index";
+          description
+            "Device.UPnP.Discovery.Service.{i}.";
+          reference
+            "Device.UPnP.Discovery.Service.{i}.";
+          uses discovery-service-g;
+        }
+      }
+    }
+    container usb {
+      description
+        "Container for object class Device.USB.";
+      reference
+        "Device.USB.";
+      uses device-usb-g;
+      list interface {
+        key "index";
+        description
+          "Device.USB.Interface.{i}.";
+        reference
+          "Device.USB.Interface.{i}.";
+        uses usb-interface-g;
+        container stats {
+          description
+            "Container for object class Device.USB.Interface.{i}.Stats.";
+          reference
+            "Device.USB.Interface.{i}.Stats.";
+          uses usb-interface-stats-g;
+        }
+      }
+      list port {
+        key "index";
+        description
+          "Device.USB.Port.{i}.";
+        reference
+          "Device.USB.Port.{i}.";
+        uses usb-port-g;
+      }
+      container usb-hosts {
+        description
+          "Container for object class Device.USB.USBHosts.";
+        reference
+          "Device.USB.USBHosts.";
+        uses usb-usb-hosts-g;
+        list host {
+          key "index";
+          description
+            "Device.USB.USBHosts.Host.{i}.";
+          reference
+            "Device.USB.USBHosts.Host.{i}.";
+          uses usb-hosts-host-g;
+          list device {
+            key "index";
+            description
+              "Device.USB.USBHosts.Host.{i}.Device.{i}.";
+            reference
+              "Device.USB.USBHosts.Host.{i}.Device.{i}.";
+            uses host-device-g;
+            list configuration {
+              key "index";
+              description
+                "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.";
+              reference
+                "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.";
+              uses device-configuration-g;
+              list interface {
+                key "index";
+                description
+                  "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.";
+                reference
+                  "Device.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}.";
+                uses configuration-interface-g;
+              }
+            }
+          }
+        }
+      }
+    }
+    container user-interface {
+      description
+        "Container for object class Device.UserInterface.";
+      reference
+        "Device.UserInterface.";
+      uses device-user-interface-g;
+      container local-display {
+        description
+          "Container for object class Device.UserInterface.LocalDisplay.";
+        reference
+          "Device.UserInterface.LocalDisplay.";
+        uses user-interface-local-display-g;
+      }
+      container messages {
+        description
+          "Container for object class Device.UserInterface.Messages.";
+        reference
+          "Device.UserInterface.Messages.";
+        uses user-interface-messages-g;
+      }
+      container remote-access {
+        description
+          "Container for object class Device.UserInterface.RemoteAccess.";
+        reference
+          "Device.UserInterface.RemoteAccess.";
+        uses user-interface-remote-access-g;
+      }
+    }
+    container users {
+      description
+        "Container for object class Device.Users.";
+      reference
+        "Device.Users.";
+      uses device-users-g;
+      list user {
+        key "index";
+        description
+          "Device.Users.User.{i}.";
+        reference
+          "Device.Users.User.{i}.";
+        uses users-user-g;
+      }
+    }
+    container vxlan {
+      description
+        "Container for object class Device.VXLAN.";
+      reference
+        "Device.VXLAN.";
+      uses device-vxlan-g;
+      list filter {
+        key "index";
+        description
+          "Device.VXLAN.Filter.{i}.";
+        reference
+          "Device.VXLAN.Filter.{i}.";
+        uses vxlan-filter-g;
+      }
+      list tunnel {
+        key "index";
+        description
+          "Device.VXLAN.Tunnel.{i}.";
+        reference
+          "Device.VXLAN.Tunnel.{i}.";
+        uses vxlan-tunnel-g;
+        list interface {
+          key "index";
+          description
+            "Device.VXLAN.Tunnel.{i}.Interface.{i}.";
+          reference
+            "Device.VXLAN.Tunnel.{i}.Interface.{i}.";
+          uses vxlan-tunnel-interface-g;
+          container stats {
+            description
+              "Container for object class Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.";
+            reference
+              "Device.VXLAN.Tunnel.{i}.Interface.{i}.Stats.";
+            uses vxlan-tunnel-interface-stats-g;
+          }
+        }
+        container stats {
+          description
+            "Container for object class Device.VXLAN.Tunnel.{i}.Stats.";
+          reference
+            "Device.VXLAN.Tunnel.{i}.Stats.";
+          uses vxlan-tunnel-stats-g;
+        }
+      }
+    }
+    container wi-fi {
+      description
+        "Container for object class Device.WiFi.";
+      reference
+        "Device.WiFi.";
+      uses device-wi-fi-g;
+      list access-point {
+        key "index";
+        description
+          "Device.WiFi.AccessPoint.{i}.";
+        reference
+          "Device.WiFi.AccessPoint.{i}.";
+        uses wi-fi-access-point-g;
+        list ac {
+          key "index";
+          description
+            "Device.WiFi.AccessPoint.{i}.AC.{i}.";
+          reference
+            "Device.WiFi.AccessPoint.{i}.AC.{i}.";
+          uses access-point-ac-g;
+          container stats {
+            description
+              "Container for object class Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.";
+            reference
+              "Device.WiFi.AccessPoint.{i}.AC.{i}.Stats.";
+            uses ac-stats-g;
+          }
+        }
+        container accounting {
+          description
+            "Container for object class Device.WiFi.AccessPoint.{i}.Accounting.";
+          reference
+            "Device.WiFi.AccessPoint.{i}.Accounting.";
+          uses access-point-accounting-g;
+        }
+        list associated-device {
+          key "index";
+          description
+            "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.";
+          reference
+            "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.";
+          uses access-point-associated-device-g;
+          container stats {
+            description
+              "Container for object class Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.";
+            reference
+              "Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.";
+            uses associated-device-stats-g;
+          }
+        }
+        container security {
+          description
+            "Container for object class Device.WiFi.AccessPoint.{i}.Security.";
+          reference
+            "Device.WiFi.AccessPoint.{i}.Security.";
+          uses access-point-security-g;
+        }
+        container wps {
+          description
+            "Container for object class Device.WiFi.AccessPoint.{i}.WPS.";
+          reference
+            "Device.WiFi.AccessPoint.{i}.WPS.";
+          uses access-point-wps-g;
+        }
+      }
+      list end-point {
+        key "index";
+        description
+          "Device.WiFi.EndPoint.{i}.";
+        reference
+          "Device.WiFi.EndPoint.{i}.";
+        uses wi-fi-end-point-g;
+        list ac {
+          key "index";
+          description
+            "Device.WiFi.EndPoint.{i}.AC.{i}.";
+          reference
+            "Device.WiFi.EndPoint.{i}.AC.{i}.";
+          uses end-point-ac-g;
+          container stats {
+            description
+              "Container for object class Device.WiFi.EndPoint.{i}.AC.{i}.Stats.";
+            reference
+              "Device.WiFi.EndPoint.{i}.AC.{i}.Stats.";
+            uses end-point-ac-stats-g;
+          }
+        }
+        list profile {
+          key "index";
+          description
+            "Device.WiFi.EndPoint.{i}.Profile.{i}.";
+          reference
+            "Device.WiFi.EndPoint.{i}.Profile.{i}.";
+          uses end-point-profile-g;
+          container security {
+            description
+              "Container for object class Device.WiFi.EndPoint.{i}.Profile.{i}.Security.";
+            reference
+              "Device.WiFi.EndPoint.{i}.Profile.{i}.Security.";
+            uses profile-security-g;
+          }
+        }
+        container security {
+          description
+            "Container for object class Device.WiFi.EndPoint.{i}.Security.";
+          reference
+            "Device.WiFi.EndPoint.{i}.Security.";
+          uses end-point-security-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.WiFi.EndPoint.{i}.Stats.";
+          reference
+            "Device.WiFi.EndPoint.{i}.Stats.";
+          uses end-point-stats-g;
+        }
+        container wps {
+          description
+            "Container for object class Device.WiFi.EndPoint.{i}.WPS.";
+          reference
+            "Device.WiFi.EndPoint.{i}.WPS.";
+          uses end-point-wps-g;
+        }
+      }
+      container neighboring-wi-fi-diagnostic {
+        description
+          "Container for object class Device.WiFi.NeighboringWiFiDiagnostic.";
+        reference
+          "Device.WiFi.NeighboringWiFiDiagnostic.";
+        uses wi-fi-neighboring-wi-fi-diagnostic-g;
+        list result {
+          key "index";
+          description
+            "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.";
+          reference
+            "Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.";
+          uses neighboring-wi-fi-diagnostic-result-g;
+        }
+      }
+      list radio {
+        key "index";
+        description
+          "Device.WiFi.Radio.{i}.";
+        reference
+          "Device.WiFi.Radio.{i}.";
+        uses wi-fi-radio-g;
+        container stats {
+          description
+            "Container for object class Device.WiFi.Radio.{i}.Stats.";
+          reference
+            "Device.WiFi.Radio.{i}.Stats.";
+          uses radio-stats-g;
+        }
+      }
+      list ssid {
+        key "index";
+        description
+          "Device.WiFi.SSID.{i}.";
+        reference
+          "Device.WiFi.SSID.{i}.";
+        uses wi-fi-ssid-g;
+        container stats {
+          description
+            "Container for object class Device.WiFi.SSID.{i}.Stats.";
+          reference
+            "Device.WiFi.SSID.{i}.Stats.";
+          uses ssid-stats-g;
+        }
+      }
+    }
+    container xmpp {
+      description
+        "Container for object class Device.XMPP.";
+      reference
+        "Device.XMPP.";
+      uses device-xmpp-g;
+      list connection {
+        key "index";
+        description
+          "Device.XMPP.Connection.{i}.";
+        reference
+          "Device.XMPP.Connection.{i}.";
+        uses xmpp-connection-g;
+        list server {
+          key "index";
+          description
+            "Device.XMPP.Connection.{i}.Server.{i}.";
+          reference
+            "Device.XMPP.Connection.{i}.Server.{i}.";
+          uses connection-server-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.XMPP.Connection.{i}.Stats.";
+          reference
+            "Device.XMPP.Connection.{i}.Stats.";
+          uses connection-stats-g;
+        }
+      }
+    }
+    container zig-bee {
+      description
+        "Container for object class Device.ZigBee.";
+      reference
+        "Device.ZigBee.";
+      uses device-zig-bee-g;
+      container discovery {
+        description
+          "Container for object class Device.ZigBee.Discovery.";
+        reference
+          "Device.ZigBee.Discovery.";
+        uses zig-bee-discovery-g;
+        list area-network {
+          key "index";
+          description
+            "Device.ZigBee.Discovery.AreaNetwork.{i}.";
+          reference
+            "Device.ZigBee.Discovery.AreaNetwork.{i}.";
+          uses discovery-area-network-g;
+        }
+      }
+      list interface {
+        key "index";
+        description
+          "Device.ZigBee.Interface.{i}.";
+        reference
+          "Device.ZigBee.Interface.{i}.";
+        uses zig-bee-interface-g;
+        list associated-device {
+          key "index";
+          description
+            "Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.";
+          reference
+            "Device.ZigBee.Interface.{i}.AssociatedDevice.{i}.";
+          uses zig-bee-interface-associated-device-g;
+        }
+        container stats {
+          description
+            "Container for object class Device.ZigBee.Interface.{i}.Stats.";
+          reference
+            "Device.ZigBee.Interface.{i}.Stats.";
+          uses zig-bee-interface-stats-g;
+        }
+      }
+      list zdo {
+        key "index";
+        description
+          "Device.ZigBee.ZDO.{i}.";
+        reference
+          "Device.ZigBee.ZDO.{i}.";
+        uses zig-bee-zdo-g;
+        list application-endpoint {
+          key "index";
+          description
+            "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.";
+          reference
+            "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.";
+          uses zdo-application-endpoint-g;
+          container simple-descriptor {
+            description
+              "Container for object class Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.";
+            reference
+              "Device.ZigBee.ZDO.{i}.ApplicationEndpoint.{i}.SimpleDescriptor.";
+            uses application-endpoint-simple-descriptor-g;
+          }
+        }
+        list binding {
+          key "index";
+          description
+            "Device.ZigBee.ZDO.{i}.Binding.{i}.";
+          reference
+            "Device.ZigBee.ZDO.{i}.Binding.{i}.";
+          uses zdo-binding-g;
+        }
+        container complex-descriptor {
+          description
+            "Container for object class Device.ZigBee.ZDO.{i}.ComplexDescriptor.";
+          reference
+            "Device.ZigBee.ZDO.{i}.ComplexDescriptor.";
+          uses zdo-complex-descriptor-g;
+        }
+        list group {
+          key "index";
+          description
+            "Device.ZigBee.ZDO.{i}.Group.{i}.";
+          reference
+            "Device.ZigBee.ZDO.{i}.Group.{i}.";
+          uses zdo-group-g;
+        }
+        container network {
+          description
+            "Container for object class Device.ZigBee.ZDO.{i}.Network.";
+          reference
+            "Device.ZigBee.ZDO.{i}.Network.";
+          uses zdo-network-g;
+          list neighbor {
+            key "index";
+            description
+              "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.";
+            reference
+              "Device.ZigBee.ZDO.{i}.Network.Neighbor.{i}.";
+            uses network-neighbor-g;
+          }
+        }
+        container node-descriptor {
+          description
+            "Container for object class Device.ZigBee.ZDO.{i}.NodeDescriptor.";
+          reference
+            "Device.ZigBee.ZDO.{i}.NodeDescriptor.";
+          uses zdo-node-descriptor-g;
+        }
+        container node-manager {
+          description
+            "Container for object class Device.ZigBee.ZDO.{i}.NodeManager.";
+          reference
+            "Device.ZigBee.ZDO.{i}.NodeManager.";
+          uses zdo-node-manager-g;
+          list routing-table {
+            key "index";
+            description
+              "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.";
+            reference
+              "Device.ZigBee.ZDO.{i}.NodeManager.RoutingTable.{i}.";
+            uses node-manager-routing-table-g;
+          }
+        }
+        container power-descriptor {
+          description
+            "Container for object class Device.ZigBee.ZDO.{i}.PowerDescriptor.";
+          reference
+            "Device.ZigBee.ZDO.{i}.PowerDescriptor.";
+          uses zdo-power-descriptor-g;
+        }
+        container security {
+          description
+            "Container for object class Device.ZigBee.ZDO.{i}.Security.";
+          reference
+            "Device.ZigBee.ZDO.{i}.Security.";
+          uses zdo-security-g;
+        }
+        container user-descriptor {
+          description
+            "Container for object class Device.ZigBee.ZDO.{i}.UserDescriptor.";
+          reference
+            "Device.ZigBee.ZDO.{i}.UserDescriptor.";
+          uses zdo-user-descriptor-g;
+        }
+      }
+    }
+  }
+}
diff --git a/netconf-server/test-schemas/ietf-inet-types@2013-07-15.yang b/netconf-server/test-schemas/ietf-inet-types@2013-07-15.yang
new file mode 100644 (file)
index 0000000..7ac914d
--- /dev/null
@@ -0,0 +1,458 @@
+module ietf-inet-types {\r
+\r
+  namespace "urn:ietf:params:xml:ns:yang:ietf-inet-types";\r
+  prefix "inet";\r
+\r
+  organization\r
+   "IETF NETMOD (NETCONF Data Modeling Language) Working Group";\r
+\r
+  contact\r
+   "WG Web:   <http://tools.ietf.org/wg/netmod/>\r
+    WG List:  <mailto:netmod@ietf.org>\r
+\r
+    WG Chair: David Kessens\r
+              <mailto:david.kessens@nsn.com>\r
+\r
+    WG Chair: Juergen Schoenwaelder\r
+              <mailto:j.schoenwaelder@jacobs-university.de>\r
+\r
+    Editor:   Juergen Schoenwaelder\r
+              <mailto:j.schoenwaelder@jacobs-university.de>";\r
+\r
+  description\r
+   "This module contains a collection of generally useful derived\r
+    YANG data types for Internet addresses and related things.\r
+\r
+    Copyright (c) 2013 IETF Trust and the persons identified as\r
+    authors of the code.  All rights reserved.\r
+\r
+    Redistribution and use in source and binary forms, with or\r
+    without modification, is permitted pursuant to, and subject\r
+    to the license terms contained in, the Simplified BSD License\r
+    set forth in Section 4.c of the IETF Trust's Legal Provisions\r
+    Relating to IETF Documents\r
+    (http://trustee.ietf.org/license-info).\r
+\r
+    This version of this YANG module is part of RFC 6991; see\r
+    the RFC itself for full legal notices.";\r
+\r
+  revision 2013-07-15 {\r
+    description\r
+     "This revision adds the following new data types:\r
+      - ip-address-no-zone\r
+      - ipv4-address-no-zone\r
+      - ipv6-address-no-zone";\r
+    reference\r
+     "RFC 6991: Common YANG Data Types";\r
+  }\r
+\r
+  revision 2010-09-24 {\r
+    description\r
+     "Initial revision.";\r
+    reference\r
+     "RFC 6021: Common YANG Data Types";\r
+  }\r
+\r
+  /*** collection of types related to protocol fields ***/\r
+\r
+  typedef ip-version {\r
+    type enumeration {\r
+      enum unknown {\r
+        value "0";\r
+        description\r
+         "An unknown or unspecified version of the Internet\r
+          protocol.";\r
+      }\r
+      enum ipv4 {\r
+        value "1";\r
+        description\r
+         "The IPv4 protocol as defined in RFC 791.";\r
+      }\r
+      enum ipv6 {\r
+        value "2";\r
+        description\r
+         "The IPv6 protocol as defined in RFC 2460.";\r
+      }\r
+    }\r
+    description\r
+     "This value represents the version of the IP protocol.\r
+\r
+      In the value set and its semantics, this type is equivalent\r
+      to the InetVersion textual convention of the SMIv2.";\r
+    reference\r
+     "RFC  791: Internet Protocol\r
+      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification\r
+      RFC 4001: Textual Conventions for Internet Network Addresses";\r
+  }\r
+\r
+  typedef dscp {\r
+    type uint8 {\r
+      range "0..63";\r
+    }\r
+    description\r
+     "The dscp type represents a Differentiated Services Code Point\r
+      that may be used for marking packets in a traffic stream.\r
+      In the value set and its semantics, this type is equivalent\r
+      to the Dscp textual convention of the SMIv2.";\r
+    reference\r
+     "RFC 3289: Management Information Base for the Differentiated\r
+                Services Architecture\r
+      RFC 2474: Definition of the Differentiated Services Field\r
+                (DS Field) in the IPv4 and IPv6 Headers\r
+      RFC 2780: IANA Allocation Guidelines For Values In\r
+                the Internet Protocol and Related Headers";\r
+  }\r
+\r
+  typedef ipv6-flow-label {\r
+    type uint32 {\r
+      range "0..1048575";\r
+    }\r
+    description\r
+     "The ipv6-flow-label type represents the flow identifier or Flow\r
+      Label in an IPv6 packet header that may be used to\r
+      discriminate traffic flows.\r
+\r
+      In the value set and its semantics, this type is equivalent\r
+      to the IPv6FlowLabel textual convention of the SMIv2.";\r
+    reference\r
+     "RFC 3595: Textual Conventions for IPv6 Flow Label\r
+      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification";\r
+  }\r
+\r
+  typedef port-number {\r
+    type uint16 {\r
+      range "0..65535";\r
+    }\r
+    description\r
+     "The port-number type represents a 16-bit port number of an\r
+      Internet transport-layer protocol such as UDP, TCP, DCCP, or\r
+      SCTP.  Port numbers are assigned by IANA.  A current list of\r
+      all assignments is available from <http://www.iana.org/>.\r
+\r
+      Note that the port number value zero is reserved by IANA.  In\r
+      situations where the value zero does not make sense, it can\r
+      be excluded by subtyping the port-number type.\r
+      In the value set and its semantics, this type is equivalent\r
+      to the InetPortNumber textual convention of the SMIv2.";\r
+    reference\r
+     "RFC  768: User Datagram Protocol\r
+      RFC  793: Transmission Control Protocol\r
+      RFC 4960: Stream Control Transmission Protocol\r
+      RFC 4340: Datagram Congestion Control Protocol (DCCP)\r
+      RFC 4001: Textual Conventions for Internet Network Addresses";\r
+  }\r
+\r
+  /*** collection of types related to autonomous systems ***/\r
+\r
+  typedef as-number {\r
+    type uint32;\r
+    description\r
+     "The as-number type represents autonomous system numbers\r
+      which identify an Autonomous System (AS).  An AS is a set\r
+      of routers under a single technical administration, using\r
+      an interior gateway protocol and common metrics to route\r
+      packets within the AS, and using an exterior gateway\r
+      protocol to route packets to other ASes.  IANA maintains\r
+      the AS number space and has delegated large parts to the\r
+      regional registries.\r
+\r
+      Autonomous system numbers were originally limited to 16\r
+      bits.  BGP extensions have enlarged the autonomous system\r
+      number space to 32 bits.  This type therefore uses an uint32\r
+      base type without a range restriction in order to support\r
+      a larger autonomous system number space.\r
+\r
+      In the value set and its semantics, this type is equivalent\r
+      to the InetAutonomousSystemNumber textual convention of\r
+      the SMIv2.";\r
+    reference\r
+     "RFC 1930: Guidelines for creation, selection, and registration\r
+                of an Autonomous System (AS)\r
+      RFC 4271: A Border Gateway Protocol 4 (BGP-4)\r
+      RFC 4001: Textual Conventions for Internet Network Addresses\r
+      RFC 6793: BGP Support for Four-Octet Autonomous System (AS)\r
+                Number Space";\r
+  }\r
+\r
+  /*** collection of types related to IP addresses and hostnames ***/\r
+\r
+  typedef ip-address {\r
+    type union {\r
+      type inet:ipv4-address;\r
+      type inet:ipv6-address;\r
+    }\r
+    description\r
+     "The ip-address type represents an IP address and is IP\r
+      version neutral.  The format of the textual representation\r
+      implies the IP version.  This type supports scoped addresses\r
+      by allowing zone identifiers in the address format.";\r
+    reference\r
+     "RFC 4007: IPv6 Scoped Address Architecture";\r
+  }\r
+\r
+  typedef ipv4-address {\r
+    type string {\r
+      pattern\r
+        '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'\r
+      +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'\r
+      + '(%[\p{N}\p{L}]+)?';\r
+    }\r
+    description\r
+      "The ipv4-address type represents an IPv4 address in\r
+       dotted-quad notation.  The IPv4 address may include a zone\r
+       index, separated by a % sign.\r
+\r
+       The zone index is used to disambiguate identical address\r
+       values.  For link-local addresses, the zone index will\r
+       typically be the interface index number or the name of an\r
+       interface.  If the zone index is not present, the default\r
+       zone of the device will be used.\r
+\r
+       The canonical format for the zone index is the numerical\r
+       format";\r
+  }\r
+\r
+  typedef ipv6-address {\r
+    type string {\r
+      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'\r
+            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'\r
+            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'\r
+            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'\r
+            + '(%[\p{N}\p{L}]+)?';\r
+      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'\r
+            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'\r
+            + '(%.+)?';\r
+    }\r
+    description\r
+     "The ipv6-address type represents an IPv6 address in full,\r
+      mixed, shortened, and shortened-mixed notation.  The IPv6\r
+      address may include a zone index, separated by a % sign.\r
+\r
+      The zone index is used to disambiguate identical address\r
+      values.  For link-local addresses, the zone index will\r
+      typically be the interface index number or the name of an\r
+      interface.  If the zone index is not present, the default\r
+      zone of the device will be used.\r
+\r
+      The canonical format of IPv6 addresses uses the textual\r
+      representation defined in Section 4 of RFC 5952.  The\r
+      canonical format for the zone index is the numerical\r
+      format as described in Section 11.2 of RFC 4007.";\r
+    reference\r
+     "RFC 4291: IP Version 6 Addressing Architecture\r
+      RFC 4007: IPv6 Scoped Address Architecture\r
+      RFC 5952: A Recommendation for IPv6 Address Text\r
+                Representation";\r
+  }\r
+\r
+  typedef ip-address-no-zone {\r
+    type union {\r
+      type inet:ipv4-address-no-zone;\r
+      type inet:ipv6-address-no-zone;\r
+    }\r
+    description\r
+     "The ip-address-no-zone type represents an IP address and is\r
+      IP version neutral.  The format of the textual representation\r
+      implies the IP version.  This type does not support scoped\r
+      addresses since it does not allow zone identifiers in the\r
+      address format.";\r
+    reference\r
+     "RFC 4007: IPv6 Scoped Address Architecture";\r
+  }\r
+\r
+  typedef ipv4-address-no-zone {\r
+    type inet:ipv4-address {\r
+      pattern '[0-9\.]*';\r
+    }\r
+    description\r
+      "An IPv4 address without a zone index.  This type, derived from\r
+       ipv4-address, may be used in situations where the zone is\r
+       known from the context and hence no zone index is needed.";\r
+  }\r
+\r
+  typedef ipv6-address-no-zone {\r
+    type inet:ipv6-address {\r
+      pattern '[0-9a-fA-F:\.]*';\r
+    }\r
+    description\r
+      "An IPv6 address without a zone index.  This type, derived from\r
+       ipv6-address, may be used in situations where the zone is\r
+       known from the context and hence no zone index is needed.";\r
+    reference\r
+     "RFC 4291: IP Version 6 Addressing Architecture\r
+      RFC 4007: IPv6 Scoped Address Architecture\r
+      RFC 5952: A Recommendation for IPv6 Address Text\r
+                Representation";\r
+  }\r
+\r
+  typedef ip-prefix {\r
+    type union {\r
+      type inet:ipv4-prefix;\r
+      type inet:ipv6-prefix;\r
+    }\r
+    description\r
+     "The ip-prefix type represents an IP prefix and is IP\r
+      version neutral.  The format of the textual representations\r
+      implies the IP version.";\r
+  }\r
+\r
+  typedef ipv4-prefix {\r
+    type string {\r
+      pattern\r
+         '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'\r
+       +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'\r
+       + '/(([0-9])|([1-2][0-9])|(3[0-2]))';\r
+    }\r
+    description\r
+     "The ipv4-prefix type represents an IPv4 address prefix.\r
+      The prefix length is given by the number following the\r
+      slash character and must be less than or equal to 32.\r
+\r
+      A prefix length value of n corresponds to an IP address\r
+      mask that has n contiguous 1-bits from the most\r
+      significant bit (MSB) and all other bits set to 0.\r
+\r
+      The canonical format of an IPv4 prefix has all bits of\r
+      the IPv4 address set to zero that are not part of the\r
+      IPv4 prefix.";\r
+  }\r
+\r
+  typedef ipv6-prefix {\r
+    type string {\r
+      pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'\r
+            + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'\r
+            + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'\r
+            + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'\r
+            + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))';\r
+      pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'\r
+            + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'\r
+            + '(/.+)';\r
+    }\r
+\r
+    description\r
+     "The ipv6-prefix type represents an IPv6 address prefix.\r
+      The prefix length is given by the number following the\r
+      slash character and must be less than or equal to 128.\r
+\r
+      A prefix length value of n corresponds to an IP address\r
+      mask that has n contiguous 1-bits from the most\r
+      significant bit (MSB) and all other bits set to 0.\r
+\r
+      The IPv6 address should have all bits that do not belong\r
+      to the prefix set to zero.\r
+\r
+      The canonical format of an IPv6 prefix has all bits of\r
+      the IPv6 address set to zero that are not part of the\r
+      IPv6 prefix.  Furthermore, the IPv6 address is represented\r
+      as defined in Section 4 of RFC 5952.";\r
+    reference\r
+     "RFC 5952: A Recommendation for IPv6 Address Text\r
+                Representation";\r
+  }\r
+\r
+  /*** collection of domain name and URI types ***/\r
+\r
+  typedef domain-name {\r
+    type string {\r
+      pattern\r
+        '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*'\r
+      + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)'\r
+      + '|\.';\r
+      length "1..253";\r
+    }\r
+    description\r
+     "The domain-name type represents a DNS domain name.  The\r
+      name SHOULD be fully qualified whenever possible.\r
+\r
+      Internet domain names are only loosely specified.  Section\r
+      3.5 of RFC 1034 recommends a syntax (modified in Section\r
+      2.1 of RFC 1123).  The pattern above is intended to allow\r
+      for current practice in domain name use, and some possible\r
+      future expansion.  It is designed to hold various types of\r
+      domain names, including names used for A or AAAA records\r
+      (host names) and other records, such as SRV records.  Note\r
+      that Internet host names have a stricter syntax (described\r
+      in RFC 952) than the DNS recommendations in RFCs 1034 and\r
+      1123, and that systems that want to store host names in\r
+      schema nodes using the domain-name type are recommended to\r
+      adhere to this stricter standard to ensure interoperability.\r
+\r
+      The encoding of DNS names in the DNS protocol is limited\r
+      to 255 characters.  Since the encoding consists of labels\r
+      prefixed by a length bytes and there is a trailing NULL\r
+      byte, only 253 characters can appear in the textual dotted\r
+      notation.\r
+\r
+      The description clause of schema nodes using the domain-name\r
+      type MUST describe when and how these names are resolved to\r
+      IP addresses.  Note that the resolution of a domain-name value\r
+      may require to query multiple DNS records (e.g., A for IPv4\r
+      and AAAA for IPv6).  The order of the resolution process and\r
+      which DNS record takes precedence can either be defined\r
+      explicitly or may depend on the configuration of the\r
+      resolver.\r
+\r
+      Domain-name values use the US-ASCII encoding.  Their canonical\r
+      format uses lowercase US-ASCII characters.  Internationalized\r
+      domain names MUST be A-labels as per RFC 5890.";\r
+    reference\r
+     "RFC  952: DoD Internet Host Table Specification\r
+      RFC 1034: Domain Names - Concepts and Facilities\r
+      RFC 1123: Requirements for Internet Hosts -- Application\r
+                and Support\r
+      RFC 2782: A DNS RR for specifying the location of services\r
+                (DNS SRV)\r
+      RFC 5890: Internationalized Domain Names in Applications\r
+                (IDNA): Definitions and Document Framework";\r
+  }\r
+\r
+  typedef host {\r
+    type union {\r
+      type inet:ip-address;\r
+      type inet:domain-name;\r
+    }\r
+    description\r
+     "The host type represents either an IP address or a DNS\r
+      domain name.";\r
+  }\r
+\r
+  typedef uri {\r
+    type string;\r
+    description\r
+     "The uri type represents a Uniform Resource Identifier\r
+      (URI) as defined by STD 66.\r
+\r
+      Objects using the uri type MUST be in US-ASCII encoding,\r
+      and MUST be normalized as described by RFC 3986 Sections\r
+      6.2.1, 6.2.2.1, and 6.2.2.2.  All unnecessary\r
+      percent-encoding is removed, and all case-insensitive\r
+      characters are set to lowercase except for hexadecimal\r
+      digits, which are normalized to uppercase as described in\r
+      Section 6.2.2.1.\r
+\r
+      The purpose of this normalization is to help provide\r
+      unique URIs.  Note that this normalization is not\r
+      sufficient to provide uniqueness.  Two URIs that are\r
+      textually distinct after this normalization may still be\r
+      equivalent.\r
+\r
+      Objects using the uri type may restrict the schemes that\r
+      they permit.  For example, 'data:' and 'urn:' schemes\r
+      might not be appropriate.\r
+\r
+      A zero-length URI is not a valid URI.  This can be used to\r
+      express 'URI absent' where required.\r
+\r
+      In the value set and its semantics, this type is equivalent\r
+      to the Uri SMIv2 textual convention defined in RFC 5017.";\r
+    reference\r
+     "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax\r
+      RFC 3305: Report from the Joint W3C/IETF URI Planning Interest\r
+                Group: Uniform Resource Identifiers (URIs), URLs,\r
+                and Uniform Resource Names (URNs): Clarifications\r
+                and Recommendations\r
+      RFC 5017: MIB Textual Conventions for Uniform Resource\r
+                Identifiers (URIs)";\r
+  }\r
+\r
+}\r
diff --git a/netconf-server/test-schemas/ietf-netconf-monitoring-extension@2013-12-10.yang b/netconf-server/test-schemas/ietf-netconf-monitoring-extension@2013-12-10.yang
new file mode 100644 (file)
index 0000000..91dc773
--- /dev/null
@@ -0,0 +1,31 @@
+module ietf-netconf-monitoring-extension {\r
+\r
+    yang-version 1;\r
+\r
+    namespace\r
+      "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring-extension";\r
+\r
+    prefix ncme;\r
+\r
+    import ietf-netconf-monitoring {\r
+      prefix ncm;\r
+    }\r
+\r
+    revision "2013-12-10" {\r
+      description "Initial revision.";\r
+\r
+    }\r
+\r
+    identity netconf-tcp {\r
+      base ncm:transport;\r
+      description\r
+        "NETCONF over TCP.";\r
+    }\r
+\r
+    augment "/ncm:netconf-state/ncm:sessions/ncm:session" {\r
+      leaf session-identifier {\r
+        type string;\r
+      }\r
+    }\r
+\r
+}
\ No newline at end of file
diff --git a/netconf-server/test-schemas/ietf-netconf-monitoring@2010-10-04.yang b/netconf-server/test-schemas/ietf-netconf-monitoring@2010-10-04.yang
new file mode 100644 (file)
index 0000000..8d167b8
--- /dev/null
@@ -0,0 +1,596 @@
+module ietf-netconf-monitoring {\r
+\r
+    yang-version 1;\r
+\r
+    namespace\r
+      "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring";\r
+\r
+    prefix ncm;\r
+\r
+    import ietf-yang-types {\r
+      prefix yang;\r
+      revision-date "2013-07-15";\r
+    }\r
+\r
+    import ietf-inet-types {\r
+      prefix inet;\r
+      revision-date "2013-07-15";\r
+    }\r
+\r
+    organization\r
+      "IETF NETCONF (Network Configuration) Working Group";\r
+\r
+    contact\r
+      "WG Web:   <http://tools.ietf.org/wg/netconf/>\r
+     WG List:  <mailto:netconf@ietf.org>\r
+\r
+     WG Chair: Mehmet Ersue\r
+               <mailto:mehmet.ersue@nsn.com>\r
+\r
+     WG Chair: Bert Wijnen\r
+               <mailto:bertietf@bwijnen.net>\r
+\r
+     Editor:   Mark Scott\r
+               <mailto:mark.scott@ericsson.com>\r
+\r
+     Editor:   Martin Bjorklund\r
+               <mailto:mbj@tail-f.com>";\r
+\r
+    description\r
+      "NETCONF Monitoring Module.\r
+     All elements in this module are read-only.\r
+\r
+     Copyright (c) 2010 IETF Trust and the persons identified as\r
+     authors of the code. All rights reserved.\r
+\r
+     Redistribution and use in source and binary forms, with or\r
+     without modification, is permitted pursuant to, and subject\r
+     to the license terms contained in, the Simplified BSD\r
+     License set forth in Section 4.c of the IETF Trust's\r
+     Legal Provisions Relating to IETF Documents\r
+     (http://trustee.ietf.org/license-info).\r
+\r
+     This version of this YANG module is part of RFC 6022; see\r
+     the RFC itself for full legal notices.";\r
+\r
+    revision "2010-10-04" {\r
+      description "Initial revision.";\r
+      reference\r
+        "RFC 6022: YANG Module for NETCONF Monitoring";\r
+\r
+    }\r
+\r
+\r
+    typedef netconf-datastore-type {\r
+      type enumeration {\r
+        enum "running" {\r
+          value 0;\r
+        }\r
+        enum "candidate" {\r
+          value 1;\r
+        }\r
+        enum "startup" {\r
+          value 2;\r
+        }\r
+      }\r
+      description\r
+        "Enumeration of possible NETCONF datastore types.";\r
+      reference\r
+        "RFC 4741: NETCONF Configuration Protocol";\r
+\r
+    }\r
+\r
+    identity transport {\r
+      description\r
+        "Base identity for NETCONF transport types.";\r
+    }\r
+\r
+    identity netconf-ssh {\r
+      base transport;\r
+      description\r
+        "NETCONF over Secure Shell (SSH).";\r
+      reference\r
+        "RFC 4742: Using the NETCONF Configuration Protocol\r
+              over Secure SHell (SSH)";\r
+\r
+    }\r
+\r
+    identity netconf-soap-over-beep {\r
+      base transport;\r
+      description\r
+        "NETCONF over Simple Object Access Protocol (SOAP) over\r
+       Blocks Extensible Exchange Protocol (BEEP).";\r
+      reference\r
+        "RFC 4743: Using NETCONF over the Simple Object\r
+              Access Protocol (SOAP)";\r
+\r
+    }\r
+\r
+    identity netconf-soap-over-https {\r
+      base transport;\r
+      description\r
+        "NETCONF over Simple Object Access Protocol (SOAP)\r
+      over Hypertext Transfer Protocol Secure (HTTPS).";\r
+      reference\r
+        "RFC 4743: Using NETCONF over the Simple Object\r
+              Access Protocol (SOAP)";\r
+\r
+    }\r
+\r
+    identity netconf-beep {\r
+      base transport;\r
+      description\r
+        "NETCONF over Blocks Extensible Exchange Protocol (BEEP).";\r
+      reference\r
+        "RFC 4744: Using the NETCONF Protocol over the\r
+              Blocks Extensible Exchange Protocol (BEEP)";\r
+\r
+    }\r
+\r
+    identity netconf-tls {\r
+      base transport;\r
+      description\r
+        "NETCONF over Transport Layer Security (TLS).";\r
+      reference\r
+        "RFC 5539: NETCONF over Transport Layer Security (TLS)";\r
+\r
+    }\r
+\r
+    identity schema-format {\r
+      description\r
+        "Base identity for data model schema languages.";\r
+    }\r
+\r
+    identity xsd {\r
+      base schema-format;\r
+      description\r
+        "W3C XML Schema Definition.";\r
+      reference\r
+        "W3C REC REC-xmlschema-1-20041028:\r
+          XML Schema Part 1: Structures";\r
+\r
+    }\r
+\r
+    identity yang {\r
+      base schema-format;\r
+      description\r
+        "The YANG data modeling language for NETCONF.";\r
+      reference\r
+        "RFC 6020:  YANG - A Data Modeling Language for the\r
+               Network Configuration Protocol (NETCONF)";\r
+\r
+    }\r
+\r
+    identity yin {\r
+      base schema-format;\r
+      description "The YIN syntax for YANG.";\r
+      reference\r
+        "RFC 6020:  YANG - A Data Modeling Language for the\r
+               Network Configuration Protocol (NETCONF)";\r
+\r
+    }\r
+\r
+    identity rng {\r
+      base schema-format;\r
+      description\r
+        "Regular Language for XML Next Generation (RELAX NG).";\r
+      reference\r
+        "ISO/IEC 19757-2:2008: RELAX NG";\r
+\r
+    }\r
+\r
+    identity rnc {\r
+      base schema-format;\r
+      description "Relax NG Compact Syntax";\r
+      reference\r
+        "ISO/IEC 19757-2:2008: RELAX NG";\r
+\r
+    }\r
+\r
+    grouping common-counters {\r
+      description\r
+        "Counters that exist both per session, and also globally,\r
+       accumulated from all sessions.";\r
+      leaf in-rpcs {\r
+        type yang:zero-based-counter32;\r
+        description\r
+          "Number of correct <rpc> messages received.";\r
+      }\r
+\r
+      leaf in-bad-rpcs {\r
+        type yang:zero-based-counter32;\r
+        description\r
+          "Number of messages received when an <rpc> message was expected,\r
+         that were not correct <rpc> messages.  This includes XML parse\r
+         errors and errors on the rpc layer.";\r
+      }\r
+\r
+      leaf out-rpc-errors {\r
+        type yang:zero-based-counter32;\r
+        description\r
+          "Number of <rpc-reply> messages sent that contained an\r
+         <rpc-error> element.";\r
+      }\r
+\r
+      leaf out-notifications {\r
+        type yang:zero-based-counter32;\r
+        description\r
+          "Number of <notification> messages sent.";\r
+      }\r
+    }  // grouping common-counters\r
+\r
+    container netconf-state {\r
+      config false;\r
+      description\r
+        "The netconf-state container is the root of the monitoring\r
+       data model.";\r
+      container capabilities {\r
+        description\r
+          "Contains the list of NETCONF capabilities supported by the\r
+         server.";\r
+        leaf-list capability {\r
+          type inet:uri;\r
+          description\r
+            "List of NETCONF capabilities supported by the server.";\r
+        }\r
+      }  // container capabilities\r
+\r
+      container datastores {\r
+        description\r
+          "Contains the list of NETCONF configuration datastores.";\r
+        list datastore {\r
+          key "name";\r
+          description\r
+            "List of NETCONF configuration datastores supported by\r
+           the NETCONF server and related information.";\r
+          leaf name {\r
+            type netconf-datastore-type;\r
+            description\r
+              "Name of the datastore associated with this list entry.";\r
+          }\r
+\r
+          container locks {\r
+            presence\r
+              "This container is present only if the datastore\r
+             is locked.";\r
+            description\r
+              "The NETCONF <lock> and <partial-lock> operations allow\r
+             a client to lock specific resources in a datastore.  The\r
+             NETCONF server will prevent changes to the locked\r
+             resources by all sessions except the one that acquired\r
+             the lock(s).\r
+\r
+             Monitoring information is provided for each datastore\r
+             entry including details such as the session that acquired\r
+             the lock, the type of lock (global or partial) and the\r
+             list of locked resources.  Multiple locks per datastore\r
+             are supported.";\r
+            grouping lock-info {\r
+              description\r
+                "Lock related parameters, common to both global and\r
+               partial locks.";\r
+              leaf locked-by-session {\r
+                type uint32;\r
+                mandatory true;\r
+                description\r
+                  "The session ID of the session that has locked\r
+                 this resource.  Both a global lock and a partial\r
+                 lock MUST contain the NETCONF session-id.\r
+\r
+                 If the lock is held by a session that is not managed\r
+                 by the NETCONF server (e.g., a CLI session), a session\r
+                 id of 0 (zero) is reported.";\r
+                reference\r
+                  "RFC 4741: NETCONF Configuration Protocol";\r
+\r
+              }\r
+\r
+              leaf locked-time {\r
+                type yang:date-and-time;\r
+                mandatory true;\r
+                description\r
+                  "The date and time of when the resource was\r
+                 locked.";\r
+              }\r
+            }  // grouping lock-info\r
+            choice lock-type {\r
+              description\r
+                "Indicates if a global lock or a set of partial locks\r
+               are set.";\r
+              container global-lock {\r
+                description\r
+                  "Present if the global lock is set.";\r
+                uses lock-info;\r
+              }  // container global-lock\r
+              list partial-lock {\r
+                key "lock-id";\r
+                description\r
+                  "List of partial locks.";\r
+                reference\r
+                  "RFC 5717: Partial Lock Remote Procedure Call (RPC) for\r
+                      NETCONF";\r
+\r
+                leaf lock-id {\r
+                  type uint32;\r
+                  description\r
+                    "This is the lock id returned in the <partial-lock>\r
+                   response.";\r
+                }\r
+\r
+                uses lock-info;\r
+\r
+                leaf-list select {\r
+                  type yang:xpath1.0;\r
+                  min-elements 1;\r
+                  description\r
+                    "The xpath expression that was used to request\r
+                   the lock.  The select expression indicates the\r
+                   original intended scope of the lock.";\r
+                }\r
+\r
+                leaf-list locked-node {\r
+                  type instance-identifier;\r
+                  description\r
+                    "The list of instance-identifiers (i.e., the\r
+                   locked nodes).\r
+\r
+                   The scope of the partial lock is defined by the list\r
+                   of locked nodes.";\r
+                }\r
+              }  // list partial-lock\r
+            }  // choice lock-type\r
+          }  // container locks\r
+        }  // list datastore\r
+      }  // container datastores\r
+\r
+      container schemas {\r
+        description\r
+          "Contains the list of data model schemas supported by the\r
+         server.";\r
+        list schema {\r
+          key "identifier version format";\r
+          description\r
+            "List of data model schemas supported by the server.";\r
+          leaf identifier {\r
+            type string;\r
+            description\r
+              "Identifier to uniquely reference the schema.  The\r
+             identifier is used in the <get-schema> operation and may\r
+             be used for other purposes such as file retrieval.\r
+\r
+             For modeling languages that support or require a data\r
+             model name (e.g., YANG module name) the identifier MUST\r
+             match that name.  For YANG data models, the identifier is\r
+             the name of the module or submodule.  In other cases, an\r
+             identifier such as a filename MAY be used instead.";\r
+          }\r
+\r
+          leaf version {\r
+            type string;\r
+            description\r
+              "Version of the schema supported.  Multiple versions MAY be\r
+             supported simultaneously by a NETCONF server.  Each\r
+             version MUST be reported individually in the schema list,\r
+             i.e., with same identifier, possibly different location,\r
+             but different version.\r
+\r
+             For YANG data models, version is the value of the most\r
+             recent YANG 'revision' statement in the module or\r
+             submodule, or the empty string if no 'revision' statement\r
+             is present.";\r
+          }\r
+\r
+          leaf format {\r
+            type identityref {\r
+              base schema-format;\r
+            }\r
+            description\r
+              "The data modeling language the schema is written\r
+             in (currently xsd, yang, yin, rng, or rnc).\r
+             For YANG data models, 'yang' format MUST be supported and\r
+             'yin' format MAY also be provided.";\r
+          }\r
+\r
+          leaf namespace {\r
+            type inet:uri;\r
+            mandatory true;\r
+            description\r
+              "The XML namespace defined by the data model.\r
+\r
+             For YANG data models, this is the module's namespace.\r
+             If the list entry describes a submodule, this field\r
+             contains the namespace of the module to which the\r
+             submodule belongs.";\r
+          }\r
+\r
+          leaf-list location {\r
+            type union {\r
+              type enumeration {\r
+                enum "NETCONF" {\r
+                  value 0;\r
+                }\r
+              }\r
+              type inet:uri;\r
+            }\r
+            description\r
+              "One or more locations from which the schema can be\r
+             retrieved.  This list SHOULD contain at least one\r
+             entry per schema.\r
+\r
+             A schema entry may be located on a remote file system\r
+             (e.g., reference to file system for ftp retrieval) or\r
+             retrieved directly from a server supporting the\r
+             <get-schema> operation (denoted by the value 'NETCONF').";\r
+          }\r
+        }  // list schema\r
+      }  // container schemas\r
+\r
+      container sessions {\r
+        description\r
+          "The sessions container includes session-specific data for\r
+         NETCONF management sessions.  The session list MUST include\r
+         all currently active NETCONF sessions.";\r
+        list session {\r
+          key "session-id";\r
+          description\r
+            "All NETCONF sessions managed by the NETCONF server\r
+           MUST be reported in this list.";\r
+          leaf session-id {\r
+            type uint32 {\r
+              range "1..max";\r
+            }\r
+            description\r
+              "Unique identifier for the session.  This value is the\r
+             NETCONF session identifier, as defined in RFC 4741.";\r
+            reference\r
+              "RFC 4741: NETCONF Configuration Protocol";\r
+\r
+          }\r
+\r
+          leaf transport {\r
+            type identityref {\r
+              base transport;\r
+            }\r
+            mandatory true;\r
+            description\r
+              "Identifies the transport for each session, e.g.,\r
+            'netconf-ssh', 'netconf-soap', etc.";\r
+          }\r
+\r
+          leaf username {\r
+            type string;\r
+            mandatory true;\r
+            description\r
+              "The username is the client identity that was authenticated\r
+            by the NETCONF transport protocol.  The algorithm used to\r
+            derive the username is NETCONF transport protocol specific\r
+            and in addition specific to the authentication mechanism\r
+            used by the NETCONF transport protocol.";\r
+          }\r
+\r
+          leaf source-host {\r
+            type inet:host;\r
+            description\r
+              "Host identifier of the NETCONF client.  The value\r
+             returned is implementation specific (e.g., hostname,\r
+             IPv4 address, IPv6 address)";\r
+          }\r
+\r
+          leaf login-time {\r
+            type yang:date-and-time;\r
+            mandatory true;\r
+            description\r
+              "Time at the server at which the session was established.";\r
+          }\r
+\r
+          uses common-counters {\r
+            description\r
+              "Per-session counters.  Zero based with following reset\r
+             behaviour:\r
+               - at start of a session\r
+               - when max value is reached";\r
+          }\r
+        }  // list session\r
+      }  // container sessions\r
+\r
+      container statistics {\r
+        description\r
+          "Statistical data pertaining to the NETCONF server.";\r
+        leaf netconf-start-time {\r
+          type yang:date-and-time;\r
+          description\r
+            "Date and time at which the management subsystem was\r
+           started.";\r
+        }\r
+\r
+        leaf in-bad-hellos {\r
+          type yang:zero-based-counter32;\r
+          description\r
+            "Number of sessions silently dropped because an\r
+          invalid <hello> message was received.  This includes <hello>\r
+          messages with a 'session-id' attribute, bad namespace, and\r
+          bad capability declarations.";\r
+        }\r
+\r
+        leaf in-sessions {\r
+          type yang:zero-based-counter32;\r
+          description\r
+            "Number of sessions started.  This counter is incremented\r
+           when a <hello> message with a <session-id> is sent.\r
+\r
+          'in-sessions' - 'in-bad-hellos' =\r
+              'number of correctly started netconf sessions'";\r
+        }\r
+\r
+        leaf dropped-sessions {\r
+          type yang:zero-based-counter32;\r
+          description\r
+            "Number of sessions that were abnormally terminated, e.g.,\r
+           due to idle timeout or transport close.  This counter is not\r
+           incremented when a session is properly closed by a\r
+           <close-session> operation, or killed by a <kill-session>\r
+           operation.";\r
+        }\r
+\r
+        uses common-counters {\r
+          description\r
+            "Global counters, accumulated from all sessions.\r
+           Zero based with following reset behaviour:\r
+             - re-initialization of NETCONF server\r
+             - when max value is reached";\r
+        }\r
+      }  // container statistics\r
+    }  // container netconf-state\r
+\r
+    rpc get-schema {\r
+      description\r
+        "This operation is used to retrieve a schema from the\r
+       NETCONF server.\r
+\r
+       Positive Response:\r
+         The NETCONF server returns the requested schema.\r
+\r
+       Negative Response:\r
+         If requested schema does not exist, the <error-tag> is\r
+         'invalid-value'.\r
+\r
+         If more than one schema matches the requested parameters, the\r
+         <error-tag> is 'operation-failed', and <error-app-tag> is\r
+         'data-not-unique'.";\r
+      input {\r
+        leaf identifier {\r
+          type string;\r
+          mandatory true;\r
+          description\r
+            "Identifier for the schema list entry.";\r
+        }\r
+\r
+        leaf version {\r
+          type string;\r
+          description\r
+            "Version of the schema requested.  If this parameter is not\r
+           present, and more than one version of the schema exists on\r
+           the server, a 'data-not-unique' error is returned, as\r
+           described above.";\r
+        }\r
+\r
+        leaf format {\r
+          type identityref {\r
+            base schema-format;\r
+          }\r
+          description\r
+            "The data modeling language of the schema.  If this\r
+            parameter is not present, and more than one formats of\r
+            the schema exists on the server, a 'data-not-unique' error\r
+            is returned, as described above.";\r
+        }\r
+      }\r
+\r
+      output {\r
+        anyxml data {\r
+          description\r
+            "Contains the schema content.";\r
+        }\r
+      }\r
+    }  // rpc get-schema\r
+} // module\r
diff --git a/netconf-server/test-schemas/ietf-yang-types@2013-07-15.yang b/netconf-server/test-schemas/ietf-yang-types@2013-07-15.yang
new file mode 100644 (file)
index 0000000..ae5a182
--- /dev/null
@@ -0,0 +1,474 @@
+module ietf-yang-types {\r
+\r
+  namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types";\r
+  prefix "yang";\r
+\r
+  organization\r
+   "IETF NETMOD (NETCONF Data Modeling Language) Working Group";\r
+\r
+  contact\r
+   "WG Web:   <http://tools.ietf.org/wg/netmod/>\r
+    WG List:  <mailto:netmod@ietf.org>\r
+\r
+    WG Chair: David Kessens\r
+              <mailto:david.kessens@nsn.com>\r
+\r
+    WG Chair: Juergen Schoenwaelder\r
+              <mailto:j.schoenwaelder@jacobs-university.de>\r
+\r
+    Editor:   Juergen Schoenwaelder\r
+              <mailto:j.schoenwaelder@jacobs-university.de>";\r
+\r
+  description\r
+   "This module contains a collection of generally useful derived\r
+    YANG data types.\r
+\r
+    Copyright (c) 2013 IETF Trust and the persons identified as\r
+    authors of the code.  All rights reserved.\r
+\r
+    Redistribution and use in source and binary forms, with or\r
+    without modification, is permitted pursuant to, and subject\r
+    to the license terms contained in, the Simplified BSD License\r
+    set forth in Section 4.c of the IETF Trust's Legal Provisions\r
+    Relating to IETF Documents\r
+    (http://trustee.ietf.org/license-info).\r
+\r
+    This version of this YANG module is part of RFC 6991; see\r
+    the RFC itself for full legal notices.";\r
+\r
+  revision 2013-07-15 {\r
+    description\r
+     "This revision adds the following new data types:\r
+      - yang-identifier\r
+      - hex-string\r
+      - uuid\r
+      - dotted-quad";\r
+    reference\r
+     "RFC 6991: Common YANG Data Types";\r
+  }\r
+\r
+  revision 2010-09-24 {\r
+    description\r
+     "Initial revision.";\r
+    reference\r
+     "RFC 6021: Common YANG Data Types";\r
+  }\r
+\r
+  /*** collection of counter and gauge types ***/\r
+\r
+  typedef counter32 {\r
+    type uint32;\r
+    description\r
+     "The counter32 type represents a non-negative integer\r
+      that monotonically increases until it reaches a\r
+      maximum value of 2^32-1 (4294967295 decimal), when it\r
+      wraps around and starts increasing again from zero.\r
+\r
+      Counters have no defined 'initial' value, and thus, a\r
+      single value of a counter has (in general) no information\r
+      content.  Discontinuities in the monotonically increasing\r
+      value normally occur at re-initialization of the\r
+      management system, and at other times as specified in the\r
+      description of a schema node using this type.  If such\r
+      other times can occur, for example, the creation of\r
+      a schema node of type counter32 at times other than\r
+      re-initialization, then a corresponding schema node\r
+      should be defined, with an appropriate type, to indicate\r
+      the last discontinuity.\r
+\r
+      The counter32 type should not be used for configuration\r
+      schema nodes.  A default statement SHOULD NOT be used in\r
+      combination with the type counter32.\r
+\r
+      In the value set and its semantics, this type is equivalent\r
+      to the Counter32 type of the SMIv2.";\r
+    reference\r
+     "RFC 2578: Structure of Management Information Version 2\r
+                (SMIv2)";\r
+  }\r
+\r
+  typedef zero-based-counter32 {\r
+    type yang:counter32;\r
+    default "0";\r
+    description\r
+     "The zero-based-counter32 type represents a counter32\r
+      that has the defined 'initial' value zero.\r
+\r
+      A schema node of this type will be set to zero (0) on creation\r
+      and will thereafter increase monotonically until it reaches\r
+      a maximum value of 2^32-1 (4294967295 decimal), when it\r
+      wraps around and starts increasing again from zero.\r
+\r
+      Provided that an application discovers a new schema node\r
+      of this type within the minimum time to wrap, it can use the\r
+      'initial' value as a delta.  It is important for a management\r
+      station to be aware of this minimum time and the actual time\r
+      between polls, and to discard data if the actual time is too\r
+      long or there is no defined minimum time.\r
+\r
+      In the value set and its semantics, this type is equivalent\r
+      to the ZeroBasedCounter32 textual convention of the SMIv2.";\r
+    reference\r
+      "RFC 4502: Remote Network Monitoring Management Information\r
+                 Base Version 2";\r
+  }\r
+\r
+  typedef counter64 {\r
+    type uint64;\r
+    description\r
+     "The counter64 type represents a non-negative integer\r
+      that monotonically increases until it reaches a\r
+      maximum value of 2^64-1 (18446744073709551615 decimal),\r
+      when it wraps around and starts increasing again from zero.\r
+\r
+      Counters have no defined 'initial' value, and thus, a\r
+      single value of a counter has (in general) no information\r
+      content.  Discontinuities in the monotonically increasing\r
+      value normally occur at re-initialization of the\r
+      management system, and at other times as specified in the\r
+      description of a schema node using this type.  If such\r
+      other times can occur, for example, the creation of\r
+      a schema node of type counter64 at times other than\r
+      re-initialization, then a corresponding schema node\r
+      should be defined, with an appropriate type, to indicate\r
+      the last discontinuity.\r
+\r
+      The counter64 type should not be used for configuration\r
+      schema nodes.  A default statement SHOULD NOT be used in\r
+      combination with the type counter64.\r
+\r
+      In the value set and its semantics, this type is equivalent\r
+      to the Counter64 type of the SMIv2.";\r
+    reference\r
+     "RFC 2578: Structure of Management Information Version 2\r
+                (SMIv2)";\r
+  }\r
+\r
+  typedef zero-based-counter64 {\r
+    type yang:counter64;\r
+    default "0";\r
+    description\r
+     "The zero-based-counter64 type represents a counter64 that\r
+      has the defined 'initial' value zero.\r
+\r
+      A schema node of this type will be set to zero (0) on creation\r
+      and will thereafter increase monotonically until it reaches\r
+      a maximum value of 2^64-1 (18446744073709551615 decimal),\r
+      when it wraps around and starts increasing again from zero.\r
+\r
+      Provided that an application discovers a new schema node\r
+      of this type within the minimum time to wrap, it can use the\r
+      'initial' value as a delta.  It is important for a management\r
+      station to be aware of this minimum time and the actual time\r
+      between polls, and to discard data if the actual time is too\r
+      long or there is no defined minimum time.\r
+\r
+      In the value set and its semantics, this type is equivalent\r
+      to the ZeroBasedCounter64 textual convention of the SMIv2.";\r
+    reference\r
+     "RFC 2856: Textual Conventions for Additional High Capacity\r
+                Data Types";\r
+  }\r
+\r
+  typedef gauge32 {\r
+    type uint32;\r
+    description\r
+     "The gauge32 type represents a non-negative integer, which\r
+      may increase or decrease, but shall never exceed a maximum\r
+      value, nor fall below a minimum value.  The maximum value\r
+      cannot be greater than 2^32-1 (4294967295 decimal), and\r
+      the minimum value cannot be smaller than 0.  The value of\r
+      a gauge32 has its maximum value whenever the information\r
+      being modeled is greater than or equal to its maximum\r
+      value, and has its minimum value whenever the information\r
+      being modeled is smaller than or equal to its minimum value.\r
+      If the information being modeled subsequently decreases\r
+      below (increases above) the maximum (minimum) value, the\r
+      gauge32 also decreases (increases).\r
+\r
+      In the value set and its semantics, this type is equivalent\r
+      to the Gauge32 type of the SMIv2.";\r
+    reference\r
+     "RFC 2578: Structure of Management Information Version 2\r
+                (SMIv2)";\r
+  }\r
+\r
+  typedef gauge64 {\r
+    type uint64;\r
+    description\r
+     "The gauge64 type represents a non-negative integer, which\r
+      may increase or decrease, but shall never exceed a maximum\r
+      value, nor fall below a minimum value.  The maximum value\r
+      cannot be greater than 2^64-1 (18446744073709551615), and\r
+      the minimum value cannot be smaller than 0.  The value of\r
+      a gauge64 has its maximum value whenever the information\r
+      being modeled is greater than or equal to its maximum\r
+      value, and has its minimum value whenever the information\r
+      being modeled is smaller than or equal to its minimum value.\r
+      If the information being modeled subsequently decreases\r
+      below (increases above) the maximum (minimum) value, the\r
+      gauge64 also decreases (increases).\r
+\r
+      In the value set and its semantics, this type is equivalent\r
+      to the CounterBasedGauge64 SMIv2 textual convention defined\r
+      in RFC 2856";\r
+    reference\r
+     "RFC 2856: Textual Conventions for Additional High Capacity\r
+                Data Types";\r
+  }\r
+\r
+  /*** collection of identifier-related types ***/\r
+\r
+  typedef object-identifier {\r
+    type string {\r
+      pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))'\r
+            + '(\.(0|([1-9]\d*)))*';\r
+    }\r
+    description\r
+     "The object-identifier type represents administratively\r
+      assigned names in a registration-hierarchical-name tree.\r
+\r
+      Values of this type are denoted as a sequence of numerical\r
+      non-negative sub-identifier values.  Each sub-identifier\r
+      value MUST NOT exceed 2^32-1 (4294967295).  Sub-identifiers\r
+      are separated by single dots and without any intermediate\r
+      whitespace.\r
+\r
+      The ASN.1 standard restricts the value space of the first\r
+      sub-identifier to 0, 1, or 2.  Furthermore, the value space\r
+      of the second sub-identifier is restricted to the range\r
+      0 to 39 if the first sub-identifier is 0 or 1.  Finally,\r
+      the ASN.1 standard requires that an object identifier\r
+      has always at least two sub-identifiers.  The pattern\r
+      captures these restrictions.\r
+\r
+      Although the number of sub-identifiers is not limited,\r
+      module designers should realize that there may be\r
+      implementations that stick with the SMIv2 limit of 128\r
+      sub-identifiers.\r
+\r
+      This type is a superset of the SMIv2 OBJECT IDENTIFIER type\r
+      since it is not restricted to 128 sub-identifiers.  Hence,\r
+      this type SHOULD NOT be used to represent the SMIv2 OBJECT\r
+      IDENTIFIER type; the object-identifier-128 type SHOULD be\r
+      used instead.";\r
+    reference\r
+     "ISO9834-1: Information technology -- Open Systems\r
+      Interconnection -- Procedures for the operation of OSI\r
+      Registration Authorities: General procedures and top\r
+      arcs of the ASN.1 Object Identifier tree";\r
+  }\r
+\r
+  typedef object-identifier-128 {\r
+    type object-identifier {\r
+      pattern '\d*(\.\d*){1,127}';\r
+    }\r
+    description\r
+     "This type represents object-identifiers restricted to 128\r
+      sub-identifiers.\r
+\r
+      In the value set and its semantics, this type is equivalent\r
+      to the OBJECT IDENTIFIER type of the SMIv2.";\r
+    reference\r
+     "RFC 2578: Structure of Management Information Version 2\r
+                (SMIv2)";\r
+  }\r
+\r
+  typedef yang-identifier {\r
+    type string {\r
+      length "1..max";\r
+      pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*';\r
+      pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*';\r
+    }\r
+    description\r
+      "A YANG identifier string as defined by the 'identifier'\r
+       rule in Section 12 of RFC 6020.  An identifier must\r
+       start with an alphabetic character or an underscore\r
+       followed by an arbitrary sequence of alphabetic or\r
+       numeric characters, underscores, hyphens, or dots.\r
+\r
+       A YANG identifier MUST NOT start with any possible\r
+       combination of the lowercase or uppercase character\r
+       sequence 'xml'.";\r
+    reference\r
+      "RFC 6020: YANG - A Data Modeling Language for the Network\r
+                 Configuration Protocol (NETCONF)";\r
+  }\r
+\r
+  /*** collection of types related to date and time***/\r
+\r
+  typedef date-and-time {\r
+    type string {\r
+      pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?'\r
+            + '(Z|[\+\-]\d{2}:\d{2})';\r
+    }\r
+    description\r
+     "The date-and-time type is a profile of the ISO 8601\r
+      standard for representation of dates and times using the\r
+      Gregorian calendar.  The profile is defined by the\r
+      date-time production in Section 5.6 of RFC 3339.\r
+\r
+      The date-and-time type is compatible with the dateTime XML\r
+      schema type with the following notable exceptions:\r
+\r
+      (a) The date-and-time type does not allow negative years.\r
+\r
+      (b) The date-and-time time-offset -00:00 indicates an unknown\r
+          time zone (see RFC 3339) while -00:00 and +00:00 and Z\r
+          all represent the same time zone in dateTime.\r
+\r
+      (c) The canonical format (see below) of data-and-time values\r
+          differs from the canonical format used by the dateTime XML\r
+          schema type, which requires all times to be in UTC using\r
+          the time-offset 'Z'.\r
+\r
+      This type is not equivalent to the DateAndTime textual\r
+      convention of the SMIv2 since RFC 3339 uses a different\r
+      separator between full-date and full-time and provides\r
+      higher resolution of time-secfrac.\r
+\r
+      The canonical format for date-and-time values with a known time\r
+      zone uses a numeric time zone offset that is calculated using\r
+      the device's configured known offset to UTC time.  A change of\r
+      the device's offset to UTC time will cause date-and-time values\r
+      to change accordingly.  Such changes might happen periodically\r
+      in case a server follows automatically daylight saving time\r
+      (DST) time zone offset changes.  The canonical format for\r
+      date-and-time values with an unknown time zone (usually\r
+      referring to the notion of local time) uses the time-offset\r
+      -00:00.";\r
+    reference\r
+     "RFC 3339: Date and Time on the Internet: Timestamps\r
+      RFC 2579: Textual Conventions for SMIv2\r
+      XSD-TYPES: XML Schema Part 2: Datatypes Second Edition";\r
+  }\r
+\r
+  typedef timeticks {\r
+    type uint32;\r
+    description\r
+     "The timeticks type represents a non-negative integer that\r
+      represents the time, modulo 2^32 (4294967296 decimal), in\r
+      hundredths of a second between two epochs.  When a schema\r
+      node is defined that uses this type, the description of\r
+      the schema node identifies both of the reference epochs.\r
+\r
+      In the value set and its semantics, this type is equivalent\r
+      to the TimeTicks type of the SMIv2.";\r
+    reference\r
+     "RFC 2578: Structure of Management Information Version 2\r
+                (SMIv2)";\r
+  }\r
+\r
+  typedef timestamp {\r
+    type yang:timeticks;\r
+    description\r
+     "The timestamp type represents the value of an associated\r
+      timeticks schema node at which a specific occurrence\r
+      happened.  The specific occurrence must be defined in the\r
+      description of any schema node defined using this type.  When\r
+      the specific occurrence occurred prior to the last time the\r
+      associated timeticks attribute was zero, then the timestamp\r
+      value is zero.  Note that this requires all timestamp values\r
+      to be reset to zero when the value of the associated timeticks\r
+      attribute reaches 497+ days and wraps around to zero.\r
+\r
+      The associated timeticks schema node must be specified\r
+      in the description of any schema node using this type.\r
+\r
+      In the value set and its semantics, this type is equivalent\r
+      to the TimeStamp textual convention of the SMIv2.";\r
+    reference\r
+     "RFC 2579: Textual Conventions for SMIv2";\r
+  }\r
+\r
+  /*** collection of generic address types ***/\r
+\r
+  typedef phys-address {\r
+    type string {\r
+      pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';\r
+    }\r
+\r
+    description\r
+     "Represents media- or physical-level addresses represented\r
+      as a sequence octets, each octet represented by two hexadecimal\r
+      numbers.  Octets are separated by colons.  The canonical\r
+      representation uses lowercase characters.\r
+\r
+      In the value set and its semantics, this type is equivalent\r
+      to the PhysAddress textual convention of the SMIv2.";\r
+    reference\r
+     "RFC 2579: Textual Conventions for SMIv2";\r
+  }\r
+\r
+  typedef mac-address {\r
+    type string {\r
+      pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}';\r
+    }\r
+    description\r
+     "The mac-address type represents an IEEE 802 MAC address.\r
+      The canonical representation uses lowercase characters.\r
+\r
+      In the value set and its semantics, this type is equivalent\r
+      to the MacAddress textual convention of the SMIv2.";\r
+    reference\r
+     "IEEE 802: IEEE Standard for Local and Metropolitan Area\r
+                Networks: Overview and Architecture\r
+      RFC 2579: Textual Conventions for SMIv2";\r
+  }\r
+\r
+  /*** collection of XML-specific types ***/\r
+\r
+  typedef xpath1.0 {\r
+    type string;\r
+    description\r
+     "This type represents an XPATH 1.0 expression.\r
+\r
+      When a schema node is defined that uses this type, the\r
+      description of the schema node MUST specify the XPath\r
+      context in which the XPath expression is evaluated.";\r
+    reference\r
+     "XPATH: XML Path Language (XPath) Version 1.0";\r
+  }\r
+\r
+  /*** collection of string types ***/\r
+\r
+  typedef hex-string {\r
+    type string {\r
+      pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?';\r
+    }\r
+    description\r
+     "A hexadecimal string with octets represented as hex digits\r
+      separated by colons.  The canonical representation uses\r
+      lowercase characters.";\r
+  }\r
+\r
+  typedef uuid {\r
+    type string {\r
+      pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-'\r
+            + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}';\r
+    }\r
+    description\r
+     "A Universally Unique IDentifier in the string representation\r
+      defined in RFC 4122.  The canonical representation uses\r
+      lowercase characters.\r
+\r
+      The following is an example of a UUID in string representation:\r
+      f81d4fae-7dec-11d0-a765-00a0c91e6bf6\r
+      ";\r
+    reference\r
+     "RFC 4122: A Universally Unique IDentifier (UUID) URN\r
+                Namespace";\r
+  }\r
+\r
+  typedef dotted-quad {\r
+    type string {\r
+      pattern\r
+        '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'\r
+      + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\r
+    }\r
+    description\r
+      "An unsigned 32-bit number expressed in the dotted-quad\r
+       notation, i.e., four octets written as decimal numbers\r
+       and separated with the '.' (full stop) character.";\r
+  }\r
+}\r