<?xml version="1.0" encoding="UTF-8"?>
<!--
  TR-069 Device:1.8 Root Object definition

  Copyright (c) 2010-2017, Broadband Forum
  
  Redistribution and use in source and binary forms, with or
  without modification, are permitted provided that the following
  conditions are met:
  
  1. Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.
  
  2. Redistributions in binary form must reproduce the above
     copyright notice, this list of conditions and the following
     disclaimer in the documentation and/or other materials
     provided with the distribution.
  
  3. Neither the name of the copyright holder nor the names of its
     contributors may be used to endorse or promote products
     derived from this software without specific prior written
     permission.
  
  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  
  The above license is used as a license under copyright only.
  Please reference the Forum IPR Policy for patent licensing terms
  <https://www.broadband-forum.org/ipr-policy>.
  
  Any moral rights which are necessary to exercise under the above
  license grant are also deemed granted under this license.
  
  Summary:
    TR-069 Device:1.5 Root Object Definition.  Contains definitions of CWMP
    retry parameters and additional parameters carried over from Internet-
    GatewayDevice:1.x objects.


  Editors:
    Sarah Banks, Cisco
    Andrea Colmegna, FASTWEB
    Tim Spets, Motorola Mobility

  Editors Object Addressing Extensions:
    Sarah Banks, Cisco
    Andrea Colmegna, FASTWEB
    Ping Fang, Huawei Technologies
    Nils Magnusson, TeliaSonera
    Anton Okmyanskiy, Cisco
    Staffan Ungsgard, TeliaSonera

  Editors Remote Management of non-TR-069 devices:
    John Blackford, Pace
    Ping Fang, Huawei Technologies
    Tim Spets, Motorola Mobility

  BroadbandHome™ Working Group Chairs:
    Greg Bathrick, PMC-Sierra
    Heather Kirksey, Alcatel-Lucent

  Vice Chair: 
    Jason Walls, UNH

  Chief Editor: 
    Michael Hanrahan, Huawei Technologies


  Version History:
    February 2010: tr-181-1-0-0.xml; corresponds to TR-181 Issue 1.
                   * DeviceInfo: clarified DeviceID and added VendorConfig-
                     File.{i}
                   * ManagementServer: added EnableCWMP, DefaultActive-
                     NotificationThrottle, CWMPRetryMinimumWaitInterval
                     and CWMPRetryIntervalMultiplier
                   * Time: added Enable and Status (and Time:2 profile)
    July     2011: tr-181-1-1-0.xml; corresponds to TR-181 Issue 1 Amendment 1.


-->
<dm:document
    xmlns:dm="urn:broadband-forum-org:cwmp:datamodel-1-14"
    xmlns:dmr="urn:broadband-forum-org:cwmp:datamodel-report-0-1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
      urn:broadband-forum-org:cwmp:datamodel-1-14
        https://www.broadband-forum.org/cwmp/cwmp-datamodel-1-14.xsd
      urn:broadband-forum-org:cwmp:datamodel-report-0-1
        http://www.broadband-forum.org/cwmp/cwmp-datamodel-report.xsd"
    spec="urn:broadband-forum-org:tr-181-1-1-0"
    file="tr-181-1-1-0.xml">
  <description>
    TR-181 Issue 1 Amendment 1
  </description>

  <dataType name="_AliasCommon">
    <description>
      A non-volatile handle used to reference this instance.

      '''This is intended only for use in protocol-independent "common"
      definitions, and MUST NOT be used in protocol-specific definitions.'''
    </description>
    <string>
      <size maxLength="64"/>
    </string>
  </dataType>

  <dataType name="_AliasCWMP" base="_AliasCommon">
    <description action="replace">
      A non-volatile handle used to reference this instance. Alias provides a
      mechanism for an ACS to label this instance for future reference.

      If the CPE supports the Alias-based Addressing feature as defined in
      {{bibref|TR-069|3.6.1}} and described in {{bibref|TR-069|Appendix II}},
      the following mandatory constraints MUST be enforced:

      * Its value MUST NOT be empty.

      * Its value MUST start with a letter.

      * If its value is not assigned by the ACS, it MUST start with a "cpe-"
        prefix.

      * The CPE MUST NOT change the parameter value.
    </description>
  </dataType>

  <dataType name="Alias" base="_AliasCWMP"/>

  <dataType name="IPAddress">
    <description>
      IP address, i.e. IPv4 address (or IPv4 subnet mask) or IPv6 address.

      All IPv4 addresses and subnet masks MUST be represented as strings in
      IPv4 dotted-decimal notation. Here are some examples of valid IPv4
      address textual representations:

      * 216.52.29.100

      * 192.168.1.254

      All IPv6 addresses MUST be represented using any of the 3 standard
      textual representations defined in {{bibref|RFC4291}} Sections 2.2.1,
      2.2.2 and 2.2.3. Both lower-case and upper-case letters can be used, but
      use of lower-case letters is RECOMMENDED. Here are some examples of valid
      IPv6 address textual representations:

      * 1080:0:0:800:ba98:3210:11aa:12dd

      * 1080::800:ba98:3210:11aa:12dd

      * 0:0:0:0:0:0:13.1.68.3

      IPv6 addresses MUST NOT include zone identifiers. Zone identifiers are
      discussed in {{bibref|RFC4007|Section 6}}.

      Unspecified or inapplicable addresses (or IPv4 subnet masks) MUST be
      represented as empty strings unless otherwise specified by the parameter
      definition.
    </description>
    <string>
      <size maxLength="45"/>
    </string>
  </dataType>

  <dataType name="MACAddress">
    <description>
      All MAC addresses are represented as strings of 12 hexadecimal digits
      (digits 0-9, letters A-F or a-f) displayed as six pairs of digits
      separated by colons. Unspecified or inapplicable MAC addresses MUST be
      represented as empty strings unless otherwise specified by the parameter
      definition.
    </description>
    <string>
      <size maxLength="17"/>
      <pattern value=""/>
      <pattern value="([0-9A-Fa-f][0-9A-Fa-f]:){5}([0-9A-Fa-f][0-9A-Fa-f])"/>
    </string>
  </dataType>

  <bibliography>
    <reference id="3GPP-TS.23.003">
      <name>3GPP TS 23.003</name>
      <title>Numbering, addressing and identification</title>
      <organization>3GPP CT WG4</organization>
      <hyperlink>https://www.3gpp.org/ftp/Specs/html-info/23003.htm</hyperlink>
    </reference>
    <reference id="OUI">
      <name>Organizationally Unique Identifiers (OUIs)</name>
      <hyperlink>https://standards.ieee.org/faqs/regauth</hyperlink>
    </reference>
    <reference id="IEEE_EUI64">
      <name>
        Guidelines for 64-bit Global Identifier (EUI-64) Registration Authority
      </name>
      <title>
        Guidelines for 64-bit Global Identifier (EUI-64) Registration Authority
      </title>
      <organization>IEEE</organization>
      <date>March 1997</date>
      <hyperlink>
        https://standards.ieee.org/regauth/oui/tutorials/EUI64.html
      </hyperlink>
    </reference>
    <reference id="DVB-TS.102.824">
      <name>TS 102 824</name>
      <title>
        Digital Video Broadcasting (DVB);Remote Management and Firmware Update
        System for DVB IP Services
      </title>
      <organization>ETSI</organization>
      <date>July 2008</date>
      <hyperlink>
        https://webapp.etsi.org/workprogram/Report_WorkItem.asp?WKI_ID=27769
      </hyperlink>
      <hyperlink>
        http://webapp.etsi.org/workprogram/Report_WorkItem.asp?WKI_ID=27769
      </hyperlink>
    </reference>
    <reference id="IANA-uri-schemes">
      <name>IANA Uniform Resource Identifier (URI) Schemes Registry</name>
      <title>Uniform Resource Identifier (URI) Schemes</title>
      <organization>IANA</organization>
      <hyperlink>https://www.iana.org/assignments/uri-schemes</hyperlink>
    </reference>
    <reference id="ISO-13818-6:1998">
      <name>ISO/IEC 13818-6:1998</name>
      <title>
        Information Technology - Generic coding of moving pictures and
        associated audio information - Part 6: Extensions for DSM-CC
      </title>
      <organization>ISO</organization>
      <date>1998</date>
      <hyperlink>
        https://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=25039
      </hyperlink>
      <hyperlink>
        http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=25039
      </hyperlink>
    </reference>
    <reference id="RFC793">
      <name>RFC 793</name>
      <title>Transmission Control Protocol</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>September 1981</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc793</hyperlink>
      <hyperlink>http://www.ietf.org/rfc/rfc793.txt</hyperlink>
    </reference>
    <reference id="RFC862">
      <name>RFC 862</name>
      <title>Echo Protocol</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>1983</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc862</hyperlink>
    </reference>
    <reference id="RFC959">
      <name>RFC 959</name>
      <title>File Transfer Protocol</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>1985</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc958</hyperlink>
    </reference>
    <reference id="RFC1323">
      <name>RFC 1323</name>
      <title>TCP Extensions for High Performance</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>May 1992</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc1323</hyperlink>
      <hyperlink>http://www.ietf.org/rfc/rfc1323.txt</hyperlink>
    </reference>
    <reference id="RFC2581">
      <name>RFC 2581</name>
      <title>TCP Congestion Control</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>April 1999</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2581</hyperlink>
      <hyperlink>http://www.ietf.org/rfc/rfc2581.txt</hyperlink>
    </reference>
    <reference id="RFC2582">
      <name>RFC 2582</name>
      <title>The NewReno Modification to TCP's Fast Recovery Algorithm</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>April 1999</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2582</hyperlink>
      <hyperlink>http://www.ietf.org/rfc/rfc2582.txt</hyperlink>
    </reference>
    <reference id="RFC2616">
      <name>RFC 2616</name>
      <title>Hypertext Transfer Protocol - HTTP/1.1</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>1999</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2616</hyperlink>
    </reference>
    <reference id="RFC2818">
      <name>RFC 2818</name>
      <title>HTTP Over TLS</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>May 2000</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2818</hyperlink>
      <hyperlink>http://www.ietf.org/rfc/rfc2818.txt</hyperlink>
    </reference>
    <reference id="RFC2974">
      <name>RFC 2974</name>
      <title>Session Announcement Protocol</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>October 2000</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2974</hyperlink>
      <hyperlink>http://www.ietf.org/rfc/rfc2974.txt</hyperlink>
    </reference>
    <reference id="RFC3066">
      <name>RFC 3066</name>
      <title>Tags for the Identification of Languages</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3066</hyperlink>
    </reference>
    <reference id="RFC3489">
      <name>RFC 3489</name>
      <title>
        STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network
        Address Translators (NATs)
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3489</hyperlink>
    </reference>
    <reference id="RFC3926">
      <name>RFC 3926</name>
      <title>FLUTE - File Delivery over Unidirectional Transport</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>October 2004</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3926</hyperlink>
      <hyperlink>http://www.ietf.org/rfc/rfc3926.txt</hyperlink>
    </reference>
    <reference id="RFC3986">
      <name>RFC 3986</name>
      <title>Uniform Resource Identifier (URI): Generic Syntax</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3986</hyperlink>
    </reference>
    <reference id="RFC4007">
      <name>RFC 4007</name>
      <title>IPv6 Scoped Address Architecture</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4007</hyperlink>
    </reference>
    <reference id="RFC4122">
      <name>RFC 4122</name>
      <title>A Universally Unique IDentifier (UUID) URN Namespace</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2005</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4122</hyperlink>
      <hyperlink>http://www.ietf.org/rfc/rfc4122.txt</hyperlink>
    </reference>
    <reference id="RFC4291">
      <name>RFC 4291</name>
      <title>IP Version 6 Addressing Architecture</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2006</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4291</hyperlink>
    </reference>
    <reference id="RFC4632">
      <name>RFC 4632</name>
      <title>
        Classless Inter-domain Routing (CIDR): The Internet Address Assignment
        and Aggregation Plan
      </title>
      <organization>IETF</organization>
      <date>2006</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4632</hyperlink>
    </reference>
    <reference id="RFC7159">
      <name>RFC7159</name>
      <title>
        The JavaScript Object Notation (JSON) Data Interchange Format
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>March 2014</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc7159</hyperlink>
    </reference>
    <reference id="RFC7230">
      <name>RFC 7230</name>
      <title>
        Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>June 2014</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc7230</hyperlink>
    </reference>
    <reference id="RFC7252">
      <name>RFC 7252</name>
      <title>The Constrained Application Protocol (CoAP)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>June 2014</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc7252</hyperlink>
    </reference>
    <reference id="RFC8141">
      <name>RFC 8141</name>
      <title>Uniform Resource Names (URNs)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>April 2017</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc8141</hyperlink>
    </reference>
    <reference id="TR-069a2">
      <name>TR-069 Amendment 2</name>
      <title>CPE WAN Management Protocol</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>December 2007</date>
    </reference>
    <reference id="TR-069a3">
      <name>TR-069 Amendment 3</name>
      <title>CPE WAN Management Protocol</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>November 2010</date>
    </reference>
    <reference id="TR-069a4">
      <name>TR-069 Amendment 4</name>
      <title>CPE WAN Management Protocol</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>July 2011</date>
    </reference>
    <reference id="TR-069">
      <name>TR-069 Amendment 6</name>
      <title>CPE WAN Management Protocol</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>April 2018</date>
    </reference>
    <reference id="TR-106a2">
      <name>TR-106 Amendment 2</name>
      <title>Data Model Template for TR-069-Enabled Devices</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>November 2008</date>
    </reference>
    <reference id="TR-106a3">
      <name>TR-106 Amendment 3</name>
      <title>Data Model Template for TR-069-Enabled Devices</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>September 2009</date>
    </reference>
    <reference id="TR-106a4">
      <name>TR-106 Amendment 4</name>
      <title>Data Model Template for TR-069-Enabled Devices</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>February 2010</date>
      <hyperlink>
        http://www.broadband-forum.org/technical/download/TR-106_Amendment-4.pdf
      </hyperlink>
    </reference>
    <reference id="TR-106a6">
      <name>TR-106 Amendment 6</name>
      <title>Data Model Template for TR-069-Enabled Devices</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>July 2011</date>
    </reference>
    <reference id="TR-106">
      <name>TR-106 Amendment 8</name>
      <title>Data Model Template for CWMP Endpoints and USP Agents</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>May 2018</date>
    </reference>
    <reference id="TR-143">
      <name>TR-143 Amendment 1 Corrigendum 1</name>
      <title>
        Enabling Network Throughput Performance Tests and Statistical
        Monitoring
      </title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>August 2015</date>
    </reference>
    <reference id="TR-157a3">
      <name>TR-157 Amendment 3</name>
      <title>Component Objects for CWMP</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>November 2010</date>
      <hyperlink>
        http://www.broadband-forum.org/technical/download/TR-106_Amendment-4.pdf
      </hyperlink>
    </reference>
    <reference id="TR-157">
      <name>TR-157 Amendment 10</name>
      <title>Component Objects for CWMP</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>November 2015</date>
    </reference>
    <reference id="DLNA-NDIG">
      <name>DLNA Networked Device Interoperability Guidelines</name>
      <title>
        DLNA Networked Device Interoperability Guidelines, Volume 2: Media
        Format Profiles.
      </title>
      <organization>DLNA</organization>
      <date>October 2006</date>
      <hyperlink>
        https://www.dlna.org/industry/certification/guidelines/
      </hyperlink>
      <hyperlink>
        http://www.dlna.org/industry/certification/guidelines/
      </hyperlink>
    </reference>
    <reference id="ICSA-Baseline">
      <name>ICSA Baseline Modular Firewall Certification Criteria</name>
      <title>Baseline module - version 4.1</title>
      <organization>ICSA Labs</organization>
      <date>2008</date>
      <hyperlink>
        https://www.icsalabs.com/sites/default/files/baseline.pdf
      </hyperlink>
      <hyperlink>
        http://www.icsalabs.com/sites/default/files/baseline.pdf
      </hyperlink>
    </reference>
    <reference id="ICSA-Residential">
      <name>ICSA Residential Modular Firewall Certification Criteria</name>
      <title>
        Required Services Security Policy - Residential Category module -
        version 4.1
      </title>
      <organization>ICSA Labs</organization>
      <date>2008</date>
      <hyperlink>
        https://www.icsalabs.com/sites/default/files/residential.pdf
      </hyperlink>
      <hyperlink>
        http://www.icsalabs.com/sites/default/files/residential.pdf
      </hyperlink>
    </reference>
    <reference id="SOAP1.1">
      <name>Simple Object Access Protocol (SOAP) 1.1</name>
      <organization>W3C</organization>
      <hyperlink>https://www.w3.org/TR/2000/NOTE-SOAP-20000508</hyperlink>
    </reference>
    <reference id="UPnP-DAv1">
      <name>UPnP Device Architecture</name>
      <title>UPnP Device Architecture 1.0</title>
      <organization>UPnP Forum</organization>
      <date>April 2008</date>
      <hyperlink>
        http://www.upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.0-20080424.pdf
      </hyperlink>
      <hyperlink>
        http://www.upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.0-20080424.pdf
      </hyperlink>
    </reference>
    <reference id="UPnP-DM:1">
      <name>UPnP Device Management:1</name>
      <title>UPnP Device Management v1</title>
      <hyperlink>
        https://openconnectivity.org/developer/specifications/upnp-resources/upnp/device-management1-2
      </hyperlink>
    </reference>
    <reference id="USB1.0">
      <name>USB 1.0</name>
      <title>USB 1.0 Specification</title>
      <organization>USB-IF</organization>
      <date>January 1996</date>
      <hyperlink>https://www.usb.org/documents</hyperlink>
      <hyperlink>http://www.usb.org/developers/docs/</hyperlink>
    </reference>
    <reference id="USB2.0">
      <name>USB 2.0</name>
      <title>USB 2.0 Specification</title>
      <organization>USB-IF</organization>
      <date>April 2000</date>
      <hyperlink>https://www.usb.org/documents</hyperlink>
      <hyperlink>
        http://www.usb.org/developers/docs/usb_20_122208.zip
      </hyperlink>
    </reference>
    <reference id="USB3.0">
      <name>USB 3.0</name>
      <title>USB 3.0 Specification</title>
      <organization>USB-IF</organization>
      <date>November 2008</date>
      <hyperlink>https://www.usb.org/documents</hyperlink>
      <hyperlink>http://www.usb.org/developers/docs/usb_30_spec.zip</hyperlink>
    </reference>
    <reference id="Z-Wave">
      <name>Z-Wave</name>
      <title>Z-Wave website</title>
      <hyperlink>https://www.z-wave.com</hyperlink>
    </reference>
    <reference id="ZigBee">
      <name>ZigBee</name>
      <title>ZigBee Alliance website</title>
      <hyperlink>https://csa-iot.org/all-solutions/zigbee</hyperlink>
    </reference>
    <reference id="ZigBee2007">
      <name>ZigBee 2007 Specification</name>
      <title>ZigBee 2007 Specification</title>
      <organization>ZigBee Alliance</organization>
      <date>October 2007</date>
      <hyperlink>https://csa-iot.org/all-solutions/zigbee</hyperlink>
    </reference>
  </bibliography>

  <model name="Device:1.8">

    <object name="Device." access="readOnly" minEntries="1" maxEntries="1">
      <description>
        The top-level object for a Device.
      </description>

      <parameter name="DeviceSummary" access="readOnly" forcedInform="true"
          status="deprecated">
        <description>
          See {{bibref|TR-106|section 3.7}}.

          This parameter is DEPRECATED because
          {{object|DeviceInfo.SupportedDataModel}} and associated Device Type
          XML documents (DT Instances) provide a more granular and scalable way
          of describing the device's data model. Therefore its value MAY be
          {{empty}} if (and only if) {{object|DeviceInfo.SupportedDataModel}}
          is supported.
        </description>
        <syntax>
          <string>
            <size maxLength="1024"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="UserNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SmartCardReaderNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Services." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object contains general services information.
      </description>
    </object>

    <object name="Device.DeviceInfo." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object contains general device information.
      </description>

      <parameter name="Manufacturer" access="readOnly">
        <description>
          The manufacturer of the CPE (human readable string).
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ManufacturerOUI" access="readOnly">
        <description>
          Organizationally unique identifier of the device manufacturer.
          Represented as a six hexadecimal-digit value using all upper-case
          letters and including any leading zeros. The value MUST be a valid
          OUI as defined in {{bibref|OUI}}.

          This value MUST remain fixed over the lifetime of the device,
          including across firmware updates.

          Any change would indicate that it's a new device and would therefore
          require a BOOTSTRAP Inform.
        </description>
        <syntax>
          <string>
            <size maxLength="6"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ModelName" access="readOnly" activeNotify="canDeny">
        <description>
          Model name of the CPE (human readable string).
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Description" access="readOnly" activeNotify="canDeny">
        <description>
          A full description of the CPE device (human readable string).
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProductClass" access="readOnly">
        <description>
          Identifier of the class of product for which the serial number
          applies. That is, for a given manufacturer, this parameter is used to
          identify the product or class of product over which the
          {{param|SerialNumber}} parameter is unique.

          This value MUST remain fixed over the lifetime of the device,
          including across firmware updates.

          Any change would indicate that it's a new device and would therefore
          require a BOOTSTRAP Inform.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SerialNumber" access="readOnly">
        <description>
          Serial number of the CPE.

          This value MUST remain fixed over the lifetime of the device,
          including across firmware updates.

          Any change would indicate that it's a new device and would therefore
          require a BOOTSTRAP Inform.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="HardwareVersion" access="readOnly" forcedInform="true">
        <description>
          A string identifying the particular CPE model and version.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SoftwareVersion" access="readOnly" forcedInform="true">
        <description>
          A string identifying the software version currently installed in the
          CPE. To allow version comparisons, this element SHOULD be in the form
          of dot-delimited integers, where each successive integer represents a
          more minor category of variation. For example, ''3.0.21'' where the
          components mean: ''Major.Minor.Build''.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EnabledOptions" access="readOnly" status="deprecated">
        <description>
          This parameter is DEPRECATED because the "voucher mechanism", as
          defined in {{bibref|TR-069a3|Annex C}} is deprecated in favor of the
          "Software Module Management mechanism" as described in
          {{bibref|TR-157a3|Appendix II}}. {{list}} The OptionName of each is
          identical to the OptionName element of the OptionStruct described in
          {{bibref|TR-069a3}}. Only those options are listed whose State
          indicates the option is enabled.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="AdditionalHardwareVersion" access="readOnly">
        <description>
          A comma-separated list of any additional versions. Represents any
          additional hardware version information the vendor might wish to
          supply.
        </description>
        <syntax>
          <list>
            <size maxLength="64"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="AdditionalSoftwareVersion" access="readOnly">
        <description>
          A comma-separated list of any additional versions. Represents any
          additional software version information the vendor might wish to
          supply.
        </description>
        <syntax>
          <list>
            <size maxLength="64"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ProvisioningCode" access="readWrite">
        <description>
          Identifier of the primary service provider and other provisioning
          information, which MAY be used by the ACS to determine service
          provider-specific customization and provisioning parameters.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DeviceStatus" access="readOnly">
        <description>
          Current operational status of the device.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Initializing"/>
            <enumeration value="Error"/>
            <enumeration value="Disabled"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="UpTime" access="readOnly" activeNotify="canDeny">
        <description>
          Time in seconds since the CPE was last restarted.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="FirstUseDate" access="readOnly" activeNotify="canDeny">
        <description>
          Date and time in UTC that the CPE first both successfully established
          an IP-layer network connection and acquired an absolute time
          reference using NTP or equivalent over that network connection. The
          CPE MAY reset this date after a factory reset.

          If NTP or equivalent is not available, this parameter, if present,
          SHOULD be set to the Unknown Time value.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="DeviceLog" access="readOnly" activeNotify="canDeny">
        <description>
          Vendor-specific log(s).
        </description>
        <syntax>
          <string>
            <size maxLength="32768"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SupportedDataModelNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="VendorConfigFileNumberOfEntries" access="readOnly">
        <description>
          The number of entries in the {{object|VendorConfigFile}} table.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ProcessorNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="VendorLogFileNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DeviceInfo.MemoryStatus." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Status of the device's volatile physical memory.
      </description>

      <parameter name="Total" access="readOnly">
        <description>
          The total physical RAM, in {{units}}, installed on the device.
        </description>
        <syntax>
          <unsignedInt>
            <units value="kilobytes"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Free" access="readOnly" activeNotify="canDeny">
        <description>
          The free physical RAM, in {{units}}, currently available on the
          device.
        </description>
        <syntax>
          <unsignedInt>
            <units value="kilobytes"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DeviceInfo.ProcessStatus." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Status of the processes on the device.
      </description>

      <parameter name="CPUUsage" access="readOnly" activeNotify="canDeny">
        <description>
          The total amount of the CPU, in {{units}}, rounded up to the nearest
          whole {{units}}. In the case that multiple CPU are present, this
          value represents the average of all CPU.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="100"/>
            <units value="percent"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ProcessNumberOfEntries" access="readOnly">
        <description>
          {{numentries}} Since a Process can come and go very quickly, the CPE
          SHOULD place a locally specified limit on the frequency at which it
          will notify the ACS of value changes, as described in
          {{bibref|TR-069a2|Section 3.2.1}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DeviceInfo.ProcessStatus.Process.{i}."
        access="readOnly" numEntriesParameter="ProcessNumberOfEntries"
        minEntries="0" maxEntries="unbounded">
      <description>
        List of all processes running on the device.
      </description>
      <uniqueKey>
        <parameter ref="PID"/>
      </uniqueKey>

      <parameter name="PID" access="readOnly">
        <description>
          The Process Identifier.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="Command" access="readOnly">
        <description>
          The name of the command that has caused the process to exist.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Size" access="readOnly" activeNotify="canDeny">
        <description>
          The size in {{units}} of the memory occupied by the process.
        </description>
        <syntax>
          <unsignedInt>
            <units value="kilobytes"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Priority" access="readOnly">
        <description>
          The priority of the process where 0 is highest.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="99"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="CPUTime" access="readOnly" activeNotify="canDeny">
        <description>
          The amount of time in {{units}} that the process has spent taking up
          CPU time since the process was started.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="State" access="readOnly" activeNotify="canDeny">
        <description>
          The current state that the process is in.
        </description>
        <syntax>
          <string>
            <enumeration value="Running"/>
            <enumeration value="Sleeping"/>
            <enumeration value="Stopped"/>
            <enumeration value="Idle" optional="true"/>
            <enumeration value="Uninterruptible" optional="true"/>
            <enumeration value="Zombie" optional="true"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DeviceInfo.TemperatureStatus." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Status of the temperature of the device.
      </description>

      <parameter name="TemperatureSensorNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}."
        access="readOnly"
        numEntriesParameter="TemperatureSensorNumberOfEntries" minEntries="0"
        maxEntries="unbounded">
      <description>
        This object represents information that the device has obtained via
        sampling an internal temperature sensor.
      </description>
      <uniqueKey>
        <parameter ref="Name"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny"
          dmr:previousParameter="">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Indicates whether or not the temperature sensor is enabled.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this temperature sensor.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled">
              <description>
                The sensor is not currently sampling the temperature.
              </description>
            </enumeration>
            <enumeration value="Enabled">
              <description>
                The sensor is currently sampling the temperature.
              </description>
            </enumeration>
            <enumeration value="Error">
              <description>
                The sensor error currently prevents sampling the temperature.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Reset" access="readWrite">
        <description>
          When set to {{true}}, resets the temperature sensor.
        </description>
        <syntax hidden="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ResetTime" access="readOnly">
        <description>
          The time at which this temperature sensor was reset. Reset can be
          caused by:

          * {{param|Status}} transition from {{enum|Disabled|Status}} to
            {{enum|Enabled|Status}}

          * {{param|Reset}} set to {{true}}.

          * An internal reset of the temperature sensor (including a reboot of
            the device). The Unknown Time value, as defined in
            {{bibref|TR-106a2}}, indicates that this temperature sensor has
            never been reset, which can only happen if it has never been
            enabled.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readOnly">
        <description>
          Name of this temperature sensor. This text MUST be sufficient to
          distinguish this temperature sensor from other temperature sensors.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Value" access="readOnly" activeNotify="canDeny">
        <description>
          This temperature sensor's last good reading in {{units}}. A value of
          -274 (which is below absolute zero) indicates a good reading has not
          been obtained since last reset.
        </description>
        <syntax>
          <int>
            <range minInclusive="-274"/>
            <units value="degrees celsius"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="LastUpdate" access="readOnly" activeNotify="canDeny">
        <description>
          The time at which this temperature sensor's last good reading was
          obtained. The Unknown Time value, as defined in {{bibref|TR-106a2}},
          indicates a good reading has not been obtained since last reset.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="MinValue" access="readOnly">
        <description>
          This temperature sensor's lowest value reading in {{units}} since
          last reset. A value of -274 (which is below absolute zero) indicates
          a good reading has not been obtained since last reset.
        </description>
        <syntax>
          <int>
            <range minInclusive="-274"/>
            <units value="degrees celsius"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="MinTime" access="readOnly">
        <description>
          The time at which this temperature sensor's lowest value was read.
          The Unknown Time value, as defined in {{bibref|TR-106a2}}, indicates
          a good reading has not been obtained since last reset.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="MaxValue" access="readOnly">
        <description>
          This temperature sensor's highest value reading in {{units}} since
          last reset. A value of -274 (which is below absolute zero) indicates
          a good reading has not been obtained since last reset.
        </description>
        <syntax>
          <int>
            <range minInclusive="-274"/>
            <units value="degrees celsius"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="MaxTime" access="readOnly">
        <description>
          The time at which this temperature sensor's highest value was read.
          The Unknown Time value, as defined in {{bibref|TR-106a2}}, indicates
          a good reading has not been obtained since last reset.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="LowAlarmValue" access="readWrite">
        <description>
          This temperature sensor's low alarm value in {{units}}. A value of
          -274 (which is below absolute zero) indicates a non configured value.

          A change to this value will cause {{param|LowAlarmTime}} to be reset.
        </description>
        <syntax>
          <int>
            <range minInclusive="-274"/>
            <units value="degrees celsius"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="LowAlarmTime" access="readOnly">
        <description>
          Initial time at which this temperature sensor's
          {{param|LowAlarmValue}} was encountered. This value is only set the
          first time the alarm is seen and not changed until the next reset.
          The Unknown Time value, as defined in {{bibref|TR-106a2}}, indicates
          that an alarm has not been encountered since the last reset.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="HighAlarmValue" access="readWrite">
        <description>
          This temperature sensor's high alarm value in {{units}}. A value of
          -274 (which is below absolute zero) indicates a non configured value.

          A change to this value will cause {{param|HighAlarmTime}} to be
          reset.
        </description>
        <syntax>
          <int>
            <range minInclusive="-274"/>
            <units value="degrees celsius"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="HighAlarmTime" access="readOnly">
        <description>
          Initial time at which this temperature sensor's
          {{param|HighAlarmValue}} was encountered. This value is only set the
          first time the alarm is seen and not changed until the next reset.
          The Unknown Time value, as defined in {{bibref|TR-106a2}}, indicates
          that an alarm has not been encountered since the last reset.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="PollingInterval" access="readWrite">
        <description>
          The interval, measured in {{units}}, in which the device polls this
          {{object}}. If the value is 0 then the device selects its own polling
          interval. If the value is greater than 0 then the device MUST use
          this value as the polling interval.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DeviceInfo.NetworkProperties." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object defines the parameters that describe how the device handles
        network traffic.
      </description>

      <parameter name="MaxTCPWindowSize" access="readOnly">
        <description>
          The maximum number of {{units}} of outstanding data a sender can send
          on a particular connection prior to an acknowledgment
          {{bibref|RFC793}}. Any scaling factor SHOULD be included in this
          parameter {{bibref|RFC1323}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bytes"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TCPImplementation" access="readOnly">
        <description>
          {{list}} Indicates the TCP congestion control mechanism(s)
          implemented. {{enum}} Tahoe, Reno, and New Reno are defined in
          {{bibref|RFC2582}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="Tahoe">
              <description>
                Represents the base TCP implementation in {{bibref|RFC793}} and
                elements of {{bibref|RFC2582}}
              </description>
            </enumeration>
            <enumeration value="Reno">
              <description>
                Represents the base TCP implementation in {{bibref|RFC793}}
                with the additional algorithms defined in {{bibref|RFC2581}}
              </description>
            </enumeration>
            <enumeration value="New Reno">
              <description>
                Described as a modification to the Reno algorithms in
                {{bibref|RFC2582}}
              </description>
            </enumeration>
            <enumeration value="Vegas">
              <description>
                An emerging TCP congestion control mechanism
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DeviceInfo.SupportedDataModel.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="SupportedDataModelNumberOfEntries">
      <description>
        This table contains details of the device's Current Supported Data
        Model. The table MUST describe the device's entire Supported Data
        Model. Therefore, if a device's Supported Data Model changes at
        run-time, entries will need to be added or removed as appropriate. Each
        table entry MUST refer to only a single Root Object or Service Object.
        The device MAY choose to use more than one table entry for a given Root
        Object or Service Object. Considering that every device has some form
        of a data model, this table MUST NOT be empty.
      </description>
      <uniqueKey>
        <parameter ref="URL"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny"
          dmr:previousParameter="">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>

      <parameter name="URL" access="readOnly">
        <description>
          URL ({{bibref|RFC3986}}) that describes some or all of the device's
          Current Supported Data Model. The URL MUST reference an XML file
          which describes the appropriate part of the Supported Data Model. The
          referenced XML file MUST be compliant with the DT (Device Type)
          Schema that is described in {{bibref|TR-106a3|Annex B}}, including
          any additional normative requirements referenced within the Schema.
          The XML file referenced by this URL MUST NOT change while the CPE is
          running, and SHOULD NOT change across a CPE reboot. Note that, if the
          same XML file is to be used for multiple CPE, this strongly suggests
          that the XML file referenced by this URL should ''never'' change. The
          URL MAY permit the XML file to be accessed at run-time, in which
          case, the XML file MAY be located within the CPE. Behavior in the
          event of an invalid URL, failure to access the referenced XML file,
          or an invalid XML file, is implementation-dependent.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="URN" access="readOnly">
        <description>
          URN ({{bibref|RFC3986}}) that is the value of the spec attribute in
          the DM (data model) Instance that defines the Root Object or Service
          Object referenced by this table entry. For example, if this table
          entry references a DT Instance that refers to the ''Device:1.3'' Root
          Object, the value of this parameter would be
          ''urn:broadband-forum-org:tr-157-1-0-0'', because TR-157 defines
          ''Device:1.3''. If the DT Instance instead referred to a
          vendor-specific Root Object, e.g. ''X_EXAMPLE_Device:1.0'' (derived
          from ''Device:1.3''), the value of this parameter would be something
          like ''urn:example-com:device-1-0-0''.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Features" access="readOnly">
        <description>
          This parameter MUST list exactly the features that are defined using
          the top-level ''feature'' element in the DT Instance referenced by
          {{param|URL}}. For example, if the DT instance specified the
          following:

          :&lt;feature name="DNSServer"/&gt;

          :&lt;feature name="Router"/&gt;

          :&lt;feature name="X_MyDeviceFeature"/&gt; then the value of this
           parameter might be ''DNSServer,Router,X_MyDeviceFeature''. The order
           in which the features are listed is not significant.
        </description>
        <syntax>
          <list/>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DeviceInfo.VendorConfigFile.{i}." access="readOnly"
        numEntriesParameter="VendorConfigFileNumberOfEntries" minEntries="0"
        maxEntries="unbounded">
      <description>
        Every instance of this object is a Vendor Configuration File, and
        contains parameters associated with the Vendor Configuration File. This
        table of Vendor Configuration Files is for information only and does
        not allow the ACS to operate on these files in any way. Whenever the
        CPE successfully downloads a configuration file as a result of the
        Download RPC with the FileType argument of ''3 Vendor Configuration
        File'', the CPE MUST update this table. If the name of the file
        (determined as described in the definition of the {{param|Name}}
        parameter) differs from that of any existing instance, then the CPE
        MUST create a new instance to represent this file. If instead, the name
        of the file is identical to that of an existing instance, then the CPE
        MUST update the content of the existing instance with the new version,
        date, and (optionally) description of the file.{{nokeys}}
      </description>
      <uniqueKey>
        <parameter ref="Name"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Name" access="readOnly">
        <description>
          Name of the vendor configuration file. If the CPE is able to obtain
          the name of the configuration file from the file itself, then the
          value of this parameter MUST be set to that name. Otherwise, if the
          CPE can extract the file name from the URL used to download the
          configuration file, then the value of this parameter MUST be set to
          that name. Otherwise, the value of this parameter MUST be set to the
          value of the TargetFileName argument of the Download RPC used to
          download this configuration file.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Version" access="readOnly">
        <description>
          A string identifying the configuration file version currently used in
          the CPE. If the CPE is able to obtain the version of the
          configuration file from the file itself, then the value of this
          parameter MUST be set to the obtained value. Otherwise, the value of
          this parameter MUST be {{empty}}.
        </description>
        <syntax>
          <string>
            <size maxLength="16"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Date" access="readOnly">
        <description>
          Date and time when the content of the current version of this vendor
          configuration file was first applied by the CPE.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="Description" access="readOnly">
        <description>
          A description of the vendor configuration file (human-readable
          string).
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DeviceInfo.Processor.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="ProcessorNumberOfEntries" dmr:noUniqueKeys="true">
      <description>
        Each table entry represents a hardware or virtual processor that
        resides on this device.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny"
          dmr:previousParameter="">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>

      <parameter name="Architecture" access="readOnly">
        <description>
          The architecture of the processor on the underlying hardware.
          {{enum}} For processor architectures not included in this list, the
          vendor MAY include vendor-specific values, which MUST use the format
          defined in {{bibref|TR-106a4|Section 3.3}}.
        </description>
        <syntax>
          <string>
            <enumeration value="arm"/>
            <enumeration value="i386"/>
            <enumeration value="m68010"/>
            <enumeration value="m68k"/>
            <enumeration value="mipseb">
              <description>big-endian</description>
            </enumeration>
            <enumeration value="mipsel">
              <description>little-endian</description>
            </enumeration>
            <enumeration value="powerpc"/>
            <enumeration value="sh3eb">
              <description>big-endian</description>
            </enumeration>
            <enumeration value="sh3el">
              <description>little-endian</description>
            </enumeration>
            <enumeration value="x86_64"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DeviceInfo.VendorLogFile.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="VendorLogFileNumberOfEntries">
      <description>
        Each table entry represents a Vendor Log File. This table of log files
        is informational only and does not allow the ACS to operate on these
        files in any way.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readOnly">
        <description>
          Name of the log file. Typically this will be the full file system
          path, but provided that it is guaranteed to be unique across current
          and future log files, it MAY be a shorter name derived from the file
          system path, or be derived via another mechanism.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaximumSize" access="readOnly">
        <description>
          The maximum size of the log file in {{units}}. If the device doesn’t
          know the maximum file size then {{param}} will be 0.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bytes"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Persistent" access="readOnly">
        <description>
          When {{true}}, the log file contents are preserved across a device
          reboot. When {{false}}, the log file contents will be purged when the
          device is rebooted.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DeviceInfo.ProxierInfo." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Represents the associated CPE Proxier for a Proxied Device that
        utilizes the Virtual CWMP Device Mechanism {{bibref|TR-069a4|Annex
        J.1.1}}.
      </description>

      <parameter name="ManufacturerOUI" access="readOnly">
        <description>
          Organizationally unique identifier of the associated CPE Proxier.
          Represented as a six hexadecimal-digit value using all upper-case
          letters and including any leading zeros. {{pattern}} The value MUST
          be a valid OUI as defined in {{bibref|OUI}}.
        </description>
        <syntax>
          <string>
            <size minLength="6" maxLength="6"/>
            <pattern value="[0-9A-F]{6}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProductClass" access="readOnly">
        <description>
          Identifier of the class of product of the associated CPE Proxier for
          which the serial number applies. {{empty}} indicates either that the
          CPE Proxier does not use a product class to differentiate its serial
          number.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SerialNumber" access="readOnly">
        <description>
          Serial number of the associated CPE Proxier.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProxyProtocol" access="readOnly">
        <description>
          The protocol being used to communicate between the CPE Proxier and
          this Proxied Device. {{enum}} Vendors can extend the enumerated
          values with vendor specific extensions, in which case the rules
          outlined in {{bibref|TR-106a6|3.3}} MUST be adhered to.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
            <enumeration value="Z-Wave">
              <description>see {{bibref|Z-Wave}}</description>
            </enumeration>
            <enumeration value="ZigBee">
              <description>see {{bibref|ZigBee}}</description>
            </enumeration>
            <enumeration value="UPnP-DM">
              <description>see {{bibref|UPnP-DM:1}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ManagementServer." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object contains parameters relating to the CPE's association with
        an ACS.
      </description>

      <parameter name="EnableCWMP" access="readWrite" dmr:previousParameter="">
        <description>
          Enables and disables the CPE's support for CWMP. {{false}} means that
          CWMP support in the CPE is disabled, in which case the device MUST
          NOT send any Inform messages to the ACS or accept any Connection
          Request notifications from the ACS. {{true}} means that CWMP support
          on the CPE is enabled. The subscriber can re-enable the CPE's CWMP
          support either by performing a factory reset or by using a LAN-side
          protocol to change the value of this parameter back to {{true}}.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="true"/>
        </syntax>
      </parameter>

      <parameter name="URL" access="readWrite">
        <description>
          URL, as defined in {{bibref|RFC3986}}, for the CPE to connect to the
          ACS using the CPE WAN Management Protocol. This parameter MUST be in
          the form of a valid HTTP or HTTPS URL. The ''host'' portion of this
          URL is used by the CPE for validating the ACS certificate when using
          SSL or TLS. Note that on a factory reset of the CPE, the value of
          this parameter might be reset to its factory value. If an ACS
          modifies the value of this parameter, it SHOULD be prepared to
          accommodate the situation that the original value is restored as the
          result of a factory reset.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Username" access="readWrite">
        <description>
          Username used to authenticate the CPE when making a connection to the
          ACS using the CPE WAN Management Protocol. This username is used only
          for HTTP-based authentication of the CPE.

          Note that on a factory reset of the CPE, the value of this parameter
          might be reset to its factory value. If an ACS modifies the value of
          this parameter, it SHOULD be prepared to accommodate the situation
          that the original value is restored as the result of a factory reset.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Password" access="readWrite">
        <description>
          Password used to authenticate the CPE when making a connection to the
          ACS using the CPE WAN Management Protocol. This password is used only
          for HTTP-based authentication of the CPE. When read, this parameter
          returns {{empty}}, regardless of the actual value.

          Note that on a factory reset of the CPE, the value of this parameter
          might be reset to its factory value. If an ACS modifies the value of
          this parameter, it SHOULD be prepared to accommodate the situation
          that the original value is restored as the result of a factory reset.
        </description>
        <syntax hidden="true">
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PeriodicInformEnable" access="readWrite">
        <description>
          Whether or not the CPE MUST periodically send CPE information to the
          ACS using the Inform method call.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PeriodicInformInterval" access="readWrite">
        <description>
          The duration in seconds of the interval for which the CPE MUST
          attempt to connect with the ACS and call the Inform method if
          {{param|PeriodicInformEnable}} is {{true}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PeriodicInformTime" access="readWrite">
        <description>
          An absolute time reference in UTC to determine when the CPE will
          initiate the periodic Inform method calls. Each Inform call MUST
          occur at this reference time plus or minus an integer multiple of the
          {{param|PeriodicInformInterval}}. {{param}} is used only to set the
          ''phase'' of the periodic Informs. The actual value of {{param}} can
          be arbitrarily far into the past or future. For example, if
          {{param|PeriodicInformInterval}} is 86400 (a day) and if {{param}} is
          set to UTC midnight on some day (in the past, present, or future)
          then periodic Informs will occur every day at UTC midnight. These
          MUST begin on the very next midnight, even if {{param}} refers to a
          day in the future. The Unknown Time value defined in
          {{bibref|TR-106a2|section 3.2}} indicates that no particular time
          reference is specified. That is, the CPE MAY locally choose the time
          reference, and needs only to adhere to the specified
          {{param|PeriodicInformInterval}}. If absolute time is not available
          to the CPE, its periodic Inform behavior MUST be the same as if the
          {{param}} parameter was set to the Unknown Time value.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ParameterKey" access="readOnly" activeNotify="canDeny"
          forcedInform="true">
        <description>
          {{param}} provides the ACS a reliable and extensible means to track
          changes made by the ACS. The value of {{param}} MUST be equal to the
          value of the ParameterKey argument from the most recent successful
          SetParameterValues, AddObject, or DeleteObject method call from the
          ACS. The CPE MUST set {{param}} to the value specified in the
          corresponding method arguments if and only if the method completes
          successfully and no fault response is generated. If a method call
          does not complete successfully (implying that the changes requested
          in the method did not take effect), the value of {{param}} MUST NOT
          be modified. The CPE MUST only modify the value of {{param}} as a
          result of SetParameterValues, AddObject, DeleteObject, or due to a
          factory reset. On factory reset, the value of {{param}} MUST be set
          to {{empty}}.
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ConnectionRequestURL" access="readOnly"
          forcedInform="true">
        <description>
          HTTP URL, as defined in {{bibref|RFC3986}}, for an ACS to make a
          Connection Request notification to the CPE. In the form:

          : http://host:port/path The ''host'' portion of the URL MAY be the IP
            address for the management interface of the CPE in lieu of a host
            name.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ConnectionRequestUsername" access="readWrite">
        <description>
          Username used to authenticate an ACS making a Connection Request to
          the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ConnectionRequestPassword" access="readWrite">
        <description>
          Password used to authenticate an ACS making a Connection Request to
          the CPE. When read, this parameter returns {{empty}}, regardless of
          the actual value.
        </description>
        <syntax hidden="true">
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="UpgradesManaged" access="readWrite">
        <description>
          Indicates whether or not the ACS will manage upgrades for the CPE. If
          {{true}}, the CPE SHOULD NOT use other means other than the ACS to
          seek out available upgrades. If {{false}}, the CPE MAY use other
          means for this purpose. Note that an autonomous upgrade (reported via
          an "10 AUTONOMOUS TRANSFER COMPLETE" Inform Event code) SHOULD be
          regarded as a managed upgrade if it is performed according to
          ACS-specified policy.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="KickURL" access="readOnly">
        <description>
          Present only for a CPE that supports the Kicked RPC method.
          LAN-accessible URL, as defined in {{bibref|RFC3986}}, from which the
          CPE can be ''kicked'' to initiate the Kicked RPC method call. MUST be
          an absolute URL including a host name or IP address as would be used
          on the LAN side of the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DownloadProgressURL" access="readOnly">
        <description>
          Present only for a CPE that provides a LAN-side web page to show
          progress during a file download. LAN-accessible URL, as defined in
          {{bibref|RFC3986}}, to which a web-server associated with the ACS MAY
          redirect a user's browser on initiation of a file download to
          observer the status of the download.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DefaultActiveNotificationThrottle" access="readWrite"
          dmr:previousParameter="DownloadProgressURL">
        <description>
          This parameter is used to control throttling of active notifications
          sent by the CPE to the ACS. It defines the minimum number of seconds
          that the CPE MUST wait since the end of the last session with the ACS
          before establishing a new session for the purpose of delivering an
          active notification. In other words, if CPE needs to establish a new
          session with the ACS for the sole purpose of delivering an active
          notification, it MUST delay establishing such a session as needed to
          ensure that the minimum time since the last session completion has
          been met. The time is counted since the last successfully completed
          session, regardless of whether or not it was used for active
          notifications or other purposes. However, if connection to the ACS is
          established for purposes other than just delivering active
          notifications, including for the purpose of retrying a failed
          session, such connection MUST NOT be delayed based on this parameter
          value, and the pending active notifications MUST be communicated
          during that connection. The time of the last session completion does
          not need to be tracked across reboots.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UDPConnectionRequestAddress" access="readOnly">
        <description>
          Address and port to which an ACS MAY send a UDP Connection Request to
          the CPE (see {{bibref|TR-069a2|Annex G}}). This parameter is
          represented in the form of an Authority element as defined in
          {{bibref|RFC3986}}. The value MUST be in one of the following two
          forms:

          : host:port

          : host

          * When {{param|STUNEnable}} is {{true}}, the ''host'' and ''port''
            portions of this parameter MUST represent the public address and
            port corresponding to the NAT binding through which the ACS can
            send UDP Connection Request messages (once this information is
            learned by the CPE through the use of STUN).

          * When {{param|STUNEnable}} is {{false}}, the ''host'' and ''port''
            portions of the URL MUST represent the local IP address and port on
            which the CPE is listening for UDP Connection Request messages. The
            second form of this parameter MAY be used only if the port value is
            equal to ''80''.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="UDPConnectionRequestAddressNotificationLimit"
          access="readWrite">
        <description>
          The minimum time, in seconds, between Active Notifications resulting
          from changes to the {{param|UDPConnectionRequestAddress}} (if Active
          Notification is enabled).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="STUNEnable" access="readWrite">
        <description>
          Enables or disables the use of STUN by the CPE. This applies only to
          the use of STUN in association with the ACS to allow UDP Connection
          Requests.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="STUNServerAddress" access="readWrite">
        <description>
          Host name or IP address of the STUN server for the CPE to send
          Binding Requests if STUN is enabled via {{param|STUNEnable}}. If is
          {{empty}} and {{param|STUNEnable}} is {{true}}, the CPE MUST use the
          address of the ACS extracted from the host portion of the ACS URL.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="STUNServerPort" access="readWrite">
        <description>
          Port number of the STUN server for the CPE to send Binding Requests
          if STUN is enabled via {{param|STUNEnable}}. By default, this SHOULD
          be the equal to the default STUN port, 3478.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="STUNUsername" access="readWrite">
        <description>
          If is not {{empty}}, the value of the STUN USERNAME attribute to be
          used in Binding Requests (only if message integrity has been
          requested by the STUN server). If is {{empty}}, the CPE MUST NOT send
          STUN Binding Requests with message integrity.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="STUNPassword" access="readWrite">
        <description>
          The value of the STUN Password to be used in computing the
          MESSAGE-INTEGRITY attribute to be used in Binding Requests (only if
          message integrity has been requested by the STUN server). When read,
          this parameter returns {{empty}}, regardless of the actual value.
        </description>
        <syntax hidden="true">
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="STUNMaximumKeepAlivePeriod" access="readWrite">
        <description>
          If STUN Is enabled, the maximum period, in seconds, that STUN Binding
          Requests MUST be sent by the CPE for the purpose of maintaining the
          binding in the Gateway. This applies specifically to Binding Requests
          sent from the UDP Connection Request address and port. A value of -1
          indicates that no maximum period is specified.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="STUNMinimumKeepAlivePeriod" access="readWrite">
        <description>
          If STUN Is enabled, the minimum period, in seconds, that STUN Binding
          Requests can be sent by the CPE for the purpose of maintaining the
          binding in the Gateway. This limit applies only to Binding Requests
          sent from the UDP Connection Request address and port, and only those
          that do not contain the BINDING-CHANGE attribute. This limit does not
          apply to retransmissions following the procedures defined in
          {{bibref|RFC3489}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NATDetected" access="readOnly">
        <description>
          When STUN is enabled, this parameter indicates whether or not the CPE
          has detected address and/or port mapping in use. A {{true}} value
          indicates that the received MAPPED-ADDRESS in the most recent Binding
          Response differs from the CPE's source address and port. When
          {{param|STUNEnable}} is {{false}}, this value MUST be {{false}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AliasBasedAddressing" access="readOnly"
          forcedInform="true" dmr:previousParameter="NATDetected">
        <description>
          Indicates whether or not the Alias-Based Addressing Mechanism is
          supported. A {{true}} value indicates that the CPE supports the
          Alias-Based Addressing Mechanism, as defined in
          {{bibref|TR-069a4|3.6.1}} and described in {{bibref|TR-069a4|Appendix
          II}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="CWMPRetryMinimumWaitInterval" access="readWrite">
        <description>
          Configures the first session retry wait interval, in seconds, as
          specified in {{bibref|TR-069a2|section 3.2.1.1}}. A value of 5
          corresponds to the default behavior that is described in
          {{bibref|TR-069a2}}. The device MUST use a random value between
          {{param}} and ({{param}} * {{param|CWMPRetryIntervalMultiplier}} /
          1000) as the first retry wait interval. Other values in the retry
          pattern MUST be calculated using this value as a starting point.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="CWMPRetryIntervalMultiplier" access="readWrite">
        <description>
          Configures the retry interval multiplier as specified in
          {{bibref|TR-069a2|section 3.2.1.1}}. This value is expressed in units
          of 0.001. Hence the values of the multiplier range between 1.000 and
          65.535. A value of 2000 corresponds to the default behavior that is
          described in {{bibref|TR-069a2}}. The device MUST use a random value
          between {{param|CWMPRetryMinimumWaitInterval}} and
          ({{param|CWMPRetryMinimumWaitInterval}} * {{param}} / 1000) as the
          first retry wait interval. Other values in the retry pattern MUST be
          calculated using this value as a starting point.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1000" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="InstanceMode" access="readWrite">
        <description>
          Instance identification mode as defined in {{bibref|TR-069a4|3.6.1}}.
          When {{param|AliasBasedAddressing}} is {{true}}, {{param}} is used by
          the ACS to control whether the CPE will use Instance Numbers or
          Instance Aliases in returned Path Names. {{enum}} This parameter is
          REQUIRED for any CPE supporting Alias-Based Addressing.
        </description>
        <syntax>
          <string>
            <enumeration value="InstanceNumber"/>
            <enumeration value="InstanceAlias"/>
          </string>
          <default type="factory" value="InstanceNumber"/>
        </syntax>
      </parameter>

      <parameter name="AutoCreateInstances" access="readWrite">
        <description>
          Enable or disable the Auto-Create Instance Mechanism. When
          {{param|AliasBasedAddressing}} is {{true}}, {{param}} indicates
          whether or not the CPE will automatically create instances while
          processing a SetParameterValues RPC (as defined in
          {{bibref|TR-069a4|A.3.2.1}}).

          *A {{true}} value indicates that the CPE will perform auto-creation
           of instances when the Alias-Based Addressing Mechanism is used in
           SetParameterValues RPC.

          *A {{false}} value indicates that the CPE will not create new object
           instances. Instead, it will reject the setting of parameters in
           unrecognized instances and respond with a fault code. This parameter
           is REQUIRED for any CPE supporting Alias-Based Addressing.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ManagementServer.AutonomousTransferCompletePolicy."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        This object allows configuration of CPE policy for notification of
        AUTONOMOUS TRANSFER COMPLETE events, defined in {{bibref|TR-069a2}}.
        The CPE policy determines the conditions under which the CPE notifies
        the ACS of the completion of file transfers that were not specifically
        requested by the ACS.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable/disable CPE notification of AUTONOMOUS TRANSFER COMPLETE
          events to the ACS.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TransferTypeFilter" access="readWrite">
        <description>
          Indicates the transfer types that MUST be included when the CPE
          notifies the ACS of AUTONOMOUS TRANSFER COMPLETE events. Transfer
          types not indicated by this filter MUST NOT be included when the CPE
          notifies the ACS. {{enum}} Note that this includes any backup or
          restore operations that were not specifically requested by the ACS. A
          backup is regarded as an Upload and a restore is regarded as a
          Download.
        </description>
        <syntax>
          <string>
            <enumeration value="Upload"/>
            <enumeration value="Download"/>
            <enumeration value="Both">
              <description>Upload and Download</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="ResultTypeFilter" access="readWrite"
          dmr:previousParameter="TransferTypeFilter">
        <description>
          Indicates the transfer results that MUST be included when the CPE
          notifies the ACS of AUTONOMOUS TRANSFER COMPLETE events. Transfer
          results omitted from this list MUST NOT be included when the CPE
          notifies the ACS. Note that this includes any backup or restore
          operations that were not specifically requested by the ACS. A backup
          is regarded as an Upload and a restore is regarded as a Download.
        </description>
        <syntax>
          <string>
            <enumeration value="Success">
              <description>
                The autonomous file transfer completed successfully; i.e., the
                FaultCode was zero
              </description>
            </enumeration>
            <enumeration value="Failure">
              <description>
                The autonomous file transfer did not complete successfully;
                i.e., the FaultCode was non-zero
              </description>
            </enumeration>
            <enumeration value="Both">
              <description>Success and Failure</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="FileTypeFilter" access="readWrite">
        <description>
          {{list}} Indicates the file types that MUST be included when the CPE
          notifies the ACS of AUTONOMOUS TRANSFER COMPLETE events. File types
          omitted from this list MUST NOT be included when the CPE notifies the
          ACS. {{pattern}} Additionally, the following format is defined to
          allow the unique definition of vendor-specific file types:

          * ''"X &lt;OUI&gt; &lt;Vendor-specific identifier&gt;"'' &lt;OUI&gt;
            is replaced by a 6 hexadecimal-digit OUI (organizationally unique
            identifier) as defined in {{bibref|OUI}}, with all upper-case
            letters and any leading zeros included. The OUI used for a given
            vendor-specific file type MUST be one that is assigned to the
            organization that defined this file type (which is not necessarily
            the same as the vendor of the CPE or ACS). Note that {{empty}}
            indicates that all file types are excluded from this filter,
            effectively disabling CPE notification of AUTONOMOUS TRANSFER
            COMPLETE events to the ACS.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pattern value="1 Firmware Upgrade Image">
              <description>Download Only</description>
            </pattern>
            <pattern value="2 Web Content">
              <description>Download Only</description>
            </pattern>
            <pattern value="3 Vendor Configuration File">
              <description>Download or Upload</description>
            </pattern>
            <pattern value="4 Vendor Log File">
              <description>Upload Only</description>
            </pattern>
            <pattern value="X [0-9A-F]{6} .*">
              <description>
                For Vendor-Specific File Types, could be for either Download or
                Upload
              </description>
            </pattern>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ManagementServer.DUStateChangeComplPolicy."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        This object allows configuration of CPE policy for notification of "12
        AUTONOMOUS DU STATE CHANGE COMPLETE" events defined in
        {{bibref|TR-069a3}}. The CPE policy determines the conditions under
        which the CPE notifies the ACS of the completion of Deployment Unit
        state changes that were not specifically requested via CWMP.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables/Disables CPE notification of "12 AUTONOMOUS DU STATE CHANGE
          COMPLETE" events to the ACS.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="OperationTypeFilter" access="readWrite">
        <description>
          Indicates the Deployment Unit operations that MUST be included when
          the CPE notifies the ACS of "12 AUTONOMOUS DU STATE CHANGE COMPLETE"
          events. Operation types not indicated by this list MUST NOT be
          included when the CPE notifies the ACS. {{empty}} is essentially the
          same as setting {{param|Enable}} to {{false}}.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="Install"/>
            <enumeration value="Update"/>
            <enumeration value="Uninstall"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ResultTypeFilter" access="readWrite">
        <description>
          Indicates the Deployment Unit state change results that MUST be
          included when the CPE notifies the ACS of "12 AUTONOMOUS DU STATE
          CHANGE COMPLETE" events. State change results omitted from this
          filter MUST NOT be included when the CPE notifies the ACS.
        </description>
        <syntax>
          <string>
            <enumeration value="Success">
              <description>
                The autonomous state change completed successfully; i.e., the
                FaultCode was zero
              </description>
            </enumeration>
            <enumeration value="Failure">
              <description>
                The autonomous state change did not complete successfully;
                i.e., the FaultCode was non-zero
              </description>
            </enumeration>
            <enumeration value="Both">
              <description>
                All result types independent of Success or Failure
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="FaultCodeFilter" access="readWrite">
        <description>
          Indicates the Deployment Unit state change fault codes that MUST be
          included when the CPE notifies the ACS of "12 AUTONOMOUS DU STATE
          CHANGE COMPLETE" events. State change fault codes omitted from this
          filter MUST NOT be included when the CPE notifies the ACS. This
          filter has no effect on the notification of a successful autonomous
          state change. This filter only applies when
          {{param|ResultTypeFilter}} is set to either
          {{enum|Failure|ResultTypeFilter}} or {{enum|Both|ResultTypeFilter}}.
          {{empty}} means that failed autonomous state changes will not be sent
          to the ACS.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="9001"/>
            <enumeration value="9003"/>
            <enumeration value="9012"/>
            <enumeration value="9013"/>
            <enumeration value="9015"/>
            <enumeration value="9016"/>
            <enumeration value="9017"/>
            <enumeration value="9018"/>
            <enumeration value="9022"/>
            <enumeration value="9023"/>
            <enumeration value="9024"/>
            <enumeration value="9025"/>
            <enumeration value="9026"/>
            <enumeration value="9027"/>
            <enumeration value="9028"/>
            <enumeration value="9029"/>
            <enumeration value="9030"/>
            <enumeration value="9031"/>
            <enumeration value="9032"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.GatewayInfo." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object contains information associated with a connected Internet
        Gateway Device.
      </description>

      <parameter name="ManufacturerOUI" access="readOnly">
        <description>
          Organizationally unique identifier of the associated Internet Gateway
          Device. {{empty}} indicates that there is no associated Internet
          Gateway Device that has been detected.
        </description>
        <syntax>
          <string>
            <size maxLength="6"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProductClass" access="readOnly">
        <description>
          Identifier of the product class of the associated Internet Gateway
          Device. {{empty}} indicates either that there is no associated
          Internet Gateway Device that has been detected, or the Internet
          Gateway Device does not support the use of the product-class
          parameter.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SerialNumber" access="readOnly">
        <description>
          Serial number of the associated Internet Gateway Device. {{empty}}
          indicates that there is no associated Internet Gateway Device that
          has been detected.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Config." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object contains general configuration parameters.
      </description>

      <parameter name="PersistentData" access="readWrite">
        <description>
          Arbitrary user data that MUST persist across CPE reboots.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ConfigFile" access="readWrite">
        <description>
          A dump of the currently running configuration on the CPE. This
          parameter enables the ability to backup and restore the last known
          good state of the CPE. It returns a vendor-specific document that
          defines the state of the CPE. The document MUST be capable of
          restoring the CPE's state when written back to the CPE using
          SetParameterValues.

          An alternative to this parameter, e.g. when the configuration file is
          larger than the parameter size limit, is to use the Upload and
          Download RPCs with a FileType of ''1 Vendor Configuration File''.
        </description>
        <syntax>
          <string>
            <size maxLength="32768"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Time." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object contains parameters relating an NTP or SNTP time client in
        the CPE.
      </description>

      <parameter name="Enable" access="readWrite" dmr:previousParameter="">
        <description>
          Enables or disables the NTP or SNTP time client.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="NTPServer1" access="readWrite">
        <description>
          First NTP timeserver. Either a host name or IP address.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NTPServer2" access="readWrite">
        <description>
          Second NTP timeserver. Either a host name or IP address.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NTPServer3" access="readWrite">
        <description>
          Third NTP timeserver. Either a host name or IP address.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NTPServer4" access="readWrite">
        <description>
          Fourth NTP timeserver. Either a host name or IP address.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NTPServer5" access="readWrite">
        <description>
          Fifth NTP timeserver. Either a host name or IP address.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="CurrentLocalTime" access="readOnly"
          activeNotify="canDeny">
        <description>
          The current date and time in the CPE's local time zone.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="LocalTimeZone" access="readWrite">
        <description>
          The local time zone definition, encoded according to IEEE 1003.1
          (POSIX). The following is an example value:

          : EST+5 EDT,M4.1.0/2,M10.5.0/2
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Status of Time support on the CPE. {{enum}} The
          {{enum|Unsynchronized}} value indicates that the CPE's absolute time
          has not yet been set. The {{enum|Synchronized}} value indicates that
          the CPE has acquired accurate absolute time; its current time is
          accurate. The {{enum|Error_FailedToSynchronize}} value indicates that
          the CPE failed to acquire accurate absolute time; its current time is
          not accurate. The {{enum|Error}} value MAY be used by the CPE to
          indicate a locally defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Unsynchronized"/>
            <enumeration value="Synchronized"/>
            <enumeration value="Error_FailedToSynchronize"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UserInterface." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object contains parameters relating to the user interface of the
        CPE.
      </description>

      <parameter name="PasswordRequired" access="readWrite">
        <description>
          Present only if the CPE provides a password-protected LAN-side user
          interface. Indicates whether or not the local user interface MUST
          require a password to be chosen by the user. If {{false}}, the choice
          of whether or not a password is used is left to the user.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PasswordUserSelectable" access="readWrite">
        <description>
          Present only if the CPE provides a password-protected LAN-side user
          interface and supports LAN-side Auto-Configuration. Indicates whether
          or not a password to protect the local user interface of the CPE MAY
          be selected by the user directly, or MUST be equal to the password
          used by the LAN-side Auto-Configuration protocol.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="UpgradeAvailable" access="readWrite">
        <description>
          Indicates that a CPE upgrade is available, allowing the CPE to
          display this information to the user.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="WarrantyDate" access="readWrite">
        <description>
          Indicates the date and time in UTC that the warranty associated with
          the CPE is to expire.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ISPName" access="readWrite">
        <description>
          The name of the customer's ISP.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ISPHelpDesk" access="readWrite">
        <description>
          The help desk phone number of the ISP.
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ISPHomePage" access="readWrite">
        <description>
          The URL of the ISP's home page.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ISPHelpPage" access="readWrite">
        <description>
          The URL of the ISP's on-line support page.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ISPLogo" access="readWrite">
        <description>
          Base64 encoded GIF or JPEG image. The binary image is constrained to
          4095 bytes or less.
        </description>
        <syntax>
          <base64>
            <size minLength="0" maxLength="4095"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="ISPLogoSize" access="readWrite">
        <description>
          Un-encoded binary image size in bytes. If ISPLogoSize input value is
          0 then the ISPLogo is cleared. ISPLogoSize can also be used as a
          check to verify correct transfer and conversion of Base64 string to
          image size.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="4095"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ISPMailServer" access="readWrite">
        <description>
          The URL of the ISP's mail server.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ISPNewsServer" access="readWrite">
        <description>
          The URL of the ISP's news server.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TextColor" access="readWrite">
        <description>
          The color of text on the GUI screens in RGB hexidecimal notation
          (e.g., FF0088).
        </description>
        <syntax>
          <string>
            <size maxLength="6"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="BackgroundColor" access="readWrite">
        <description>
          The color of the GUI screen backgrounds in RGB hexidecimal notation
          (e.g., FF0088).
        </description>
        <syntax>
          <string>
            <size maxLength="6"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ButtonColor" access="readWrite">
        <description>
          The color of buttons on the GUI screens in RGB hexidecimal notation
          (e.g., FF0088).
        </description>
        <syntax>
          <string>
            <size maxLength="6"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ButtonTextColor" access="readWrite">
        <description>
          The color of text on buttons on the GUI screens in RGB hexidecimal
          notation (e.g., FF0088).
        </description>
        <syntax>
          <string>
            <size maxLength="6"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AutoUpdateServer" access="readWrite">
        <description>
          The server the CPE can check to see if an update is available for
          direct download to it. This MUST NOT be used by the CPE if the
          {{param|.ManagementServer.UpgradesManaged}} parameter is {{true}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="UserUpdateServer" access="readWrite">
        <description>
          The server where a user can check via a web browser if an update is
          available for download to a PC. This MUST NOT be used by the CPE if
          the {{param|.ManagementServer.UpgradesManaged}} parameter is
          {{true}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AvailableLanguages" access="readOnly">
        <description>
          Comma-separated list of user-interface languages that are available,
          where each language is specified according to RFC 3066
          {{bibref|RFC3066}}.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="CurrentLanguage" access="readWrite">
        <description>
          Current user-interface language, specified according to RFC 3066
          {{bibref|RFC3066}}.
        </description>
        <syntax>
          <string>
            <size maxLength="16"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UserInterface.RemoteAccess." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object contains parameters relating to remotely accessing the
        CPE's user interface. Remote access is defined as any entity not of a
        local subnet attempting to connect to the CPE. Remote access requires
        user authentication. To provide remote access authentication the CPE
        MUST support a "User" table with at least one instance that has
        "RemoteAccessCapable" set to {{true}}.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables/Disables remotely accessing the CPE’s user interface.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          Destination TCP port required for remote access connection.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SupportedProtocols" access="readOnly">
        <description>
          {{list}} Indicates the protocols that are supported by the CPE for
          the purpose of remotely accessing the user interface.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="HTTP">
              <description>As defined in {{bibref|RFC2616}}</description>
            </enumeration>
            <enumeration value="HTTPS">
              <description>As defined in {{bibref|RFC2818}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          This is the protocol currently being used for remote access.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="SupportedProtocols"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UserInterface.LocalDisplay." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object describes how to remotely manage the initial positioning of
        a user interface on a device's local display.
      </description>

      <parameter name="Movable" access="readWrite">
        <description>
          Controls whether the user is allowed to change the GUI window
          position on the local CPE's display.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Resizable" access="readWrite">
        <description>
          Controls whether the user is allowed to resize the GUI window on the
          local CPE's display.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PosX" access="readWrite" activeNotify="canDeny">
        <description>
          The horizontal position of the User Interface's top left corner
          within the local CPE's display measured from the top left corner,
          expressed in {{units}}.
        </description>
        <syntax>
          <int>
            <units value="pixels"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="PosY" access="readWrite" activeNotify="canDeny">
        <description>
          The vertical position of the User Interface's top left corner within
          the local CPE's display measured from the top left corner, expressed
          in {{units}}.
        </description>
        <syntax>
          <int>
            <units value="pixels"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Width" access="readWrite" activeNotify="canDeny">
        <description>
          The width of the user interface within the local CPE's display,
          expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="pixels"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Height" access="readWrite" activeNotify="canDeny">
        <description>
          The height of the user interface within the local CPE's display,
          expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="pixels"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DisplayWidth" access="readOnly">
        <description>
          The width of the local CPE's display, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="pixels"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DisplayHeight" access="readOnly">
        <description>
          The height of the local CPE's display, expressed in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="pixels"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LAN." access="readOnly" minEntries="1" maxEntries="1">
      <description>
        This object contains parameters relating to IP-based LAN connectivity
        of a device. This object relates only to IP-layer LAN capabilities.
        Lower-layer aspects of LAN connectivity are not considered part of the
        common data model defined in this specification. For a device that
        contains multiple IP interfaces, the scope of this object is limited to
        the default IP interface. Data that might be associated with other
        interfaces is not considered part of the common data model defined in
        this specification.
      </description>

      <parameter name="AddressingType" access="readWrite">
        <description>
          The method used to assign an address to this interface. {{enum}} The
          ability to modify this parameter is OPTIONAL.
        </description>
        <syntax>
          <string>
            <enumeration value="DHCP"/>
            <enumeration value="Static"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IPAddress" access="readWrite" forcedInform="true">
        <description>
          The current IP address assigned to this interface. The ability to
          modify this parameter is OPTIONAL, and this parameter cannot be
          modified if the {{param|AddressingType}} is
          {{enum|DHCP|AddressingType}}.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="SubnetMask" access="readWrite">
        <description>
          The current subnet mask. The ability to modify this parameter is
          OPTIONAL, and this parameter cannot be modified if the
          {{param|AddressingType}} is {{enum|DHCP|AddressingType}}.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="DefaultGateway" access="readWrite">
        <description>
          The IP address of the current default gateway for this interface. The
          ability to modify this parameter is OPTIONAL, and this parameter
          cannot be modified if the {{param|AddressingType}} is
          {{enum|DHCP|AddressingType}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="DNSServers" access="readWrite">
        <description>
          Comma-separated list of IP address of the DNS servers for this
          interface. The ability to modify this parameter is OPTIONAL, and this
          parameter cannot be modified if the {{param|AddressingType}} is
          {{enum|DHCP|AddressingType}}. If this parameter is modifiable, the
          device MAY ignore any DNS servers beyond the first two in the list.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readWrite">
        <description>
          The physical address of this interface. Writable only if
          {{param|MACAddressOverride}} is present and equal to {{true}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="MACAddressOverride" access="readWrite">
        <description>
          Whether the value of MACAddress parameter can be overridden.

          * When {{true}}, {{param|MACAddress}} is writable.

          * When {{false}}, {{param|MACAddress}} is not writable, and the
            default MAC address assigned by the device SHOULD be restored.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DHCPOptionNumberOfEntries" access="readOnly">
        <description>
          Number of entries in the DHCP option table.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LAN.DHCPOption.{i}." access="readWrite"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="DHCPOptionNumberOfEntries">
      <description>
        This object is for configuration of DHCP options. Each instance of this
        object represents a DHCP option to be included by the DHCP client in
        client requests. The DHCP client MAY include any other options not
        specified in this table.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny"
          dmr:previousParameter="">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>

      <parameter name="Request" access="readWrite">
        <description>
          Whether this entry represents a request to the DHCP server, or a
          value to be sent by the DHCP client.

          * When {{true}}, this entry represents a request. In this case, the
            DHCP client MUST include the specified {{param|Tag}} in the
            Parameter Request List, as defined in RFC 2132. The {{param|Value}}
            parameter is ignored in this case.

          * When {{false}}, this entry represents a value to be sent by the
            DHCP client. In this case, the DHCP client MUST include a DHCP
            option formed from the {{param|Tag}} and {{param|Value}} parameters
            (with the Length derived from the length of the {{param|Value}}
            parameter).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Tag" access="readWrite">
        <description>
          Tag of the DHCP option as defined in RFC 2132.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="254"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readWrite">
        <description>
          Base64 encoded octet string to be used as the Value of the DHCP
          option if {{param|Request}} is {{false}}.
        </description>
        <syntax>
          <base64>
            <size maxLength="255"/>
          </base64>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LAN.Stats." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object contains statistics for the default IP interface.
      </description>

      <parameter name="ConnectionUpTime" access="readOnly"
          activeNotify="canDeny">
        <description>
          The time in seconds that this IP interface has been connected.

          * If the IP interface is using DHCP, this is the time that the DHCP
            client has been only in the Bound or Renewing states and the
            lower-layer interface has continuously maintained a link.

          * If the IP interface is using static addressing, this is the time
            that the lower-layer interface has continuously maintained a link.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TotalBytesSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of IP payload bytes sent over this interface since the
          device was last restarted as specified in
          {{param|.DeviceInfo.UpTime}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TotalBytesReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of IP payload bytes received over this interface since
          the device was last restarted as specified in
          {{param|.DeviceInfo.UpTime}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TotalPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of IP packets sent over this interface since the device
          was last restarted as specified in {{param|.DeviceInfo.UpTime}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TotalPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of IP packets received over this interface since the
          device was last restarted as specified in
          {{param|.DeviceInfo.UpTime}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="CurrentDayInterval" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of seconds since the beginning of the period used for
          collection of CurrentDay statistics. The device MAY align the
          beginning of each CurrentDay interval with days in the UTC time zone,
          but does not need to do so.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="CurrentDayBytesSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of IP payload bytes sent over this interface since the
          beginning of the current-day interval as specified by
          {{param|CurrentDayInterval}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="CurrentDayBytesReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of IP payload bytes received over this interface since
          the beginning of the current-day interval as specified by
          {{param|CurrentDayInterval}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="CurrentDayPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of IP packets sent over this interface since the
          beginning of the current-day interval as specified by
          {{param|CurrentDayInterval}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="CurrentDayPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of IP packets received over this interface since the
          beginning of the current-day interval as specified by
          {{param|CurrentDayInterval}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QuarterHourInterval" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of seconds since the beginning of the period used for
          collection of QuarterHour statistics. The device MAY align the
          beginning of each QuarterHour interval with real-time quarter-hour
          intervals, but does not need to do so.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QuarterHourBytesSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of IP payload bytes sent over this interface since the
          beginning of the quarter-hour interval as specified by
          {{param|QuarterHourInterval}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QuarterHourBytesReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of IP payload bytes received over this interface since
          the beginning of the quarter-hour interval as specified by
          {{param|QuarterHourInterval}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QuarterHourPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of IP packets sent over this interface since the
          beginning of the quarter-hour interval as specified by
          {{param|QuarterHourInterval}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QuarterHourPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of IP packets received over this interface since the
          beginning of the quarter-hour interval as specified by
          {{param|QuarterHourInterval}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LAN.IPPingDiagnostics." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object defines access to an IP-layer ping test for the default IP
        interface.
      </description>

      <parameter name="DiagnosticsState" access="readWrite"
          activeNotify="canDeny">
        <description>
          Indicates availability of diagnostic data. {{enum}} If the ACS sets
          the value of this parameter to {{enum|Requested}}, the CPE MUST
          initiate the corresponding diagnostic test. When writing, the only
          allowed value is {{enum|Requested}}. To ensure the use of the proper
          test parameters (the writable parameters in this object), the test
          parameters MUST be set either prior to or at the same time as (in the
          same SetParameterValues) setting the {{param}} to {{enum|Requested}}.
          When requested, the CPE SHOULD wait until after completion of the
          communication session with the ACS before starting the diagnostic.
          When the test is completed, the value of this parameter MUST be
          either {{enum|Complete}} (if the test completed successfully), or one
          of the ''Error'' values listed above. If the value of this parameter
          is anything other than {{enum|Complete}}, the values of the results
          parameters for this test are indeterminate. When the diagnostic
          initiated by the ACS is completed (successfully or not), the CPE MUST
          establish a new connection to the ACS to allow the ACS to view the
          results, indicating the Event code ''8 DIAGNOSTICS COMPLETE'' in the
          Inform message. After the diagnostic is complete, the value of all
          result parameters (all read-only parameters in this object) MUST be
          retained by the CPE until either this diagnostic is run again, or the
          CPE reboots. After a reboot, if the CPE has not retained the result
          parameters from the most recent test, it MUST set the value of this
          parameter to {{enum|None}}. Modifying any of the writable parameters
          in this object except for this one MUST result in the value of this
          parameter being set to {{enum|None}}. While the test is in progress,
          modifying any of the writable parameters in this object except for
          this one MUST result in the test being terminated and the value of
          this parameter being set to {{enum|None}}. While the test is in
          progress, setting this parameter to {{enum|Requested}} (and possibly
          modifying other writable parameters in this object) MUST result in
          the test being terminated and then restarted using the current values
          of the test parameters.
        </description>
        <syntax>
          <string>
            <enumeration value="None"/>
            <enumeration value="Requested"/>
            <enumeration value="Complete"/>
            <enumeration value="Error_CannotResolveHostName"/>
            <enumeration value="Error_Internal"/>
            <enumeration value="Error_Other"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Host" access="readWrite">
        <description>
          Host name or address of the host to ping.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NumberOfRepetitions" access="readWrite">
        <description>
          Number of repetitions of the ping test to perform before reporting
          the results.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Timeout" access="readWrite">
        <description>
          Timeout in milliseconds for the ping test.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DataBlockSize" access="readWrite">
        <description>
          Size of the data block in bytes to be sent for each ping.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DSCP" access="readWrite">
        <description>
          DiffServ codepoint to be used for the test packets. By default the
          CPE SHOULD set this value to zero.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="63"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SuccessCount" access="readOnly" activeNotify="canDeny">
        <description>
          Result parameter indicating the number of successful pings (those in
          which a successful response was received prior to the timeout) in the
          most recent ping test.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="FailureCount" access="readOnly" activeNotify="canDeny">
        <description>
          Result parameter indicating the number of failed pings in the most
          recent ping test.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AverageResponseTime" access="readOnly"
          activeNotify="canDeny">
        <description>
          Result parameter indicating the average response time in milliseconds
          over all repetitions with successful responses of the most recent
          ping test. If there were no successful responses, this value MUST be
          zero.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MinimumResponseTime" access="readOnly"
          activeNotify="canDeny">
        <description>
          Result parameter indicating the minimum response time in milliseconds
          over all repetitions with successful responses of the most recent
          ping test. If there were no successful responses, this value MUST be
          zero.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaximumResponseTime" access="readOnly"
          activeNotify="canDeny">
        <description>
          Result parameter indicating the maximum response time in milliseconds
          over all repetitions with successful responses of the most recent
          ping test. If there were no successful responses, this value MUST be
          zero.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LAN.TraceRouteDiagnostics." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object is defines access to an IP-layer trace-route test for the
        default IP interface.
      </description>

      <parameter name="DiagnosticsState" access="readWrite"
          activeNotify="canDeny">
        <description>
          Indicates availability of diagnostic data. {{enum}} If the ACS sets
          the value of this parameter to {{enum|Requested}}, the CPE MUST
          initiate the corresponding diagnostic test. When writing, the only
          allowed value is {{enum|Requested}}. To ensure the use of the proper
          test parameters (the writable parameters in this object), the test
          parameters MUST be set either prior to or at the same time as (in the
          same SetParameterValues) setting the {{param}} to {{enum|Requested}}.
          When requested, the CPE SHOULD wait until after completion of the
          communication session with the ACS before starting the diagnostic.
          When the test is completed, the value of this parameter MUST be
          either {{enum|Complete}} (if the test completed successfully), or one
          of the ''Error'' values listed above. If the value of this parameter
          is anything other than {{enum|Complete}}, the values of the results
          parameters for this test are indeterminate. When the diagnostic
          initiated by the ACS is completed (successfully or not), the CPE MUST
          establish a new connection to the ACS to allow the ACS to view the
          results, indicating the Event code ''8 DIAGNOSTICS COMPLETE'' in the
          Inform message. After the diagnostic is complete, the value of all
          result parameters (all read-only parameters in this object) MUST be
          retained by the CPE until either this diagnostic is run again, or the
          CPE reboots. After a reboot, if the CPE has not retained the result
          parameters from the most recent test, it MUST set the value of this
          parameter to {{enum|None}}. Modifying any of the writable parameters
          in this object except for this one MUST result in the value of this
          parameter being set to {{enum|None}}. While the test is in progress,
          modifying any of the writable parameters in this object except for
          this one MUST result in the test being terminated and the value of
          this parameter being set to {{enum|None}}. While the test is in
          progress, setting this parameter to {{enum|Requested}} (and possibly
          modifying other writable parameters in this object) MUST result in
          the test being terminated and then restarted using the current values
          of the test parameters.
        </description>
        <syntax>
          <string>
            <enumeration value="None"/>
            <enumeration value="Requested"/>
            <enumeration value="Complete"/>
            <enumeration value="Error_CannotResolveHostName"/>
            <enumeration value="Error_MaxHopCountExceeded"/>
            <enumeration value="Error_Internal"/>
            <enumeration value="Error_Other"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Host" access="readWrite">
        <description>
          Host name or address of the host to find a route to.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Timeout" access="readWrite">
        <description>
          Timeout in milliseconds for the trace route test.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DataBlockSize" access="readWrite">
        <description>
          Size of the data block in bytes to be sent for each trace route.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxHopCount" access="readWrite">
        <description>
          The maximum number of hop used in outgoing probe packets (max TTL).
          The default is 30 hops.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="64"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DSCP" access="readWrite">
        <description>
          DiffServ codepoint to be used for the test packets. By default the
          CPE SHOULD set this value to zero.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="63"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ResponseTime" access="readOnly" activeNotify="canDeny">
        <description>
          Result parameter indicating the response time in milliseconds the
          most recent trace route test. If a route could not be determined,
          this value MUST be zero.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NumberOfRouteHops" access="readOnly"
          activeNotify="canDeny">
        <description>
          Result parameter indicating the number of hops within the discovered
          route. If a route could not be determined, this value MUST be zero.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LAN.TraceRouteDiagnostics.RouteHops.{i}."
        access="readOnly" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="NumberOfRouteHops">
      <description>
        Result parameter indicating the components of the discovered route. If
        a route could not be determined, there will be no instances of this
        object.
      </description>

      <parameter name="HopHost" access="readOnly" activeNotify="canDeny">
        <description>
          Result parameter indicating the Host Name or IP Address of a hop
          along the discovered route.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Capabilities." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        The capabilities of the device. This is a constant read-only object,
        meaning that only a firmware upgrade will cause these values to be
        altered.
      </description>
    </object>

    <object name="Device.Capabilities.PerformanceDiagnostic."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        The capabilities of the Performance Diagnostics
        (''DownloadDiagnostics'' and ''UploadDiagnostics'') for the device.
      </description>

      <parameter name="DownloadTransports" access="readOnly">
        <description>
          Supported ''DownloadDiagnostics'' transport protocols for a CPE
          device.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="HTTP"/>
            <enumeration value="FTP" optional="true"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="UploadTransports" access="readOnly">
        <description>
          Supported ''UploadDiagnostics'' transport protocols for a CPE device.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="HTTP"/>
            <enumeration value="FTP" optional="true"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DownloadDiagnostics." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object defines the diagnostics configuration for a HTTP and FTP
        DownloadDiagnostics Test. Files received in the DownloadDiagnostics do
        not require file storage on the CPE device.
      </description>

      <parameter name="DiagnosticsState" access="readWrite"
          activeNotify="canDeny">
        <description>
          Indicate the availability of diagnostic data. {{enum}} If the ACS
          sets the value of this parameter to {{enum|Requested}}, the CPE MUST
          initiate the corresponding diagnostic test. When writing, the only
          allowed value is {{enum|Requested}}. To ensure the use of the proper
          test parameters (the writable parameters in this object), the test
          parameters MUST be set either prior to or at the same time as (in the
          same SetParameterValues) setting the {{param}} to {{enum|Requested}}.
          When requested, the CPE SHOULD wait until after completion of the
          communication session with the ACS before starting the diagnostic.
          When the test is completed, the value of this parameter MUST be
          either {{enum|Completed}} (if the test completed successfully), or
          one of the ''Error'' values listed above. If the value of this
          parameter is anything other than {{enum|Completed}}, the values of
          the results parameters for this test are indeterminate. When the
          diagnostic initiated by the ACS is completed (successfully or not),
          the CPE MUST establish a new connection to the ACS to allow the ACS
          to view the results, indicating the Event code ''8 DIAGNOSTICS
          COMPLETE'' in the Inform message. After the diagnostic is complete,
          the value of all result parameters (all read-only parameters in this
          object) MUST be retained by the CPE until either this diagnostic is
          run again, or the CPE reboots. After a reboot, if the CPE has not
          retained the result parameters from the most recent test, it MUST set
          the value of this parameter to {{enum|None}}. Modifying any of the
          writable parameters in this object except for this one MUST result in
          the value of this parameter being set to {{enum|None}}. While the
          test is in progress, modifying any of the writable parameters in this
          object except for this one MUST result in the test being terminated
          and the value of this parameter being set to {{enum|None}}. While the
          test is in progress, setting this parameter to Requested (and
          possibly modifying other writable parameters in this object) MUST
          result in the test being terminated and then restarted using the
          current values of the test parameters.
        </description>
        <syntax>
          <string>
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Completed" access="readOnly"/>
            <enumeration value="Error_InitConnectionFailed" access="readOnly"/>
            <enumeration value="Error_NoResponse" access="readOnly"/>
            <enumeration value="Error_TransferFailed" access="readOnly"/>
            <enumeration value="Error_PasswordRequestFailed" access="readOnly"/>
            <enumeration value="Error_LoginFailed" access="readOnly"/>
            <enumeration value="Error_NoTransferMode" access="readOnly"/>
            <enumeration value="Error_NoPASV" access="readOnly"/>
            <enumeration value="Error_IncorrectSize" access="readOnly"/>
            <enumeration value="Error_Timeout" access="readOnly"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference|the IP-layer interface over which the test is to be
          performed}} The value of this parameter MUST be either a valid
          interface or {{empty}}. An attempt to set this parameter to a
          different value MUST be rejected as an invalid parameter value. If
          {{empty}} is specified, the CPE MUST use the default routing
          interface.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DownloadURL" access="readWrite">
        <description>
          The URL, as defined in {{bibref|RFC3986}}, for the CPE to perform the
          download on. This parameter MUST be in the form of a valid HTTP
          {{bibref|RFC2616}} or FTP {{bibref|RFC959}} URL.

          * When using FTP transport, FTP binary transfer MUST be used.

          * When using HTTP transport, persistent connections MUST be used and
            pipelining MUST NOT be used.

          * When using HTTP transport the HTTP Authentication MUST NOT be used.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DSCP" access="readWrite">
        <description>
          The DiffServ code point for marking packets transmitted in the test.
          The default value SHOULD be zero.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="63"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="EthernetPriority" access="readWrite">
        <description>
          Ethernet priority code for marking packets transmitted in the test
          (if applicable). The default value SHOULD be zero.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="7"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ROMTime" access="readOnly" activeNotify="canDeny">
        <description>
          Request time in UTC, which MUST be specified to microsecond
          precision. For example: 2008-04-09T15:01:05.123456

          * For HTTP this is the time at which the client sends the GET
            command.

          * For FTP this is the time at which the client sends the RTRV
            command.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="BOMTime" access="readOnly" activeNotify="canDeny">
        <description>
          Begin of transmission time in UTC, which MUST be specified to
          microsecond precision For example: 2008-04-09T15:01:05.123456

          * For HTTP this is the time at which the first data packet is
            received.

          * For FTP this is the time at which the client receives the first
            data packet on the data connection.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="EOMTime" access="readOnly" activeNotify="canDeny">
        <description>
          End of transmission in UTC, which MUST be specified to microsecond
          precision. For example: 2008-04-09T15:01:05.123456

          * For HTTP this is the time at which the last data packet is
            received.

          * For FTP this is the time at which the client receives the last
            packet on the data connection.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="TestBytesReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The test traffic received in bytes during the FTP/HTTP transaction
          including FTP/HTTP headers, between {{param|BOMTime}} and
          {{param|EOMTime}},
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TotalBytesReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of bytes received on the Interface between
          {{param|BOMTime}} and {{param|EOMTime}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TCPOpenRequestTime" access="readOnly"
          activeNotify="canDeny">
        <description>
          Request time in UTC, which MUST be specified to microsecond
          precision. For example: 2008-04-09T15:01:05.123456

          * For HTTP this is the time at which the TCP socket open (SYN) was
            sent for the HTTP connection.

          * For FTP this is the time at which the TCP socket open (SYN) was
            sent for the data connection. Note: Interval of 1 microsecond
            SHOULD be supported.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="TCPOpenResponseTime" access="readOnly"
          activeNotify="canDeny">
        <description>
          Response time in UTC, which MUST be specified to microsecond
          precision. For example: 2008-04-09T15:01:05.123456

          * For HTTP this is the time at which the TCP ACK to the socket
            opening the HTTP connection was received.

          * For FTP this is the time at which the TCP ACK to the socket opening
            the data connection was received. Note: Interval of 1 microsecond
            SHOULD be supported.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UploadDiagnostics." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object defines the diagnostics configuration for a HTTP or FTP
        UploadDiagnostics test. Files sent by the UploadDiagnostics do not
        require file storage on the CPE device, and MAY be an arbitrary stream
        of bytes.
      </description>

      <parameter name="DiagnosticsState" access="readWrite"
          activeNotify="canDeny">
        <description>
          Indicate the availability of diagnostic data. {{enum}} If the ACS
          sets the value of this parameter to {{enum|Requested}}, the CPE MUST
          initiate the corresponding diagnostic test. When writing, the only
          allowed value is {{enum|Requested}}. To ensure the use of the proper
          test parameters (the writable parameters in this object), the test
          parameters MUST be set either prior to or at the same time as (in the
          same SetParameterValues) setting the {{param}} to {{enum|Requested}}.
          When requested, the CPE SHOULD wait until after completion of the
          communication session with the ACS before starting the diagnostic.
          When the test is completed, the value of this parameter MUST be
          either {{enum|Completed}} (if the test completed successfully), or
          one of the ''Error'' values listed above. If the value of this
          parameter is anything other than {{enum|Completed}}, the values of
          the results parameters for this test are indeterminate. When the
          diagnostic initiated by the ACS is completed (successfully or not),
          the CPE MUST establish a new connection to the ACS to allow the ACS
          to view the results, indicating the Event code ''8 DIAGNOSTICS
          COMPLETE'' in the Inform message. After the diagnostic is complete,
          the value of all result parameters (all read-only parameters in this
          object) MUST be retained by the CPE until either this diagnostic is
          run again, or the CPE reboots. After a reboot, if the CPE has not
          retained the result parameters from the most recent test, it MUST set
          the value of this parameter to {{enum|None}}. Modifying any of the
          writable parameters in this object except for this one MUST result in
          the value of this parameter being set to {{enum|None}}. While the
          test is in progress, modifying any of the writable parameters in this
          object except for this one MUST result in the test being terminated
          and the value of this parameter being set to {{enum|None}}. While the
          test is in progress, setting this parameter to {{enum|Requested}}
          (and possibly modifying other writable parameters in this object)
          MUST result in the test being terminated and then restarted using the
          current values of the test parameters.
        </description>
        <syntax>
          <string>
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Completed" access="readOnly"/>
            <enumeration value="Error_InitConnectionFailed" access="readOnly"/>
            <enumeration value="Error_NoResponse" access="readOnly"/>
            <enumeration value="Error_PasswordRequestFailed" access="readOnly"/>
            <enumeration value="Error_LoginFailed" access="readOnly"/>
            <enumeration value="Error_NoTransferMode" access="readOnly"/>
            <enumeration value="Error_NoPASV" access="readOnly"/>
            <enumeration value="Error_NoCWD" access="readOnly"/>
            <enumeration value="Error_NoSTOR" access="readOnly"/>
            <enumeration value="Error_NoTransferComplete" access="readOnly"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference|the IP-layer interface over which the test is to be
          performed}} The value of this parameter MUST be either a valid
          interface or an empty string. An attempt to set this parameter to a
          different value MUST be rejected as an invalid parameter value. If
          {{empty}} is specified, the CPE MUST use the default routing
          interface.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="UploadURL" access="readWrite">
        <description>
          The URL, as defined in {{bibref|RFC3986}}, for the CPE to Upload to.
          This parameter MUST be in the form of a valid HTTP {{bibref|RFC2616}}
          or FTP {{bibref|RFC959}} URL.

          * When using FTP transport, FTP binary transfer MUST be used.

          * When using HTTP transport, persistent connections MUST be used and
            pipelining MUST NOT be used.

          * When using HTTP transport the HTTP Authentication MUST NOT be used.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DSCP" access="readWrite">
        <description>
          DiffServ code point for marking packets transmitted in the test. The
          default value SHOULD be zero.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="63"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="EthernetPriority" access="readWrite">
        <description>
          Ethernet priority code for marking packets transmitted in the test
          (if applicable). The default value SHOULD be zero.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="7"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TestFileLength" access="readWrite">
        <description>
          The size of the file (in bytes) to be uploaded to the server. The CPE
          MUST insure the appropriate number of bytes are sent.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ROMTime" access="readOnly" activeNotify="canDeny">
        <description>
          Request time in UTC, which MUST be specified to microsecond
          precision. For example: 2008-04-09T15:01:05.123456

          * For HTTP this is the time at which the client sends the PUT command

          * For FTP this is the time at which the STOR command is sent.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="BOMTime" access="readOnly" activeNotify="canDeny">
        <description>
          Begin of transmission time in UTC, which MUST be specified to
          microsecond precision. For example: 2008-04-09T15:01:05.123456

          * For HTTP this is the time at which the first data packet is sent.

          * For FTP this is the time at which the client receives the ready for
            transfer notification.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="EOMTime" access="readOnly" activeNotify="canDeny">
        <description>
          End of transmission in UTC, which MUST be specified to microsecond
          precision. For example: 2008-04-09T15:01:05.123456

          * For HTTP this is the time when the HTTP successful response code is
            received.

          * For FTP this is the time when the client receives a transfer
            complete.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="TotalBytesSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of bytes sent on the Interface between
          {{param|BOMTime}} and {{param|EOMTime}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TCPOpenRequestTime" access="readOnly"
          activeNotify="canDeny">
        <description>
          Request time in UTC, which MUST be specified to microsecond
          precision. For example: 2008-04-09T15:01:05.123456

          * For HTTP this is the time at which the TCP socket open (SYN) was
            sent for the HTTP connection.

          * For FTP this is the time at which the TCP socket open (SYN) was
            sent for the data connection Note: Interval of 1 microsecond SHOULD
            be supported.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="TCPOpenResponseTime" access="readOnly"
          activeNotify="canDeny">
        <description>
          Response time in UTC, which MUST be specified to microsecond
          precision. For example: 2008-04-09T15:01:05.123456

          * For HTTP this is the Time at which the TCP ACK to the socket
            opening the HTTP connection was received.

          * For FTP this is the Time at which the TCP ACK to the socket opening
            the Data connection was received. Note: Interval of 1 microsecond
            SHOULD be supported.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UDPEchoConfig." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object allows the CPE to be configured to perform the UDP Echo
        Service defined in {{bibref|RFC862}} and UDP Echo Plus Service defined
        in {{bibref|TR-143|Appendix A.1}}.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          MUST be enabled to receive UDP echo. When enabled from a disabled
          state all related timestamps, statistics and UDP Echo Plus counters
          are cleared.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference|IP-layer interface over which the CPE MUST listen and
          receive UDP echo requests on}} The value of this parameter MUST be
          either a valid interface or {{empty}}. An attempt to set this
          parameter to a different value MUST be rejected as an invalid
          parameter value. If {{empty}} is specified, the CPE MUST listen and
          receive UDP echo requests on all interfaces. Note: Interfaces behind
          a NAT MAY require port forwarding rules configured in the Gateway to
          enable receiving the UDP packets.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SourceIPAddress" access="readWrite">
        <description>
          The Source IP address of the UDP echo packet. The CPE MUST only
          respond to a UDP echo from this source IP address.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="UDPPort" access="readWrite">
        <description>
          The UDP port on which the UDP server MUST listen and respond to UDP
          echo requests.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="EchoPlusEnabled" access="readWrite">
        <description>
          If {{true}} the CPE will perform necessary packet processing for UDP
          Echo Plus packets.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EchoPlusSupported" access="readOnly">
        <description>
          {{true}} if UDP Echo Plus is supported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          Incremented upon each valid UDP echo packet received.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PacketsResponded" access="readOnly"
          activeNotify="canDeny">
        <description>
          Incremented for each UDP echo response sent.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The number of UDP received bytes including payload and UDP header
          after the UDPEchoConfig is enabled.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="BytesResponded" access="readOnly"
          activeNotify="canDeny">
        <description>
          The number of UDP responded bytes, including payload and UDP header
          sent after the UDPEchoConfig is enabled.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TimeFirstPacketReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          Time in UTC, which MUST be specified to microsecond precision. For
          example: 2008-04-09T15:01:05.123456, The time that the server
          receives the first UDP echo packet after the UDPEchoConfig is
          enabled.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="TimeLastPacketReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          Time in UTC, which MUST be specified to microsecond precision. For
          example: 2008-04-09T15:01:05.123456 The time that the server receives
          the most recent UDP echo packet.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.User.{i}." access="readWrite"
        numEntriesParameter="UserNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        This object contains parameters relating to the user characteristics.
      </description>
      <uniqueKey>
        <parameter ref="Username"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny"
          dmr:previousParameter="">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables/disables this user object instance. If the User being
          configured is currently accessing the device then a disable MUST
          apply to the next user session and the current user session MUST NOT
          be abruptly terminated.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="RemoteAccessCapable" access="readWrite">
        <description>
          Allows this user to remotely access the UserInterface via the
          mechanism defined in {{object|.UserInterface.RemoteAccess.}}
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Username" access="readWrite">
        <description>
          Name of the current user. MUST NOT be {{empty}} for an enabled entry.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Password" access="readWrite">
        <description>
          The user's password.
        </description>
        <syntax hidden="true">
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Language" access="readWrite">
        <description>
          String describing the default language for the local configuration
          interface, specified according to {{bibref|RFC3066}}. If {{empty}},
          {{param|.UserInterface.CurrentLanguage}} is used.
        </description>
        <syntax>
          <string>
            <size maxLength="16"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UPnP." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object contains all UPnP related objects and parameters including
        Device and Discovery related objects and parameters.
      </description>
    </object>

    <object name="Device.UPnP.Device." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object defines the UPnP devices and UPnP services that are
        implemented by the CPE.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables/Disables UPnP support.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="UPnPMediaServer" access="readWrite">
        <description>
          Enables/Disables UPnP Media Server.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="UPnPMediaRenderer" access="readWrite">
        <description>
          Enables/Disables UPnP Media Renderer.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="UPnPWLANAccessPoint" access="readWrite">
        <description>
          Enables/Disables UPnP Wireless Access Point.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="UPnPQoSDevice " access="readWrite">
        <description>
          Enables/Disables UPnP QoS Device.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="UPnPQoSPolicyHolder" access="readWrite">
        <description>
          Enables/Disables UPnP QoS Policy Holder.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="UPnPIGD" access="readWrite">
        <description>
          Enables/Disables UPnP IGD.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="UPnPDMBasicMgmt" access="readWrite">
        <description>
          Enables/Disables UPnP-DM Basic Management.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="UPnPDMConfigurationMgmt" access="readWrite">
        <description>
          Enables/Disables UPnP-DM Configuration Management.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="UPnPDMSoftwareMgmt" access="readWrite">
        <description>
          Enables/Disables UPnP-DM Software Management.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UPnP.Device.Capabilities." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object defines what UPnP capabilities this device has.
      </description>

      <parameter name="UPnPArchitecture" access="readOnly">
        <description>
          Numeric value indicating the major version of the supported UPnP
          architecture. If UPnP 1.1 is supported the value is 1. If UPnP 2.0 is
          supported the value is 2. A value of 0 indicates no UPnP support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPArchitectureMinorVer" access="readOnly"
          dmr:previousParameter="UPnPArchitecture">
        <description>
          Numeric value indicating the minor version of the supported UPnP
          architecture. If UPnP 1.1 is supported the value is 1. If UPnP 2.0 is
          supported the value is 0. If {{param|UPnPArchitecture}} is 0 then
          this parameter SHOULD be ignored.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPMediaServer" access="readOnly">
        <description>
          Numeric value indicating the supported revision for UPnP Media
          Server. A value of 0 indicates no support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPMediaRenderer" access="readOnly">
        <description>
          Numeric value indicating the supported revision for UPnP Media
          Renderer. A value of 0 indicates no support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPWLANAccessPoint" access="readOnly">
        <description>
          Numeric value indicating the supported revision for UPnP Wireless
          Access Point. A value of 0 indicates no support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPBasicDevice" access="readOnly">
        <description>
          Numeric value indicating the supported revision for UPnP Basic
          Device. A value of 0 indicates no support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPQoSDevice" access="readOnly">
        <description>
          Numeric value indicating the supported revision for UPnP Qos Device.
          A value of 0 indicates no support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPQoSPolicyHolder" access="readOnly">
        <description>
          Numeric value indicating the supported revision for UPnP Qos Policy
          Holder. A value of 0 indicates no support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPIGD" access="readOnly">
        <description>
          Numeric value indicating the supported revision for UPnP IGD. A value
          of 0 indicates no support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPDMBasicMgmt" access="readOnly"
          dmr:previousParameter="UPnPIGD">
        <description>
          Numeric value indicating the supported revision for UPnP-DM Basic
          Management. A value of 0 indicates no support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPDMConfigurationMgmt" access="readOnly">
        <description>
          Numeric value indicating the supported revision for UPnP-DM
          Configuration Management. A value of 0 indicates no support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPnPDMSoftwareMgmt" access="readOnly">
        <description>
          Numeric value indicating the supported revision for UPnP-DM Software
          Management. A value of 0 indicates no support.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UPnP.Discovery." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        UPnP {{bibref|UPnP-DAv1}} SSDP discovered root devices, embedded
        devices and embedded services. The CPE MAY, but need not, retain some
        or all of the information in this object across reboots.
      </description>

      <parameter name="RootDeviceNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DeviceNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ServiceNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UPnP.Discovery.RootDevice.{i}." access="readOnly"
        numEntriesParameter="RootDeviceNumberOfEntries" minEntries="0"
        maxEntries="unbounded">
      <description>
        UPnP root device table. This table contains an entry for each UPnP root
        device that has been discovered via SSDP.
      </description>
      <uniqueKey>
        <parameter ref="UUID"/>
      </uniqueKey>

      <parameter name="Status" access="readOnly">
        <description>
          The status of the UPnP root device. {{enum}} The ability to list
          inactive UPnP root devices is OPTIONAL. The length of time an
          inactive device remains listed in this table is a local matter to the
          CPE.
        </description>
        <syntax>
          <string>
            <enumeration value="LeaseActive">
              <description>
                Device is active and UPnP lease has not expired.
              </description>
            </enumeration>
            <enumeration value="LeaseExpired">
              <description>
                Device is inactive because UPnP lease has expired.
              </description>
            </enumeration>
            <enumeration value="ByebyeReceived">
              <description>
                Device is inactive because byebye message was received.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="UUID" access="readOnly">
        <description>
          This UPnP root device's UUID (Universally Unique IDentifier)
          {{bibref|RFC4122}}, extracted from any of its USN (Unique Service
          Name) headers. This is a 36-byte string that uniquely identifies the
          device, the following is an example:

          : ''02c29d2a-dbfd-2d91-99c9-306d537e9856'' {{pattern}}
        </description>
        <syntax>
          <string>
            <size maxLength="36"/>
            <pattern
                value="[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="USN" access="readOnly">
        <description>
          The value of the USN (Unique Service Name) header for this UPnP root
          device. Three discovery messages are sent for root devices, and this
          SHOULD be the value of the USN header of the following form:

          : ''uuid:device-UUID::urn:domain-name:device:deviceType:v'' SSDP is
            an unreliable protocol and it is possible that no discovery message
            containing the USN header of the above form was ever received. If
            so, one of the other two forms MAY be used:

          : ''uuid:device-UUID::upnp:rootdevice''

          : ''uuid:device-UUID'' (for root device UUID)
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LeaseTime" access="readOnly">
        <description>
          The UPnP root device lease time in {{units}}, extracted from the
          CACHE-CONTROL header.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Location" access="readOnly">
        <description>
          The value of the LOCATION header for this UPnP root device, which is
          the URL of the root device's DDD (Device Description Document).
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Server" access="readOnly">
        <description>
          The value of the SERVER header for this UPnP root device, which is a
          string of the following form:

          : ''OS/version UPnP/udaversion product/version'' where '''UPnP''' is
            a literal string, '''udaversion''' is the version of the UPnP
            Device Architecture.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Host" access="readOnly">
        <description>
          {{list}} Indicates the full path names of all Host table entries,
          whether active or inactive, that correspond to this UPnP root device.
          As such entries are added to or removed from the Host tables, the
          value of this parameter MUST be updated accordingly.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UPnP.Discovery.Device.{i}." access="readOnly"
        numEntriesParameter="DeviceNumberOfEntries" minEntries="0"
        maxEntries="unbounded">
      <description>
        UPnP embedded device table. This table contains an entry for each UPnP
        embedded device that has been discovered via SSDP.
      </description>
      <uniqueKey>
        <parameter ref="UUID"/>
      </uniqueKey>

      <parameter name="Status" access="readOnly">
        <description>
          The status of the UPnP embedded device. {{enum}} The ability to list
          inactive UPnP embedded devices is OPTIONAL. The length of time an
          inactive device remains listed in this table is a local matter to the
          CPE.
        </description>
        <syntax>
          <string>
            <enumeration value="LeaseActive">
              <description>
                Device is active and UPnP lease has not expired.
              </description>
            </enumeration>
            <enumeration value="LeaseExpired">
              <description>
                Device is inactive because UPnP lease has expired.
              </description>
            </enumeration>
            <enumeration value="ByebyeReceived">
              <description>
                Device is inactive because byebye message was received.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="UUID" access="readOnly">
        <description>
          This UPnP embedded device's UUID (Universally Unique IDentifier)
          {{bibref|RFC4122}}, extracted from any of its USN (Unique Service
          Name) headers. This is a 36-byte string that uniquely identifies the
          device, the following is an example:

          : ''02c29d2a-dbfd-2d91-99c9-306d537e9856'' {{pattern}}
        </description>
        <syntax>
          <string>
            <size maxLength="36"/>
            <pattern
                value="[0-9A-Fa-f]{8}-([0-9A-Fa-f]{4}-){3}[0-9A-Fa-f]{12}"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="USN" access="readOnly">
        <description>
          The value of the USN (Unique Service Name) header for this UPnP
          embedded device. Two discovery messages are sent for embedded
          devices, and this SHOULD be the value of the USN header of the
          following form:

          : ''uuid:device-UUID::urn:domain-name:device:deviceType:v'' SSDP is
            an unreliable protocol and it is possible that no discovery message
            containing the USN header of the above form was ever received. If
            so, the other form MAY be used:

          : ''uuid:device-UUID''
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LeaseTime" access="readOnly">
        <description>
          The UPnP embedded device lease time in {{units}}, extracted from the
          CACHE-CONTROL header.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Location" access="readOnly">
        <description>
          The value of the LOCATION header for this UPnP embedded device, which
          is the URL of the root device's DDD (Device Description Document).
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Server" access="readOnly">
        <description>
          The value of the SERVER header for this UPnP embedded device, which
          is a string of the following form:

          : ''OS/version UPnP/udaversion product/version'' where '''UPnP''' is
            a literal string, '''udaversion''' is the version of the UPnP
            Device Architecture.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Host" access="readOnly">
        <description>
          {{list}} Indicates the full path names of all Host table entries,
          whether active or inactive, that correspond to this UPnP embedded
          device. As such entries are added to or removed from the Host tables,
          the value of this parameter MUST be updated accordingly.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UPnP.Discovery.Service.{i}." access="readOnly"
        numEntriesParameter="ServiceNumberOfEntries" minEntries="0"
        maxEntries="unbounded">
      <description>
        UPnP embedded service table. This table contains an entry for each UPnP
        embedded service that has been discovered via SSDP.
      </description>
      <uniqueKey>
        <parameter ref="USN"/>
      </uniqueKey>

      <parameter name="Status" access="readOnly">
        <description>
          The status of the UPnP embedded service. {{enum}} The ability to list
          inactive UPnP embedded services is OPTIONAL. The length of time an
          inactive service remains listed in this table is a local matter to
          the CPE.
        </description>
        <syntax>
          <string>
            <enumeration value="LeaseActive">
              <description>
                Service is active and UPnP lease has not expired.
              </description>
            </enumeration>
            <enumeration value="LeaseExpired">
              <description>
                Service is inactive because UPnP lease has expired.
              </description>
            </enumeration>
            <enumeration value="ByebyeReceived">
              <description>
                Service is inactive because byebye message was received.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="USN" access="readOnly">
        <description>
          The value of the USN (Unique Service Name) header for this UPnP
          embedded service. This is of the following form:

          : ''uuid:device-UUID::urn:domain-name:service:serviceType:v''
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LeaseTime" access="readOnly">
        <description>
          The UPnP embedded service lease time in {{units}}, extracted from the
          CACHE-CONTROL header.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Location" access="readOnly">
        <description>
          The value of the LOCATION header for this UPnP embedded service,
          which is the URL of the root device's DDD (Device Description
          Document).
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Server" access="readOnly">
        <description>
          The value of the SERVER header for this UPnP embedded service, which
          is a string of the following form:

          : ''OS/version UPnP/udaversion product/version'' where '''UPnP''' is
            a literal string, '''udaversion''' is the version of the UPnP
            Device Architecture.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Host" access="readOnly">
        <description>
          {{list}} Indicates the full path names of all Host table entries,
          whether active or inactive, that correspond to this UPnP embedded
          service. As such entries are added to or removed from the Host
          tables, the value of this parameter MUST be updated accordingly.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DLNA." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object contains all DLNA related objects and parameters.
      </description>
    </object>

    <object name="Device.DLNA.Capabilities." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        DLNA capabilities.
      </description>

      <parameter name="HNDDeviceClass" access="readOnly">
        <description>
          {{list}} Indicates the supported DLNA Home Network Device Classes
          {{bibref|DLNA-NDIG|Table 4-1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="DeviceCapability" access="readOnly">
        <description>
          {{list}} Indicates the supported DLNA Device Capabilities
          {{bibref|DLNA-NDIG|Table 4-2}}.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="HIDDeviceClass" access="readOnly">
        <description>
          {{list}} Indicates the supported DLNA Home Infrastructure Device
          Classes {{bibref|DLNA-NDIG|Table 4-4}}.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ImageClassProfileID" access="readOnly">
        <description>
          {{list}} Indicates the DLNA Image Class Profile IDs supported by this
          device, from Tables 5-2 and 5-3 of {{bibref|DLNA-NDIG}}.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="AudioClassProfileID" access="readOnly">
        <description>
          {{list}} Indicates the DLNA Audio Class Profile IDs supported by this
          device, from Tables 5-4 through 5-10 of {{bibref|DLNA-NDIG}}.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="AVClassProfileID" access="readOnly">
        <description>
          {{list}} Indicates the DLNA AV Class Profile IDs supported by this
          device, from Tables 5-11 through 5-15 of {{bibref|DLNA-NDIG}}.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="MediaCollectionProfileID" access="readOnly">
        <description>
          {{list}} Indicates the DLNA Media Collection Profile IDs supported by
          this device {{bibref|DLNA-NDIG|Table 5-16}}.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="PrinterClassProfileID" access="readOnly">
        <description>
          {{list}} Indicates the DLNA Printer Class Profile IDs supported by
          this device {{bibref|DLNA-NDIG|Table 5-17}}.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SmartCardReader.{i}." access="readOnly"
        numEntriesParameter="SmartCardReaderNumberOfEntries" minEntries="0"
        maxEntries="unbounded">
      <description>
        This object describes the characteristics of the smart card reader.
      </description>
      <uniqueKey>
        <parameter ref="Name"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny"
          dmr:previousParameter="">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this smart card reader.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Indicates the status of this smart card reader.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled">
              <description>
                Indicates the smart card reader is enabled and functioning
                properly.
              </description>
            </enumeration>
            <enumeration value="Error">
              <description>
                Indicates the smart card reader is enabled and not functioning
                properly.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Name" access="readOnly">
        <description>
          Human-readable name associated with this smart card reader.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Reset" access="readWrite">
        <description>
          When set to {{true}}, resets the SmartCard Reader and the associated
          SmartCard.
        </description>
        <syntax hidden="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ResetTime" access="readOnly">
        <description>
          The time at which this SmartCard Reader was reset. Reset can be
          caused by:

          * {{param|Status}} transition from Disabled to Enabled

          * {{param|Reset}} set to {{true}}.

          * An internal reset of the SmartCard Reader (including a reboot of
            the device). Unknown Time value indicates that this SmartCard
            Reader has never been reset, which can only happen if it has never
            been enabled.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="DecryptionFailedCounter" access="readOnly"
          activeNotify="canDeny">
        <description>
          Counter incremented once each time decryption cannot be carried out.
          This counter relates to the smart card reader, not to the smart card
          itself, i.e. it is reset when the {{param|Reset}} parameter is used
          and not when a Smart Card is inserted or removed.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DecryptionFailedNoKeyCounter" access="readOnly"
          activeNotify="canDeny">
        <description>
          Counter incremented once each time the key is not available to
          decrypt it. This is a subset of the more general
          {{param|DecryptionFailedCounter}} within the same object and thus
          will always be less than that parameter. This counter relates to the
          smart card reader, not to the smart card itself, i.e. it is reset
          when the {{param|Reset}} parameter is used and not when a Smart Card
          is inserted or removed.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SmartCardReader.{i}.SmartCard." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Status of currently associated smart card.
      </description>

      <parameter name="Status" access="readOnly">
        <description>
          Status of the Smart Card.
        </description>
        <syntax>
          <string>
            <enumeration value="None">
              <description>
                Indicates that no Smart Card is inserted.
              </description>
            </enumeration>
            <enumeration value="Running">
              <description>
                Indicates a Smart Card is present and working normally.
              </description>
            </enumeration>
            <enumeration value="Error">
              <description>
                Indicates the Smart Card is present and in an error condition.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Type" access="readOnly">
        <description>
          Smart Card Type. {{enum}} Vendors can extend the enumerated values
          with vendor specific extensions, in which case the rules outlined in
          {{bibref|TR-106a2|Section 3.3}} MUST be adhered to.
        </description>
        <syntax>
          <string>
            <enumeration value="CA"/>
            <enumeration value="DRM"/>
            <enumeration value="UICC"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Application" access="readOnly">
        <description>
          {{list}} Indicates Smart Card Application(s). {{param}} is only
          relevant when {{param|Type}} has a value of UICC, otherwise it is
          {{empty}}. {{enum}} Vendors can extend the enumerated values with
          vendor specific extensions, in which case the rules outlined in
          {{bibref|TR-106a2|Section 3.3}} MUST be adhered to.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="SIM"/>
            <enumeration value="USIM"/>
            <enumeration value="ISIM"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SerialNumber" access="readOnly">
        <description>
          The Smart Card Serial Number or {{empty}} if the Smart Card serial
          Number is not available, e.g. in the case of IPTV due to restrictions
          of the Service Delivery Platform.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ATR" access="readOnly">
        <description>
          The Smart Card answer to a reset action. Issued by the Smart Card
          upon reset.
        </description>
        <syntax>
          <string>
            <size maxLength="1024"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SelfTestDiagnostics." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This diagnostics test is vendor-specific and MAY include testing
        hardware, software, and/or firmware.
      </description>

      <parameter name="DiagnosticsState" access="readWrite"
          activeNotify="canDeny">
        <description>
          Indicates availability of diagnostic data. {{enum}} If the ACS sets
          the value of this parameter to {{enum|Requested}}, the CPE MUST
          initiate the corresponding diagnostic test. When writing, the only
          allowed value is {{enum|Requested}}. To ensure the use of the proper
          test parameters (the writable parameters in this object), the test
          parameters MUST be set either prior to or at the same time as (in the
          same SetParameterValues) setting the DiagnosticsState to Requested.
          When requested, the CPE SHOULD wait until after completion of the
          communication session with the ACS before starting the diagnostic.
          When the test is completed, the value of this parameter MUST be
          either {{enum|Complete}} (if the test completed successfully), or one
          of the Error values listed above. If the value of this parameter is
          anything other than {{enum|Complete}}, the values of the results
          parameters for this test are indeterminate. When the diagnostic
          initiated by the ACS is completed (successfully or not), the CPE MUST
          establish a new connection to the ACS to allow the ACS to view the
          results, indicating the Event code "8 DIAGNOSTICS COMPLETE" in the
          Inform message. After the diagnostic is complete, the value of all
          result parameters (all read-only parameters in this object) MUST be
          retained by the CPE until either this diagnostic is run again, or the
          CPE reboots. After a reboot, if the CPE has not retained the result
          parameters from the most recent test, it MUST set the value of this
          parameter to {{enum|None}}. Modifying any of the writable parameters
          in this object except for this one MUST result in the value of this
          parameter being set to {{enum|None}}. While the test is in progress,
          modifying any of the writable parameters in this object except for
          this one MUST result in the test being terminated and the value of
          this parameter being set to {{enum|None}}. While the test is in
          progress, setting this parameter to {{enum|Requested}} (and possibly
          modifying other writable parameters in this object) MUST result in
          the test being terminated and then restarted using the current values
          of the test parameters.
        </description>
        <syntax>
          <string>
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error_Internal" access="readOnly"/>
            <enumeration value="Error_Other" access="readOnly"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Results" access="readOnly" activeNotify="canDeny">
        <description>
          Results of self-test (vendor specific).
        </description>
        <syntax>
          <string>
            <size maxLength="1024"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.NSLookupDiagnostics." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object defines access to an IP-layer NS Lookup test for the
        specified IP interface. When initiated, the NS Lookup test will contact
        {{param|DNSServer}} and look up {{param|HostName}}
        {{param|NumberOfRepetitions}} times. There will be a {{object|Result}}
        instance for each time the device performs a DNS lookup, which is
        determined by the value of {{param|NumberOfRepetitions}}. Any previous
        {{object|Result}} instances are removed when a new test is initiated.
      </description>

      <parameter name="DiagnosticsState" access="readWrite"
          activeNotify="canDeny">
        <description>
          Indicates availability of diagnostic data. {{enum}} If the ACS sets
          the value of this parameter to {{enum|Requested}}, the CPE MUST
          initiate the corresponding diagnostic test. When writing, the only
          allowed value is {{enum|Requested}}. To ensure the use of the proper
          test parameters (the writable parameters in this object), the test
          parameters MUST be set either prior to or at the same time as (in the
          same SetParameterValues) setting the DiagnosticsState to
          {{enum|Requested}}. When requested, the CPE SHOULD wait until after
          completion of the communication session with the ACS before starting
          the diagnostic. When the test is completed, the value of this
          parameter MUST be either {{enum|Complete}} (if the test completed
          successfully), or one of the Error values listed above. If the value
          of this parameter is anything other than {{enum|Complete}}, the
          values of the results parameters for this test are indeterminate.
          When the diagnostic initiated by the ACS is completed (successfully
          or not), the CPE MUST establish a new connection to the ACS to allow
          the ACS to view the results, indicating the Event code "8 DIAGNOSTICS
          COMPLETE" in the Inform message. After the diagnostic is complete,
          the value of all result parameters (all read-only parameters in this
          object) MUST be retained by the CPE until either this diagnostic is
          run again, or the CPE reboots. After a reboot, if the CPE has not
          retained the result parameters from the most recent test, it MUST set
          the value of this parameter to {{enum|None}}. Modifying any of the
          writable parameters in this object except for this one MUST result in
          the value of this parameter being set to {{enum|None}}. While the
          test is in progress, modifying any of the writable parameters in this
          object except for this one MUST result in the test being terminated
          and the value of this parameter being set to {{enum|None}}. While the
          test is in progress, setting this parameter to {{enum|Requested}}
          (and possibly modifying other writable parameters in this object)
          MUST result in the test being terminated and then restarted using the
          current values of the test parameters.
        </description>
        <syntax>
          <string>
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error_DNSServerNotResolved" access="readOnly">
              <description>Unable to resolve DNSServer Name</description>
            </enumeration>
            <enumeration value="Error_Internal" access="readOnly"/>
            <enumeration value="Error_Other" access="readOnly"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} This parameter specifies the IP-layer interface over
          which the test is to be performed (i.e. the source IP address to use
          when performing the test). If {{empty}} is specified, the CPE MUST
          use its routing policy (Forwarding table entries), if necessary, to
          determine the appropriate interface.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="HostName" access="readWrite">
        <description>
          Specifies the Host Name that NS Lookup is to look for. The current
          domain name MUST be used unless the name is a fully qualified name.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DNSServer" access="readWrite">
        <description>
          Specifies the DNS Server name or IP address that NS Lookup is to use
          for the lookup. The name of this server will be resolved using the
          default DNS server unless an IP address is provided. If {{empty}} is
          specified, the device's default DNS server will be used.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Timeout" access="readWrite">
        <description>
          Timeout in {{units}} that indicates that a request has failed.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="NumberOfRepetitions" access="readWrite">
        <description>
          The number of times the device SHOULD repeat the execution of the
          NSLookup using the same input parameters. If the diagnostics test
          fails the CPE MAY terminate the test without completing the full
          number of repetitions. Each repetition will use a Result instance to
          hold the NSLookup result data.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SuccessCount" access="readOnly" activeNotify="canDeny">
        <description>
          Number of successfully executed repetitions.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ResultNumberOfEntries" access="readOnly"
          activeNotify="canDeny">
        <description>
          {{numentries}} Total number of Result entries from the most recent
          invocation of the test.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.NSLookupDiagnostics.Result.{i}." access="readOnly"
        numEntriesParameter="ResultNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:noUniqueKeys="true">
      <description>
        Results from the most recent invocation of the test, one instance per
        repetition.
      </description>

      <parameter name="Status" access="readOnly" activeNotify="canDeny">
        <description>
          Result Parameter to represent whether the NS Lookup was successful or
          not. Errors for individual Result instances do not get bubbled up to
          {{param|#.DiagnosticsState}}. A failure on a specific attempt does
          not mean that the overall test failed, but a failure on all attempts
          means that {{param|#.DiagnosticsState}} SHOULD be
          {{enum|Error_Other|#.DiagnosticsState}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Success"/>
            <enumeration value="Error_DNSServerNotAvailable"/>
            <enumeration value="Error_HostNameNotResolved"/>
            <enumeration value="Error_Timeout"/>
            <enumeration value="Error_Other"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AnswerType" access="readOnly" activeNotify="canDeny">
        <description>
          Result parameter to represent whether the answer is Authoritative or
          not.
        </description>
        <syntax>
          <string>
            <enumeration value="None">
              <description>
                Indicates that the NS Lookup failed to find the host.
              </description>
            </enumeration>
            <enumeration value="Authoritative"/>
            <enumeration value="NonAuthoritative"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="HostNameReturned" access="readOnly"
          activeNotify="canDeny">
        <description>
          Result parameter to represent the fully qualified name for the Host
          Name in the calling parameter (e.g. HostName.DomainName); if no
          response was provided, then this parameter is {{empty}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IPAddresses" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Indicates the IP Address results returned by the NS Lookup;
          if no response was provided, then this parameter is {{empty}}.
        </description>
        <syntax>
          <list maxItems="10"/>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="DNSServerIP" access="readOnly" activeNotify="canDeny">
        <description>
          Result parameter to represent the actual DNS Server IP address that
          the NS Lookup used.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="ResponseTime" access="readOnly" activeNotify="canDeny">
        <description>
          Response time (for the first response packet) in {{units}}, or 0 if
          no response was received.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Firewall." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        Firewall configuration object.
      </description>

      <parameter name="Config" access="readWrite">
        <description>
          How this firewall is configured. {{enum}} Vendors can extend the
          enumerated values with vendor specific extensions, in which case the
          rules outlined in {{bibref|TR-106a2|Section 3.3}} MUST be adhered to.
        </description>
        <syntax>
          <string>
            <enumeration value="High">
              <description>
                The firewall implements the "Traffic Denied Inbound" and
                "Minimally Permit Common Services Outbound" components of the
                ICSA residential certification's Required Services Security
                Policy {{bibref|ICSA-Residential}}. If DoS and vulnerability
                protections are implemented {{bibref|ICSA-Baseline}}, these are
                enabled.
              </description>
            </enumeration>
            <enumeration value="Low">
              <description>
                All Outbound traffic and pinhole-defined Inbound traffic is
                allowed. If DoS and vulnerability protections are implemented
                {{bibref|ICSA-Baseline}}, these are enabled.
              </description>
            </enumeration>
            <enumeration value="Off">
              <description>
                All Inbound and Outbound traffic is allowed, and the CPE is
                only protected by NAT settings (if supported and enabled). If
                DoS and vulnerability protections are implemented
                {{bibref|ICSA-Baseline}}, these are disabled.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Version" access="readOnly">
        <description>
          A string identifying the firewall settings version currently used in
          the CPE, or {{empty}} if the firewall settings are not associated
          with a version.
        </description>
        <syntax>
          <string>
            <size maxLength="16"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly">
        <description>
          The time at which the firewall settings most recently changed.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USBHosts." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object models the CPE's USB Host controllers. See
        {{bibref|TR-157|Appendix I}} for Theory of Operation.
      </description>

      <parameter name="HostNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USBHosts.Host.{i}." access="readOnly"
        numEntriesParameter="HostNumberOfEntries" minEntries="0"
        maxEntries="unbounded">
      <description>
        Table of CPE USB Host controllers.
      </description>
      <uniqueKey>
        <parameter ref="Name"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny"
          dmr:previousParameter="">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the USB Host controller.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readOnly">
        <description>
          User-readable host controller name.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Type" access="readOnly">
        <description>
          Type of USB Host
        </description>
        <syntax>
          <string>
            <enumeration value="OHCI">
              <description>Open Host Controller Interface</description>
            </enumeration>
            <enumeration value="EHCI">
              <description>Enhanced Host Controller Interface</description>
            </enumeration>
            <enumeration value="UHCI">
              <description>Universal Host Controller Interface</description>
            </enumeration>
            <enumeration value="xHCI">
              <description>Extensible Host Controller Interface</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Reset" access="readWrite">
        <description>
          When set to {{true}}, reset the Host Controller and apply the reset
          signaling (see {{bibref|USB2.0|Chapter 7.1.7.5}}) to all of the Host
          Controller Hub downstream ports. The value is not saved in the
          device's state and setting it to {{false}} has no effect.
        </description>
        <syntax hidden="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PowerManagementEnable" access="readWrite">
        <description>
          When set to {{true}}, {{param}} enables the Host Controller to invoke
          Power Management policy, i.e. controlled Suspend (see
          {{bibref|USB2.0}}, Chapters 4.3.2, 7.1.7.6, and 11.9). When set to
          {{false}} {{param}} immediately disables the Host controller Power
          Management policy.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="USBVersion" access="readOnly">
        <description>
          USB specification version with which the controller complies.
          Example: "1.1"
        </description>
        <syntax>
          <string>
            <size maxLength="4"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DeviceNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USBHosts.Host.{i}.Device.{i}." access="readOnly"
        numEntriesParameter="DeviceNumberOfEntries" minEntries="0"
        maxEntries="unbounded">
      <description>
        Table of connected USB devices.
      </description>
      <uniqueKey>
        <parameter ref="DeviceNumber"/>
      </uniqueKey>

      <parameter name="DeviceNumber" access="readOnly">
        <description>
          Device number on USB bus.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="USBVersion" access="readOnly">
        <description>
          USB specification version with which the device complies. Example:
          "1.1"
        </description>
        <syntax>
          <string>
            <size maxLength="4"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DeviceClass" access="readOnly">
        <description>
          Class Code as assigned by USB-IF. When 0x00, each device specifies
          its own class code. When 0xFF, the class code is vendor specified.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="1"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="DeviceSubClass" access="readOnly">
        <description>
          Subclass code (assigned by USB-IF).
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="1"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="DeviceVersion" access="readOnly">
        <description>
          Device release number.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DeviceProtocol" access="readOnly">
        <description>
          Protocol code (assigned by USB-IF).
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="1"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="ProductID" access="readOnly">
        <description>
          Product ID (assigned by manufacturer).
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="VendorID" access="readOnly">
        <description>
          Vendor ID (assigned by USB-IF).
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Manufacturer" access="readOnly">
        <description>
          Device Manufacturer string descriptor.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProductClass" access="readOnly">
        <description>
          Device Product Class string descriptor.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SerialNumber" access="readOnly">
        <description>
          Device SerialNumber string descriptor.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Port" access="readOnly">
        <description>
          Hub port on parent device. 0 when no parent.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Rate" access="readOnly">
        <description>
          Speed of the USB device. {{enum}} Internal signaling between the
          connected USB device and the USB Host Controller provide the
          information needed to determine the negotiated rate.
        </description>
        <syntax>
          <string>
            <enumeration value="Low">
              <description>
                1.5 Mbits/sec (187.5 KB/sec) defined in {{bibref|USB1.0}}
              </description>
            </enumeration>
            <enumeration value="Full">
              <description>
                12 Mbits/sec (1.5 MB/sec) defined in {{bibref|USB1.0}}
              </description>
            </enumeration>
            <enumeration value="High">
              <description>
                480 Mbits/sec (60 MB/sec) defined in {{bibref|USB2.0}}
              </description>
            </enumeration>
            <enumeration value="Super">
              <description>
                5.0 Gbits/sec (625 MB/sec) defined in {{bibref|USB3.0}}
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Parent" access="readOnly">
        <description>
          {{reference}} This is a reference to the parent USB device (e.g. hub
          device). This is {{empty}} for a device connected to the Host
          controller (root hub).
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.Device."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxChildren" access="readOnly">
        <description>
          Number of ports. Only applies for hub device, equal to 0 for other
          devices.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="IsSuspended" access="readOnly">
        <description>
          When {{true}} the associated Device is in a suspended (i.e.
          low-power) state (see {{bibref|USB2.0|Chapter 11.9}}). When {{false}}
          the associated Device is in any of the other states specified by the
          USB 2.0 Device State Machine (see {{bibref|USB2.0|Chapter 9.1.1}}).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IsSelfPowered" access="readOnly">
        <description>
          When {{true}} the associated device is at least partly powered by a
          local source (see {{bibref|USB2.0|Chapter 9.4.5}}). When {{false}}
          the associated device draws all the current it needs from the USB
          bus.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ConfigurationNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USBHosts.Host.{i}.Device.{i}.Configuration.{i}."
        access="readOnly" numEntriesParameter="ConfigurationNumberOfEntries"
        minEntries="0" maxEntries="unbounded">
      <description>
        Table of device configurations.
      </description>
      <uniqueKey>
        <parameter ref="ConfigurationNumber"/>
      </uniqueKey>

      <parameter name="ConfigurationNumber" access="readOnly">
        <description>
          The identifier for each Device Configuration.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="InterfaceNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}."
        access="readOnly" numEntriesParameter="InterfaceNumberOfEntries"
        minEntries="0" maxEntries="unbounded">
      <description>
        Table of device interface descriptors.
      </description>
      <uniqueKey>
        <parameter ref="InterfaceNumber"/>
      </uniqueKey>

      <parameter name="InterfaceNumber" access="readOnly">
        <description>
          Number of this interface (from USB interface descriptor).
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="InterfaceClass" access="readOnly">
        <description>
          Class Code as assigned by USB-IF. When 0x00, each interface specifies
          its own class code. When 0xFF, the class code is vendor specified.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="1"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="InterfaceSubClass" access="readOnly">
        <description>
          Subclass code (assigned by USB-IF).
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="1"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="InterfaceProtocol" access="readOnly">
        <description>
          Protocol code (assigned by USB-IF).
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="1"/>
          </hexBinary>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PeriodicStatistics." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object configures collection of periodic statistics for the
        device. Periodic statistics are measured over a sample interval (which
        can be aligned with absolute time) and are made available to the ACS as
        a comma-separated list of the most recent &lt;n&gt; samples. This
        object provides a single set of global settings that affect the entire
        device unless overridden locally.
      </description>

      <parameter name="MinSampleInterval" access="readOnly">
        <description>
          Minimum sample interval in {{units}} that the CPE is able to support.
          A value of 0 indicates no specific minimum sample interval.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxReportSamples" access="readOnly">
        <description>
          Maximum number of samples of each statistic that the CPE is able to
          store and report. A value of 0 indicates no specific maximum number
          of samples.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SampleSetNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PeriodicStatistics.SampleSet.{i}." access="readWrite"
        numEntriesParameter="SampleSetNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        Periodic statistics sample set table. Each sample set has its own
        sample interval etc.
      </description>
      <uniqueKey>
        <parameter ref="Name"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny"
          dmr:previousParameter="">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables collection of periodic statistics for this sample
          set. When collection of periodic statistics is enabled, any stored
          samples are discarded, and the first sample interval begins
          immediately.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Indicates availability of Sample statistics. {{enum}} The
          {{enum|Trigger}} value is only used for triggering the ACS to fetch
          the collected data and can only be used when {{param|FetchSamples}}
          is in the range [1:{{param|ReportSamples}}]. The transition from
          {{enum|Enabled}} to {{enum|Trigger}} to {{enum|Enabled}} MUST be
          instantaneous and so will result in only a single value change for
          notification purposes.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled">
              <description>Collection is disabled.</description>
            </enumeration>
            <enumeration value="Enabled">
              <description>Collection is enabled.</description>
            </enumeration>
            <enumeration value="Trigger">
              <description>
                Collection is enabled and the ACS SHOULD now fetch the
                collected data.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          The name of this sample set, which uniquely distinguishes each sample
          set.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SampleInterval" access="readWrite">
        <description>
          The sample interval in {{units}}. Each statistic is measured over
          this sample interval. The CPE MAY reject a request to set {{param}}
          to less than {{param|.PeriodicStatistics.MinSampleInterval}}. Sample
          intervals MUST begin every {{param}} {{units}}, with no delay between
          samples. If {{param}} is changed while collection of periodic
          statistics is enabled, any stored samples are discarded, and the
          first sample interval begins immediately. For example, if
          {{param|ReportSamples}} is 24 and {{param}} is 3600 (an hour), the
          CPE can store up to a day's worth of samples for each statistic.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="3600"/>
        </syntax>
      </parameter>

      <parameter name="ReportSamples" access="readWrite">
        <description>
          The number of samples that the CPE will store and report for each
          statistic. The CPE MUST permit {{param}} to be set to at least
          {{param|.PeriodicStatistics.MaxReportSamples}}. If {{param}} is
          changed while collection of periodic statistics is enabled, the CPE
          will truncate or extend its statistics buffers as appropriate, but
          statistics collection MUST NOT otherwise be affected. For example, if
          {{param}} is 24 and {{param|SampleInterval}} is 3600 (an hour), the
          CPE can store up to a day's worth of samples for each statistic.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
          <default type="object" value="24"/>
        </syntax>
      </parameter>

      <parameter name="TimeReference" access="readWrite">
        <description>
          An absolute time reference in UTC to determine when sample intervals
          will complete. Each sample interval MUST complete at this reference
          time plus or minus an integer multiple of {{param|SampleInterval}}.
          {{param}} is used only to set the "phase" of the sample and fetch
          intervals. The actual value of {{param}} can be arbitrarily far into
          the past or future. This time reference also determines when the
          {{param|Status}} {{enum|Enabled|Status}} to {{enum|Trigger|Status}}
          to {{enum|Enabled|Status}} transitions that are controlled by
          {{param|FetchSamples}} will occur. If collection of periodic
          statistics is enabled and {{param|FetchSamples}} is in the range
          [1:{{param|ReportSamples}}] then each such {{param|Status}}
          transition MUST occur at this reference time plus or minus an integer
          multiple of {{param|FetchSamples}} * {{param|SampleInterval}} (the
          fetch interval). If {{param}} is changed while collection of periodic
          statistics is enabled, any stored samples are discarded, and the
          first sample interval begins immediately. The Unknown Time value
          defined in {{bibref|TR-106a2}} indicates that no particular time
          reference is specified. That is, the CPE MAY locally choose the time
          reference, and is required only to adhere to the specified sample and
          fetch intervals. If absolute time is not available to the CPE, its
          sample and fetch interval behavior MUST be the same as if the
          {{param}} parameter was set to the Unknown Time value. For example,
          if {{param|SampleInterval}} is 3600 (an hour) and if {{param}} is set
          to UTC midnight on some day (in the past, present, or future) then
          sample intervals will complete on each UTC hour (00:00, 01:00, 02:00
          etc). If, in addition, {{param|FetchSamples}} is 24, then the fetch
          interval is 86400 (a day) and {{param|Status}}
          {{enum|Enabled|Status}} to {{enum|Trigger|Status}} to
          {{enum|Enabled|Status}} transitions will occur every day at UTC
          midnight. Note that, if {{param}} is set to a time other than the
          Unknown Time, the first sample interval (which has to begin
          immediately) will almost certainly be shorter than
          {{param|SampleInterval}}). This is why {{param}} is defined in terms
          of when sample intervals complete rather than start.
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value="0001-01-01T00:00:00Z"/>
        </syntax>
      </parameter>

      <parameter name="FetchSamples" access="readWrite">
        <description>
          The number of sample intervals to be collected before transitioning
          {{param|Status}} from {{enum|Enabled|Status}} to
          {{enum|Trigger|Status}} to {{enum|Enabled|Status}}. If this SampleSet
          is enabled and {{param}} is in the range [1:{{param|ReportSamples}}]
          then {{param|Status}} MUST transition from {{enum|Enabled|Status}} to
          {{enum|Trigger|Status}} to {{enum|Enabled|Status}} on completion of
          every {{param}} sample intervals. Otherwise, the transition MUST NOT
          occur. For example, if {{param|ReportSamples}} is 25 and {{param}} is
          24, then the CPE will store 25 values for each monitored parameter
          and the above {{param|Status}} transition will occur as the CPE
          stores each 24th of 25 sample intervals, which means that the ACS
          could delay for up to two sample intervals before reading the stored
          values and would still not miss any samples (see also
          {{param|ForceSample}}). To disable this trigger mechanism and still
          collect sampled statistics, {{param}} can be set to either 0 or a
          value greater than {{param|ReportSamples}}.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="ForceSample" access="readWrite">
        <description>
          When set to {{true}}, forces statistics for the current sample to be
          calculated and updated in the data model. Setting it to {{false}} has
          no effect. {{hidden}} If this is the first time that {{param}} has
          been set to {{true}} during the current sample interval, this MUST
          cause a new value to be added to each of the periodic statistics
          comma-separated list parameters, and the {{param|ReportEndTime}} and
          all {{param|SampleSeconds}} parameters MUST be updated accordingly.
          If this is not the first time that {{param}} has been set to {{true}}
          during the current sample interval, then the new values that were
          added as described in the previous paragraph, and the
          {{param|ReportEndTime}} and all {{param|SampleSeconds}} parameters,
          MUST be updated accordingly. Note that {{param}} just provides a
          "sneak preview" of the current sample. It does not create a new
          sample and it does not interfere with the sample interval schedule.
          At the end of each sample interval, if {{param}} was set to {{true}}
          during the sample interval then the new values that were added as
          described above, and the {{param|ReportEndTime}} and all
          {{param|SampleSeconds}} parameters, will be updated accordingly. In
          other words, the partial sample data that was created when {{param}}
          was set to {{true}} will be updated one last time at the end of the
          sample interval.
        </description>
        <syntax hidden="true">
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="ReportStartTime" access="readOnly">
        <description>
          The absolute time at which the sample interval for the first stored
          sample (for each statistic) started.
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ReportEndTime" access="readOnly">
        <description>
          The absolute time at which the sample interval for the last stored
          sample (for each statistic) ended. If {{param|ForceSample}} has been
          used to force statistics for the current sample to be calculated and
          updated in the data model, then {{param}} MUST be updated to reflect
          the actual time over which stored data was collected.
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SampleSeconds" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Each entry indicates the number of {{units}} during which
          data was collected during the sample interval. Individual {{param}}
          values can be less than {{param|SampleInterval}}, for several
          reasons, including:

          : {{param|TimeReference}} has been set to a time other than the
            Unknown Time and the current sample interval started part of the
            way through a scheduled sample interval.

          : {{param|ForceSample}} has been used to force statistics for the
            current sample to be calculated and updated in the data model.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ParameterNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}."
        access="readWrite" numEntriesParameter="ParameterNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        Periodic statistics parameter table for this sample set. This table
        contains entries for parameters whose values are to be sampled. Note
        that the comma-separated lists in this object (SampleSeconds,
        SuspectData and Values) only ever change (a) when first enabled, (b)
        when ForceSample is set to true (a "sneak preview" of the current
        sample), or (c) at the end of the sample interval.
      </description>
      <uniqueKey>
        <parameter ref="Reference"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny"
          dmr:previousParameter="">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this object instance.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Reference" access="readWrite">
        <description>
          {{reference}} This is the parameter being monitored by the Periodic
          Statistics mechanism.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetType="parameter"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SampleMode" access="readWrite">
        <description>
          Controls how this parameter's value is sampled. {{enum}} Parameters
          of non-numeric types can only support {{enum|Current}}. The value of
          the {{param}} MUST be ignored for such parameters.
        </description>
        <syntax>
          <string>
            <enumeration value="Current">
              <description>Sampled value is current value</description>
            </enumeration>
            <enumeration value="Change">
              <description>
                Sampled value is change in value since start of sample interval
              </description>
            </enumeration>
          </string>
          <default type="object" value="Current"/>
        </syntax>
      </parameter>

      <parameter name="CalculationMode" access="readWrite">
        <description>
          Controls how this parameter's statistic is calculated from the
          sampled value(s). {{enum}} Parameters of non-numeric types can only
          support {{enum|Latest}}. The value of the {{param}} MUST be ignored
          for such parameters. {{param|SampleMode}} MUST be applied before
          {{param}}, i.e. the inputs to the calculation will have already
          accounted for {{param|SampleMode}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Latest">
              <description>
                Statistic is sampled value at end of sample interval
              </description>
            </enumeration>
            <enumeration value="Minimum">
              <description>
                Statistic is minimum sampled value during sample interval
              </description>
            </enumeration>
            <enumeration value="Maximum">
              <description>
                Statistic is maximum sampled value during sample interval
              </description>
            </enumeration>
            <enumeration value="Average">
              <description>
                Statistic is average (mean) sampled value during sample
                interval
              </description>
            </enumeration>
          </string>
          <default type="object" value="Latest"/>
        </syntax>
      </parameter>

      <parameter name="LowThreshold" access="readWrite">
        <description>
          The low threshold value that controls the calculation of
          {{param|Failures}}. A value equal to {{param|HighThreshold}} disables
          the threshold/failure mechanism. Parameters of non-numeric types
          cannot support the threshold/failure mechanism. The value of this
          parameter MUST be ignored for such parameters.
        </description>
        <syntax>
          <int/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="HighThreshold" access="readWrite">
        <description>
          The high threshold value that controls the calculation of
          {{param|Failures}}. A value equal to {{param|LowThreshold}} disables
          the threshold/failure mechanism. Parameters of non-numeric types
          cannot support the threshold/failure mechanism. The value of this
          parameter MUST be ignored for such parameters.
        </description>
        <syntax>
          <int/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="SampleSeconds" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Each entry indicates the number of {{units}} during which
          data was collected for this parameter during the sample interval.
          Individual {{param}} values can be less than
          {{param|.PeriodicStatistics.SampleSet.{i}.SampleInterval}}, for
          several reasons, including:

          : Any of the reasons for which
            {{param|.PeriodicStatistics.SampleSet.{i}.SampleSeconds}} values
            might be less than
            {{param|.PeriodicStatistics.SampleSet.{i}.SampleInterval}}.

          : The parameter doesn't exist, or was created or deleted during a
            sample interval.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SuspectData" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Each entry is 0 if the sampled value is believed to be
          valid, or 1 if an event that might affect the validity of the sampled
          value occurred during the sample interval. For example, if the
          parameter value were to be reset during the sample interval then it
          would be appropriate to set {{param}} to 1.
        </description>
        <syntax>
          <list/>
          <unsignedInt>
            <range maxInclusive="1"/>
          </unsignedInt>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Values" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Each entry indicates the value of the referenced parameter,
          as determined by {{param|SampleMode}}, during the sample interval.
          The statistics values in this comma-separated lists MUST be in time
          order, with the oldest one first and the most recent one last. If the
          {{param|SampleMode}} parameter is not present, or is inappropriate
          for the referenced parameter, the statistics values MUST be collected
          in Current mode.
        </description>
        <syntax>
          <list/>
          <string/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Failures" access="readOnly">
        <description>
          Counts the number of times (since this object instance was last
          enabled) that a newly-calculated sample value (accounting for
          {{param|SampleMode}}) transitioned from the “in range” state to the
          “out of range” state, or between the “out of range (low)” and “out of
          range (high)” states. The states are defined as follows:

          * "in range” : current value is greater than {{param|LowThreshold}}
            and less than {{param|HighThreshold}}.

          * "out of range” : current value is less than or equal to
            {{param|LowThreshold}}, or greater than or equal to
            {{param|HighThreshold}}.

          * "out of range (low)” : current value is less than or equal to
            {{param|LowThreshold}}.

          * "out of range (high)” : current value is greater than or equal to
            {{param|HighThreshold}}. Note that, if {{param|LowThreshold}} and
            {{param|HighThreshold}} are both the same, the threshold/failure
            mechanism is disabled, so the value of this parameter will not
            increment. This parameter can be incremented at any time during a
            sample interval, and might be incremented more than once during a
            single sample interval. For this reason, the CPE SHOULD place a
            locally specified limit on the frequency at which it will notify
            the ACS of such changes, as described in {{bibref|TR-069a2|Section
            3.2.1}}. Parameters of non-numeric types cannot support the
            threshold/failure mechanism. The value of this parameter MUST be
            ignored for such parameters.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DownloadAvailability." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object contains multicast announcement and query parameters used
        for the purpose of downloading files.
      </description>
    </object>

    <object name="Device.DownloadAvailability.Announcement." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object contains multicast announcement parameters used to download
        files.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable/disable CPE ability to receive and use multicast announcements
          from a server for the purpose of downloading files.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of the announcement service.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error" optional="true">
              <description>
                MAY be used by the CPE to indicate a locally defined error
                condition.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="GroupNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DownloadAvailability.Announcement.Group.{i}."
        access="readWrite" numEntriesParameter="GroupNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        Multicast groups to which the CPE SHOULD listen for announcements.
      </description>
      <uniqueKey>
        <parameter ref="URL"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny"
          dmr:previousParameter="">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable/disable listening to this multicast group.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this group table entry.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error" optional="true">
              <description>
                MAY be used by the CPE to indicate a locally defined error
                condition, e.g. unable to parse received announcements.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="URL" access="readWrite">
        <description>
          URL {{bibref|RFC3986}} encoding the group address, source and port on
          which to listen, and other protocol information, e.g. expected
          announcement format. Depending on the application, the messages
          identified by this URL MAY directly contain the data to be
          downloaded, or alternatively MAY contain information informing the
          CPE how to obtain the data to be downloaded via a separate mechanism,
          which itself could involve a unicast or a multicast download
          protocol. Refer to {{bibref|DVB-TS.102.824}} for an example of a URL
          format that identifies a SAP {{bibref|RFC2974}} stream that indicates
          how to use either FLUTE {{bibref|RFC3926}} or DSM-CC
          {{bibref|ISO-13818-6:1998}} to perform the download.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DownloadAvailability.Query." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object contains multicast query parameters used to download files.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable/disable CPE ability to autonomously query a server for the
          purpose of downloading files.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of the query service.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error" optional="true">
              <description>
                MAY be used by the CPE to indicate a locally defined error
                condition, e.g. unable to contact query response server.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="URL" access="readWrite">
        <description>
          URL {{bibref|RFC3986}} of the query response server. Depending on the
          application, the protocol described by this URL MAY be a SOAP
          interface, or MAY be any other RPC mechanism. Refer to
          {{bibref|DVB-TS.102.824}} for an example of a URL format that
          identifies a SOAP interface running over HTTP or HTTPS.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SoftwareModules." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        Top level object for dynamically managed software applications.
      </description>

      <parameter name="ExecEnvNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DeploymentUnitNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ExecutionUnitNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SoftwareModules.ExecEnv.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="ExecEnvNumberOfEntries">
      <description>
        The Execution Environments that are available on the device, along with
        their properties and configurable settings.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Indicates whether or not this {{object}} is enabled. Disabling an
          enabled Execution Environment stops it, while enabling a disabled
          Execution Environment starts it. When an Execution Environment is
          disabled, Deployment Units installed to that Execution Environment
          will be unaffected, but any Execution Units currently running on that
          Execution Environment will automatically transition to
          {{enum|Idle|#.ExecutionUnit.{i}.Status}}. If a ChangeDUState is
          attempted on a {{object|#.DeploymentUnit}} that is to be applied
          against a disabled {{object}}, that ChangeDUState operation fails and
          the associated DUStateChangeComplete RPC will contain a FaultStruct
          for that operation. If a SetParameterValues is attempted against the
          {{param|#.ExecutionUnit.{i}.RequestedState}} for an
          {{object|#.ExecutionUnit}} that is associated with a disabled
          {{object}} a CWMP Fault will be issued in response. Disabling an
          Execution Environment could place the device in a non-manageable
          state. For example, if the operating system itself was modeled as an
          {{object}} and the ACS disabled it, the CWMP management agent might
          be terminated leaving the device unmanageable.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Indicates the status of this {{object}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Error" optional="true"/>
            <enumeration value="Disabled"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Reset" access="readWrite">
        <description>
          Setting this parameter to {{true}} causes this {{object}} to revert
          back to the state it was in when the device last issued a "0
          BOOTSTRAP" Inform event. The following requirements dictate what MUST
          happen for the reset to be complete:

          # All Deployment Units that were installed after the last "0
            BOOTSTRAP" Inform event MUST be removed

          # All persistent storage, configuration files, and log files that
            were associated with the removed Deployment Units MUST be removed

          # Any Deployment Unit that is still installed against the Execution
            Environment MUST be restored to the version present when the last
            "0 BOOTSTRAP" Inform event was issued

          # Any Deployment Unit that was present when the last "0 BOOTSTRAP"
            Inform event was issued, but was subsequently uninstalled and is
            now not present, MUST be installed with the version that was
            present when the last "0 BOOTSTRAP" Inform event was issued

          # The Execution Environment MUST be restored to the version and
            configuration present when the last "0 BOOTSTRAP" Inform event was
            issued

          # The Execution Environment MUST be restarted after all other
            restoration requirements have been met
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readOnly">
        <description>
          A Name provided by the CPE that adequately distinguishes this
          {{object}} from all other {{object}} instances.
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Type" access="readOnly">
        <description>
          Indicates the complete type and specification version of this
          {{object}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="InitialRunLevel" access="readWrite">
        <description>
          The run level that this {{object}} will be in upon startup (whether
          that is caused by a CPE Boot or the Execution Environment starting).
          Run levels dictate which Execution Units will be started. Execution
          Units will be started if {{param|CurrentRunLevel}} is greater than or
          equal to {{param|#.ExecutionUnit.{i}.RunLevel}} and
          {{param|#.ExecutionUnit.{i}.AutoStart}} is {{true}}. If the value of
          {{param|CurrentRunLevel}} is -1, then the value of this parameter is
          irrelevant when read and setting its value has no impact on the Run
          Level of this {{object}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RequestedRunLevel" access="readWrite">
        <description>
          Provides a mechanism to remotely manipulate the run level of this
          {{object}}, meaning that altering this parameter's value will change
          the value of the {{param|CurrentRunLevel}}. Run levels dictate which
          Execution Units will be started. Execution Units will be started if
          {{param|CurrentRunLevel}} is greater than or equal to
          {{param|#.ExecutionUnit.{i}.RunLevel}} and
          {{param|#.ExecutionUnit.{i}.AutoStart}} is {{true}}. Setting this
          value when {{param|CurrentRunLevel}} is -1 has no impact to the Run
          Level of this {{object}}.
        </description>
        <syntax command="true">
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="CurrentRunLevel" access="readOnly">
        <description>
          The run level that this {{object}} is currently operating in. This
          value is altered by changing the {{param|RequestedRunLevel}}
          parameter. Upon startup (whether that is caused by a CPE Boot or the
          Execution Environment starting) {{param}} will be equal to
          {{param|InitialRunLevel}}, unless Run Levels are not supported by
          this {{object}} in which case {{param}} will be -1. Run levels
          dictate which Execution Units will be started. Execution Units will
          be started if {{param}} is greater than or equal to
          {{param|#.ExecutionUnit.{i}.RunLevel}} and
          {{param|#.ExecutionUnit.{i}.AutoStart}} is {{true}}. If {{param}} is
          -1 then Run Levels are not supported by this {{object}} and setting
          {{param|InitialRunLevel}} or {{param|RequestedRunLevel}} will not
          impact the Run Level of this {{object}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Vendor" access="readOnly">
        <description>
          The vendor that produced this {{object}}.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Version" access="readOnly">
        <description>
          The Version of this {{object}} as specified by the Vendor that
          implemented this {{object}}, not the version of the specification.
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ParentExecEnv" access="readOnly">
        <description>
          Represents the parent {{object}} of this {{object}}. If this value is
          {{empty}} then this is the Primary Execution Environment.
        </description>
        <syntax>
          <string>
            <pathRef targetParent="#.ExecEnv." refType="strong"
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AllocatedDiskSpace" access="readOnly">
        <description>
          The amount of disk space measured in {{units}} allocated to this
          {{object}}. A value of -1 MUST be used for {{object}} instances where
          this parameter is not applicable.
        </description>
        <syntax>
          <int>
            <units value="kilobytes"/>
            <range minInclusive="-1"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="AvailableDiskSpace" access="readOnly"
          activeNotify="canDeny">
        <description>
          The amount of disk space measured in {{units}} currently available to
          this {{object}}. This value changes as the {{object|#.ExecutionUnit}}
          instances associated with this {{object}} consumes disk space. A
          value of -1 MUST be used for {{object}} instances where this
          parameter is not applicable.
        </description>
        <syntax>
          <int>
            <units value="kilobytes"/>
            <range minInclusive="-1"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="AllocatedMemory" access="readOnly">
        <description>
          The amount of physical RAM measured in {{units}} allocated to this
          {{object}}. A value of -1 MUST be used for {{object}} instances where
          this parameter is not applicable.
        </description>
        <syntax>
          <int>
            <units value="kilobytes"/>
            <range minInclusive="-1"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="AvailableMemory" access="readOnly"
          activeNotify="canDeny">
        <description>
          The amount of physical RAM measured in {{units}} currently available
          to this {{object}}. This value changes as the
          {{object|#.ExecutionUnit}} instances associated with this {{object}}
          are started/stopped and consume the physical RAM. A value of -1 MUST
          be used for {{object}} instances where this parameter is not
          applicable.
        </description>
        <syntax>
          <int>
            <units value="kilobytes"/>
            <range minInclusive="-1"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="ActiveExecutionUnits" access="readOnly"
          activeNotify="canDeny">
        <description>
          Represents the {{object|#.ExecutionUnit}} instances currently running
          on this {{object}}. This parameter only contains
          {{object|#.ExecutionUnit}} instances that currently have a
          {{param|#.ExecutionUnit.{i}.Status}} of
          {{enum|Active|#.ExecutionUnit.{i}.Status}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef targetParent="#.ExecutionUnit." refType="strong"
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProcessorRefList" access="readOnly">
        <description>
          Represents the processors that this {{object}} has available to it.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef targetParent=".DeviceInfo.Processor." refType="strong"
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SoftwareModules.DeploymentUnit.{i}."
        access="readOnly" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="DeploymentUnitNumberOfEntries">
      <description>
        This table serves as the Deployment Unit inventory and contains status
        information about each Deployment Unit. A new instance of this table
        gets created during the installation of a Software Module.
      </description>
      <uniqueKey functional="true">
        <parameter ref="UUID"/>
        <parameter ref="Version"/>
        <parameter ref="ExecutionEnvRef"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="UUID" access="readOnly">
        <description>
          A Universally Unique Identifier either provided by the ACS, or
          generated by the CPE, at the time of Deployment Unit Installation.
          The format of this value is defined by {{bibref|RFC4122}} Version 3
          (Name-Based) and {{bibref|TR-069a3|Annex H}}. This value MUST NOT be
          altered when the {{object}} is updated.
        </description>
        <syntax>
          <string>
            <size maxLength="36"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DUID" access="readOnly">
        <description>
          Deployment Unit Identifier chosen by the targeted
          {{object|#.ExecEnv}}. The format of this value is Execution
          Environment specific.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readOnly">
        <description>
          Indicates the Name of this {{object}}, which is chosen by the author
          of the Deployment Unit. The value of this parameter is used in the
          generation of the {{param|UUID}} based on the rules defined in
          {{bibref|TR-069a3|Annex H}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly" activeNotify="canDeny">
        <description>
          Indicates the status of this {{object}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Installing">
              <description>
                This instance is in the process of being Installed and SHOULD
                transition to the {{enum|Installed}} state.
              </description>
            </enumeration>
            <enumeration value="Installed">
              <description>
                This instance has been successfully Installed. The
                {{param|Resolved}} flag SHOULD also be referenced for
                dependency resolution.
              </description>
            </enumeration>
            <enumeration value="Updating">
              <description>
                This instance is in the process of being Updated and SHOULD
                transition to the {{enum|Installed}} state.
              </description>
            </enumeration>
            <enumeration value="Uninstalling">
              <description>
                This instance is in the process of being Uninstalled and SHOULD
                transition to the {{enum|Uninstalled}} state.
              </description>
            </enumeration>
            <enumeration value="Uninstalled">
              <description>
                This instance has been successfully Uninstalled. This status
                will typically not be seen within a {{object}} instance.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Resolved" access="readOnly">
        <description>
          Indicates whether or not this {{object}} has resolved all of its
          dependencies.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="URL" access="readOnly">
        <description>
          Contains the URL used by the most recent ChangeDUState RPC to either
          Install or Update this {{object}}.
        </description>
        <syntax>
          <string>
            <size maxLength="1024"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Description" access="readOnly">
        <description>
          Textual description of this {{object}}. The format of this value is
          Execution Environment specific.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Vendor" access="readOnly">
        <description>
          The author of this {{object}} formatted as a domain name. The value
          of this parameter is used in the generation of the {{param|UUID}}
          based on the rules defined in {{bibref|TR-069a3|Annex H}}.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Version" access="readOnly">
        <description>
          Version of this {{object}}. The format of this value is Execution
          Environment specific.
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="VendorLogList" access="readOnly">
        <description>
          Represents the vendor log files that have come into existence because
          of this {{object}}. This does not include any vendor log files that
          have come into existence because of {{object|#.ExecutionUnit}}
          instances that are contained within this {{object}}. When this
          {{object}} is uninstalled the vendor log files referenced here SHOULD
          be removed from the CPE. Not all {{object}} instances will actually
          have a corresponding vendor log file, in which case the value of this
          parameter will be {{empty}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef targetParent=".DeviceInfo.VendorLogFile."
                refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="VendorConfigList" access="readOnly">
        <description>
          Represents the vendor config files that have come into existence
          because of this {{object}}. This does not include any vendor config
          files that have come into existence because of
          {{object|#.ExecutionUnit}} instances that are contained within this
          {{object}}. When this {{object}} is uninstalled the vendor config
          files referenced here SHOULD be removed from the CPE. Not all
          {{object}} instances will actually have a corresponding vendor config
          file, in which case the value of this parameter will be {{empty}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef targetParent=".DeviceInfo.VendorConfigFile."
                refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ExecutionUnitList" access="readOnly">
        <description>
          Represents the {{object|#.ExecutionUnit}} instances that are
          associated with this {{object}} instance.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef targetParent="#.ExecutionUnit." refType="strong"
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ExecutionEnvRef" access="readOnly">
        <description>
          Represents the {{object|#.ExecEnv}} instance where this {{object}}
          instance is installed.
        </description>
        <syntax>
          <string>
            <pathRef targetParent="#.ExecEnv." refType="strong"
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SoftwareModules.ExecutionUnit.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="ExecutionUnitNumberOfEntries">
      <description>
        This table serves as the Execution Unit inventory and contains both
        status information about each Execution Unit as well as configurable
        parameters for each Execution Unit. Each {{object|#.DeploymentUnit}}
        that is installed can have zero or more Execution Units. Once a
        Deployment Unit is installed it populates this table with its contained
        Execution Units. When the Deployment Unit (that caused this {{object}}
        to come into existence) is updated, this instance MAY be removed and
        new instances MAY come into existence. While the Deployment Unit (that
        caused this {{object}} to come into existence) is being updated, all
        {{object}} instances associated with the Deployment Unit will be
        stopped until the update is complete at which time they will be
        restored to the state that they were in before the update started. When
        the Deployment Unit (that caused this {{object}} to come into
        existence) is uninstalled, this instance is removed. Each {{object}}
        MAY also contain a set of vendor specific parameters displaying status
        and maintaining configuration that reside under the
        {{object|Extensions}} object.
      </description>
      <uniqueKey functional="true">
        <parameter ref="EUID"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="EUID" access="readOnly">
        <description>
          Execution Unit Identifier chosen by the {{object|#.ExecEnv}} during
          installation of the associated {{object|#.DeploymentUnit}}. The
          format of this value is Execution Environment specific, but it MUST
          be unique across {{object|#.ExecEnv}} instances. Thus, it is
          recommended that this be a combination of the
          {{param|#.ExecEnv.{i}.Name}} and an Execution Environment local
          unique value.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny">
        <description>
          {{datatype|expand}}
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readOnly">
        <description>
          The name of this {{object}} as it pertains to its associated
          {{object|#.DeploymentUnit}}, which SHOULD be unique across all
          {{object}} instances contained within its associated
          {{object|#.DeploymentUnit}}.
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ExecEnvLabel" access="readOnly">
        <description>
          The name of this {{object}} as provided by the {{object|#.ExecEnv}},
          which SHOULD be unique across all {{object}} instances contained
          within a specific {{object|#.ExecEnv}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly"
          activeNotify="forceDefaultEnabled">
        <description>
          Indicates the status of this {{object}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Idle">
              <description>
                This instance is in an Idle state and not running.
              </description>
            </enumeration>
            <enumeration value="Starting">
              <description>
                This instance is in the process of Starting and SHOULD
                transition to the {{enum|Active}} state.
              </description>
            </enumeration>
            <enumeration value="Active">
              <description>This instance is currently running.</description>
            </enumeration>
            <enumeration value="Stopping">
              <description>
                This instance is in the process of Stopping and SHOULD
                transition to the {{enum|Idle}} state.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="RequestedState" access="readWrite">
        <description>
          Indicates the state transition that the ACS is requesting for this
          {{object}}. {{enum}} If this {{object}} is associated with an
          Execution Environment that is disabled and an attempt is made to
          alter this value, then a CWMP Fault MUST be generated.
        </description>
        <syntax command="true">
          <string>
            <enumeration value="Idle">
              <description>
                If this {{object}} is currently in {{enum|Starting|Status}} or
                {{enum|Active|Status}} the CPE will attempt to Stop the
                Execution Unit; otherwise this requested state is ignored.
              </description>
            </enumeration>
            <enumeration value="Active">
              <description>
                If this {{object}} is currently in {{enum|Idle|Status}} the CPE
                will attempt to Start the Execution Unit. If this {{object}} is
                in {{enum|Stopping|Status}} the request is rejected and a fault
                raised. Otherwise this requested state is ignored.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="ExecutionFaultCode" access="readOnly">
        <description>
          If while running or transitioning between states this {{object}}
          identifies a fault this parameter embodies the problem. The value of
          {{enum|NoFault}} MUST be used when everything is working as intended.
          {{enum}} For fault codes not included in this list, the vendor MAY
          include vendor-specific values, which MUST use the format defined in
          {{bibref|TR-106a4|Section 3.3}}.
        </description>
        <syntax>
          <string>
            <enumeration value="NoFault"/>
            <enumeration value="FailureOnStart"/>
            <enumeration value="FailureOnAutoStart"/>
            <enumeration value="FailureOnStop"/>
            <enumeration value="FailureWhileActive"/>
            <enumeration value="DependencyFailure"/>
            <enumeration value="UnStartable"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ExecutionFaultMessage" access="readOnly">
        <description>
          If while running or transitioning between states this {{object}}
          identifies a fault this parameter provides a more detailed
          explanation of the problem. If {{param|ExecutionFaultCode}} has the
          value of {{enum|NoFault|ExecutionFaultCode}} then the value of this
          parameter MUST {{empty}} and ignored by the ACS.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AutoStart" access="readWrite">
        <description>
          If {{true}} and the {{param|RunLevel}} verification is also met, then
          this {{object}} will be automatically started by the device after its
          {{object|#.ExecEnv}} is either rebooted or restarted. If {{false}}
          this {{object}} will not be started after its {{object|#.ExecEnv}} is
          either rebooted or restarted until it is explicitly commanded to do
          so by either the ACS or another Execution Unit.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RunLevel" access="readWrite">
        <description>
          Determines when this {{object}} will be started. If
          {{param|AutoStart}} is {{true}} and
          {{param|#.ExecEnv.{i}.CurrentRunLevel}} is greater than or equal to
          {{param}}, then this {{object}} will be started. If the value of
          {{param|#.ExecEnv.{i}.CurrentRunLevel}} is -1, then the associated
          {{object|#.ExecEnv.}} doesn't support Run Levels, thus the value of
          this parameter is irrelevant when read and setting its value has no
          impact to the Run Level of this {{object}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Vendor" access="readOnly">
        <description>
          Vendor of this {{object}}.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Version" access="readOnly">
        <description>
          Version of the {{object}}. The format of this value is Execution
          Environment specific.
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Description" access="readOnly">
        <description>
          Textual description of this {{object}}. The format of this value is
          Execution Environment specific.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DiskSpaceInUse" access="readOnly"
          activeNotify="canDeny">
        <description>
          The amount of disk space measured in {{units}} currently being used
          by this {{object}}. A value of -1 MUST be used for {{object}}
          instances where this parameter is not applicable.
        </description>
        <syntax>
          <int>
            <units value="kilobytes"/>
            <range minInclusive="-1"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="MemoryInUse" access="readOnly" activeNotify="canDeny">
        <description>
          The amount of physical RAM measured in {{units}} currently being used
          by this {{object}}. A value of -1 MUST be used for {{object}}
          instances where this parameter is not applicable.
        </description>
        <syntax>
          <int>
            <units value="kilobytes"/>
            <range minInclusive="-1"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="References" access="readOnly">
        <description>
          Represents the instances of multi-instanced objects that are directly
          controlled by, and have come into existence because of, this
          {{object}}. See {{bibref|TR-157a3|Appendix II.3.2}} for more
          description and some examples. NOTE: All other objects and parameters
          (i.e. not multi-instanced objects) that this {{object}} has caused to
          come into existence can be discovered via the
          {{object|.DeviceInfo.SupportedDataModel.{i}.}} table.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AssociatedProcessList" access="readOnly">
        <description>
          Represents the system processes that are active in the system because
          of this {{object}}. If {{param|Status}} is not {{enum|Active|Status}}
          it is expected that this list will be {{empty}}. Some {{object}}
          instances MIGHT NOT have any system processes irrespective of the
          value of {{param|Status}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef targetParent=".DeviceInfo.ProcessStatus.Process."
                refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="VendorLogList" access="readOnly">
        <description>
          Represents the vendor log files that have come into existence because
          of this {{object}}. When the {{object|#.DeploymentUnit}} (that caused
          this {{object}} to come into existence) is uninstalled the vendor log
          files referenced here SHOULD be removed from the CPE. Not all
          {{object}} instances will actually have a corresponding vendor log
          file, in which case the value of this parameter will be {{empty}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef targetParent=".DeviceInfo.VendorLogFile."
                refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="VendorConfigList" access="readOnly">
        <description>
          Represents the vendor config files that have come into existence
          because of this {{object}}. When the {{object|#.DeploymentUnit}}
          (that caused this {{object}} to come into existence) is uninstalled
          the vendor config files referenced here SHOULD be removed from the
          CPE. Not all {{object}} instances will actually have a corresponding
          vendor config file, in which case the value of this parameter will be
          {{empty}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef targetParent=".DeviceInfo.VendorConfigFile."
                refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SupportedDataModelList" access="readOnly">
        <description>
          Represents the CWMP-DT schema instances that have been introduced to
          this device because of the existence of this {{object}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef targetParent=".DeviceInfo.SupportedDataModel."
                refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ExecutionEnvRef" access="readOnly">
        <description>
          Represents the {{object|#.ExecEnv}} that this {{object}} is
          associated with.
        </description>
        <syntax>
          <string>
            <pathRef targetParent="#.ExecEnv." refType="strong"
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SoftwareModules.ExecutionUnit.{i}.Extensions."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        This object proposes a general location for vendor extensions specific
        to this Execution Unit, which allows multiple Execution Units to expose
        parameters without the concern of conflicting parameter names. These
        vendor extensions are related to displaying status and maintaining
        configuration for this Execution Unit. It is also possible for the
        Execution Unit to expose status and configuration parameters within
        Service objects or as embedded objects and parameters directly within
        the root data model, in which case the combination of
        {{param|#.References}} and {{param|#.SupportedDataModelList}} will be
        used to determine their locations. See {{bibref|TR-157a3|Appendix
        II.3.2}} for more description and some examples.
      </description>
    </object>

    <profile name="Baseline:1">
      <object ref="Device." requirement="present">
        <parameter ref="DeviceSummary" requirement="readOnly"/>
      </object>
      <object ref="Device.DeviceInfo." requirement="present">
        <parameter ref="Manufacturer" requirement="readOnly"/>
        <parameter ref="ManufacturerOUI" requirement="readOnly"/>
        <parameter ref="ModelName" requirement="readOnly"/>
        <parameter ref="Description" requirement="readOnly"/>
        <parameter ref="SerialNumber" requirement="readOnly"/>
        <parameter ref="HardwareVersion" requirement="readOnly"/>
        <parameter ref="SoftwareVersion" requirement="readOnly"/>
        <parameter ref="DeviceStatus" requirement="readOnly"/>
        <parameter ref="UpTime" requirement="readOnly"/>
      </object>
      <object ref="Device.ManagementServer." requirement="present">
        <parameter ref="URL" requirement="readWrite"/>
        <parameter ref="Username" requirement="readWrite"/>
        <parameter ref="Password" requirement="readWrite"/>
        <parameter ref="PeriodicInformEnable" requirement="readWrite"/>
        <parameter ref="PeriodicInformInterval" requirement="readWrite"/>
        <parameter ref="PeriodicInformTime" requirement="readWrite"/>
        <parameter ref="ParameterKey" requirement="readOnly"/>
        <parameter ref="ConnectionRequestURL" requirement="readOnly"/>
        <parameter ref="ConnectionRequestUsername" requirement="readWrite"/>
        <parameter ref="ConnectionRequestPassword" requirement="readWrite"/>
        <parameter ref="UpgradesManaged" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="GatewayInfo:1">
      <object ref="Device.GatewayInfo." requirement="present">
        <parameter ref="ManufacturerOUI" requirement="readOnly"/>
        <parameter ref="ProductClass" requirement="readOnly"/>
        <parameter ref="SerialNumber" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="Time:1">
      <object ref="Device.Time." requirement="present">
        <parameter ref="NTPServer1" requirement="readWrite"/>
        <parameter ref="NTPServer2" requirement="readWrite"/>
        <parameter ref="CurrentLocalTime" requirement="readOnly"/>
        <parameter ref="LocalTimeZone" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="LAN:1">
      <object ref="Device.LAN." requirement="present">
        <parameter ref="AddressingType" requirement="readOnly"/>
        <parameter ref="IPAddress" requirement="readOnly"/>
        <parameter ref="SubnetMask" requirement="readOnly"/>
        <parameter ref="DefaultGateway" requirement="readOnly"/>
        <parameter ref="DNSServers" requirement="readOnly"/>
        <parameter ref="MACAddress" requirement="readOnly"/>
      </object>
      <object ref="Device.LAN.Stats." requirement="present">
        <parameter ref="ConnectionUpTime" requirement="readOnly"/>
        <parameter ref="TotalBytesSent" requirement="readOnly"/>
        <parameter ref="TotalBytesReceived" requirement="readOnly"/>
        <parameter ref="TotalPacketsSent" requirement="readOnly"/>
        <parameter ref="TotalPacketsReceived" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="IPPing:1">
      <object ref="Device.LAN.IPPingDiagnostics." requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Host" requirement="readWrite"/>
        <parameter ref="NumberOfRepetitions" requirement="readWrite"/>
        <parameter ref="Timeout" requirement="readWrite"/>
        <parameter ref="DataBlockSize" requirement="readWrite"/>
        <parameter ref="DSCP" requirement="readWrite"/>
        <parameter ref="SuccessCount" requirement="readOnly"/>
        <parameter ref="FailureCount" requirement="readOnly"/>
        <parameter ref="AverageResponseTime" requirement="readOnly"/>
        <parameter ref="MinimumResponseTime" requirement="readOnly"/>
        <parameter ref="MaximumResponseTime" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="TraceRoute:1">
      <object ref="Device.LAN.TraceRouteDiagnostics." requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Host" requirement="readWrite"/>
        <parameter ref="Timeout" requirement="readWrite"/>
        <parameter ref="DataBlockSize" requirement="readWrite"/>
        <parameter ref="MaxHopCount" requirement="readWrite"/>
        <parameter ref="DSCP" requirement="readWrite"/>
        <parameter ref="ResponseTime" requirement="readOnly"/>
        <parameter ref="NumberOfRouteHops" requirement="readOnly"/>
      </object>
      <object ref="Device.LAN.TraceRouteDiagnostics.RouteHops.{i}."
          requirement="present">
        <parameter ref="HopHost" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="UDPConnReq:1">
      <object ref="Device.ManagementServer." requirement="notSpecified">
        <parameter ref="UDPConnectionRequestAddress" requirement="readOnly"/>
        <parameter ref="UDPConnectionRequestAddressNotificationLimit"
            requirement="readWrite"/>
        <parameter ref="STUNEnable" requirement="readWrite"/>
        <parameter ref="STUNServerAddress" requirement="readWrite"/>
        <parameter ref="STUNServerPort" requirement="readWrite"/>
        <parameter ref="STUNUsername" requirement="readWrite"/>
        <parameter ref="STUNPassword" requirement="readWrite"/>
        <parameter ref="STUNMaximumKeepAlivePeriod" requirement="readWrite"/>
        <parameter ref="STUNMinimumKeepAlivePeriod" requirement="readWrite"/>
        <parameter ref="NATDetected" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="Download:1">
      <object ref="Device.Capabilities.PerformanceDiagnostic."
          requirement="present">
        <parameter ref="DownloadTransports" requirement="readOnly"/>
      </object>
      <object ref="Device.DownloadDiagnostics." requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="DownloadURL" requirement="readWrite"/>
        <parameter ref="DSCP" requirement="readWrite"/>
        <parameter ref="EthernetPriority" requirement="readWrite"/>
        <parameter ref="ROMTime" requirement="readOnly"/>
        <parameter ref="BOMTime" requirement="readOnly"/>
        <parameter ref="EOMTime" requirement="readOnly"/>
        <parameter ref="TestBytesReceived" requirement="readOnly"/>
        <parameter ref="TotalBytesReceived" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="DownloadTCP:1">
      <object ref="Device.DownloadDiagnostics." requirement="present">
        <parameter ref="TCPOpenRequestTime" requirement="readOnly"/>
        <parameter ref="TCPOpenResponseTime" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="Upload:1">
      <object ref="Device.Capabilities.PerformanceDiagnostic."
          requirement="present">
        <parameter ref="UploadTransports" requirement="readOnly"/>
      </object>
      <object ref="Device.UploadDiagnostics." requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="UploadURL" requirement="readWrite"/>
        <parameter ref="DSCP" requirement="readWrite"/>
        <parameter ref="EthernetPriority" requirement="readWrite"/>
        <parameter ref="ROMTime" requirement="readOnly"/>
        <parameter ref="BOMTime" requirement="readOnly"/>
        <parameter ref="EOMTime" requirement="readOnly"/>
        <parameter ref="TestFileLength" requirement="readOnly"/>
        <parameter ref="TotalBytesSent" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="UploadTCP:1">
      <object ref="Device.UploadDiagnostics." requirement="present">
        <parameter ref="TCPOpenRequestTime" requirement="readOnly"/>
        <parameter ref="TCPOpenResponseTime" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="UDPEcho:1">
      <object ref="Device.UDPEchoConfig." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="SourceIPAddress" requirement="readWrite"/>
        <parameter ref="UDPPort" requirement="readWrite"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="PacketsResponded" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="BytesResponded" requirement="readOnly"/>
        <parameter ref="TimeFirstPacketReceived" requirement="readOnly"/>
        <parameter ref="TimeLastPacketReceived" requirement="readOnly"/>
        <parameter ref="EchoPlusSupported" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="UDPEchoPlus:1">
      <object ref="Device.UDPEchoConfig." requirement="present">
        <parameter ref="EchoPlusEnabled" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="MemoryStatus:1">
      <object ref="Device.DeviceInfo.MemoryStatus." requirement="present">
        <parameter ref="Total" requirement="readOnly"/>
        <parameter ref="Free" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="ProcessStatus:1">
      <object ref="Device.DeviceInfo.ProcessStatus." requirement="present">
        <parameter ref="CPUUsage" requirement="readOnly"/>
        <parameter ref="ProcessNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DeviceInfo.ProcessStatus.Process.{i}."
          requirement="present">
        <parameter ref="PID" requirement="readOnly"/>
        <parameter ref="Command" requirement="readOnly"/>
        <parameter ref="Size" requirement="readOnly"/>
        <parameter ref="Priority" requirement="readOnly"/>
        <parameter ref="CPUTime" requirement="readOnly"/>
        <parameter ref="State" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="TempStatus:1">
      <object ref="Device.DeviceInfo.TemperatureStatus." requirement="present">
        <parameter ref="TemperatureSensorNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}."
          requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="ResetTime" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="Value" requirement="readOnly"/>
        <parameter ref="LastUpdate" requirement="readOnly"/>
        <parameter ref="MinValue" requirement="readOnly"/>
        <parameter ref="MinTime" requirement="readOnly"/>
        <parameter ref="MaxValue" requirement="readOnly"/>
        <parameter ref="MaxTime" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="TempStatusAdv:1" extends="TempStatus:1">
      <object ref="Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}."
          requirement="present">
        <parameter ref="Reset" requirement="readWrite"/>
        <parameter ref="LowAlarmValue" requirement="readWrite"/>
        <parameter ref="LowAlarmTime" requirement="readOnly"/>
        <parameter ref="HighAlarmValue" requirement="readWrite"/>
        <parameter ref="HighAlarmTime" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="AutonXferComplPolicy:1">
      <object ref="Device.ManagementServer.AutonomousTransferCompletePolicy."
          requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="TransferTypeFilter" requirement="readWrite"/>
        <parameter ref="FileTypeFilter" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="User:1">
      <object ref="Device." requirement="present">
        <parameter ref="UserNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.User.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Username" requirement="readWrite"/>
        <parameter ref="Password" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="UPnPDev:1">
      <object ref="Device.UPnP." requirement="present"/>
      <object ref="Device.UPnP.Device." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="UPnPMediaServer" requirement="readWrite"/>
        <parameter ref="UPnPMediaRenderer" requirement="readWrite"/>
        <parameter ref="UPnPWLANAccessPoint" requirement="readWrite"/>
        <parameter ref="UPnPQoSDevice " requirement="readWrite"/>
        <parameter ref="UPnPQoSPolicyHolder" requirement="readWrite"/>
        <parameter ref="UPnPIGD" requirement="readWrite"/>
      </object>
      <object ref="Device.UPnP.Device.Capabilities." requirement="present">
        <parameter ref="UPnPArchitecture" requirement="readOnly"/>
        <parameter ref="UPnPMediaServer" requirement="readOnly"/>
        <parameter ref="UPnPMediaRenderer" requirement="readOnly"/>
        <parameter ref="UPnPWLANAccessPoint" requirement="readOnly"/>
        <parameter ref="UPnPBasicDevice" requirement="readOnly"/>
        <parameter ref="UPnPQoSDevice" requirement="readOnly"/>
        <parameter ref="UPnPQoSPolicyHolder" requirement="readOnly"/>
        <parameter ref="UPnPIGD" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="UPnPDiscBasic:1">
      <object ref="Device.UPnP." requirement="present"/>
      <object ref="Device.UPnP.Discovery." requirement="present">
        <parameter ref="RootDeviceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.UPnP.Discovery.RootDevice.{i}."
          requirement="present">
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="UUID" requirement="readOnly"/>
        <parameter ref="USN" requirement="readOnly"/>
        <parameter ref="LeaseTime" requirement="readOnly"/>
        <parameter ref="Location" requirement="readOnly"/>
        <parameter ref="Server" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="UPnPDiscAdv:1" extends="UPnPDiscBasic:1">
      <object ref="Device.UPnP.Discovery." requirement="present">
        <parameter ref="DeviceNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ServiceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.UPnP.Discovery.Device.{i}." requirement="present">
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="UUID" requirement="readOnly"/>
        <parameter ref="USN" requirement="readOnly"/>
        <parameter ref="LeaseTime" requirement="readOnly"/>
        <parameter ref="Location" requirement="readOnly"/>
        <parameter ref="Server" requirement="readOnly"/>
      </object>
      <object ref="Device.UPnP.Discovery.Service.{i}." requirement="present">
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="USN" requirement="readOnly"/>
        <parameter ref="LeaseTime" requirement="readOnly"/>
        <parameter ref="Location" requirement="readOnly"/>
        <parameter ref="Server" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="SelfTestDiag:1">
      <object ref="Device.SelfTestDiagnostics." requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Results" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="NSLookupDiag:1">
      <object ref="Device.NSLookupDiagnostics." requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="HostName" requirement="readWrite"/>
        <parameter ref="DNSServer" requirement="readWrite"/>
        <parameter ref="Timeout" requirement="readWrite"/>
        <parameter ref="NumberOfRepetitions" requirement="readWrite"/>
        <parameter ref="SuccessCount" requirement="readOnly"/>
        <parameter ref="ResultNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.NSLookupDiagnostics.Result.{i}."
          requirement="present">
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="AnswerType" requirement="readOnly"/>
        <parameter ref="HostNameReturned" requirement="readOnly"/>
        <parameter ref="IPAddresses" requirement="readOnly"/>
        <parameter ref="DNSServerIP" requirement="readOnly"/>
        <parameter ref="ResponseTime" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="SimpleFirewall:1">
      <object ref="Device.Firewall." requirement="present">
        <parameter ref="Config" requirement="readWrite"/>
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="USBHostsBasic:1">
      <object ref="Device.USBHosts." requirement="present">
        <parameter ref="HostNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.USBHosts.Host.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="Type" requirement="readOnly"/>
        <parameter ref="USBVersion" requirement="readOnly"/>
        <parameter ref="DeviceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.USBHosts.Host.{i}.Device.{i}." requirement="present">
        <parameter ref="DeviceNumber" requirement="readOnly"/>
        <parameter ref="USBVersion" requirement="readOnly"/>
        <parameter ref="DeviceClass" requirement="readOnly"/>
        <parameter ref="DeviceSubClass" requirement="readOnly"/>
        <parameter ref="DeviceVersion" requirement="readOnly"/>
        <parameter ref="DeviceProtocol" requirement="readOnly"/>
        <parameter ref="ProductID" requirement="readOnly"/>
        <parameter ref="VendorID" requirement="readOnly"/>
        <parameter ref="Manufacturer" requirement="readOnly"/>
        <parameter ref="ProductClass" requirement="readOnly"/>
        <parameter ref="SerialNumber" requirement="readOnly"/>
        <parameter ref="Port" requirement="readOnly"/>
        <parameter ref="Rate" requirement="readOnly"/>
        <parameter ref="Parent" requirement="readOnly"/>
        <parameter ref="MaxChildren" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="USBHostsAdv:1" extends="USBHostsBasic:1">
      <object ref="Device.USBHosts.Host.{i}." requirement="present">
        <parameter ref="Reset" requirement="readWrite"/>
        <parameter ref="PowerManagementEnable" requirement="readWrite"/>
      </object>
      <object ref="Device.USBHosts.Host.{i}.Device.{i}." requirement="present">
        <parameter ref="IsSuspended" requirement="readOnly"/>
        <parameter ref="IsSelfPowered" requirement="readOnly"/>
        <parameter ref="ConfigurationNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.USBHosts.Host.{i}.Device.{i}.Configuration.{i}."
          requirement="present">
        <parameter ref="ConfigurationNumber" requirement="readOnly"/>
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object
          ref="Device.USBHosts.Host.{i}.Device.{i}.Configuration.{i}.Interface.{i}."
          requirement="present">
        <parameter ref="InterfaceNumber" requirement="readOnly"/>
        <parameter ref="InterfaceClass" requirement="readOnly"/>
        <parameter ref="InterfaceSubClass" requirement="readOnly"/>
        <parameter ref="InterfaceProtocol" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="PeriodicStatsBase:1">
      <object ref="Device.PeriodicStatistics." requirement="present">
        <parameter ref="MinSampleInterval" requirement="readOnly"/>
        <parameter ref="MaxReportSamples" requirement="readOnly"/>
        <parameter ref="SampleSetNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.PeriodicStatistics.SampleSet.{i}."
          requirement="createDelete">
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="SampleInterval" requirement="readWrite"/>
        <parameter ref="ReportSamples" requirement="readWrite"/>
        <parameter ref="ReportStartTime" requirement="readOnly"/>
        <parameter ref="ReportEndTime" requirement="readOnly"/>
        <parameter ref="SampleSeconds" requirement="readOnly"/>
        <parameter ref="ParameterNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}."
          requirement="createDelete">
        <parameter ref="Reference" requirement="readWrite"/>
        <parameter ref="SampleSeconds" requirement="readOnly"/>
        <parameter ref="SuspectData" requirement="readOnly"/>
        <parameter ref="Values" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="PeriodicStatsAdv:1" extends="PeriodicStatsBase:1">
      <object ref="Device.PeriodicStatistics.SampleSet.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="TimeReference" requirement="readWrite"/>
        <parameter ref="FetchSamples" requirement="readWrite"/>
        <parameter ref="ForceSample" requirement="readWrite"/>
      </object>
      <object ref="Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="SampleMode" requirement="readWrite"/>
        <parameter ref="CalculationMode" requirement="readWrite"/>
        <parameter ref="LowThreshold" requirement="readWrite"/>
        <parameter ref="HighThreshold" requirement="readWrite"/>
        <parameter ref="Failures" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="DownloadAnnounce:1">
      <object ref="Device.DownloadAvailability." requirement="present"/>
      <object ref="Device.DownloadAvailability.Announcement."
          requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="GroupNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DownloadAvailability.Announcement.Group.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="URL" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="DownloadQuery:1">
      <object ref="Device.DownloadAvailability." requirement="present"/>
      <object ref="Device.DownloadAvailability.Query." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="URL" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="SupportedDataModel:1">
      <object ref="Device.DeviceInfo." requirement="present">
        <parameter ref="SupportedDataModelNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.DeviceInfo.SupportedDataModel.{i}."
          requirement="present">
        <parameter ref="URL" requirement="readOnly"/>
        <parameter ref="URN" requirement="readOnly"/>
        <parameter ref="Features" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="Time:2" base="Time:1">
      <object ref="Device.Time." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="TempStatusAdv:2" base="TempStatusAdv:1">
      <object ref="Device.DeviceInfo.TemperatureStatus.TemperatureSensor.{i}."
          requirement="present">
        <parameter ref="PollingInterval" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="Processors:1">
      <object ref="Device.DeviceInfo.Processor.{i}." requirement="present">
        <parameter ref="Architecture" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="VendorLogFiles:1">
      <object ref="Device.DeviceInfo.VendorLogFile.{i}." requirement="present">
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="MaximumSize" requirement="readOnly"/>
        <parameter ref="Persistent" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="DUStateChngComplPolicy:1">
      <object ref="Device.ManagementServer.DUStateChangeComplPolicy."
          requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="OperationTypeFilter" requirement="readWrite"/>
        <parameter ref="ResultTypeFilter" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="SM_ExecEnvs:1">
      <object ref="Device.SoftwareModules." requirement="present">
        <parameter ref="ExecEnvNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.SoftwareModules.ExecEnv.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="Type" requirement="readOnly"/>
        <parameter ref="Vendor" requirement="readOnly"/>
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="AllocatedDiskSpace" requirement="readOnly"/>
        <parameter ref="AvailableDiskSpace" requirement="readOnly"/>
        <parameter ref="AllocatedMemory" requirement="readOnly"/>
        <parameter ref="AvailableMemory" requirement="readOnly"/>
        <parameter ref="ActiveExecutionUnits" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="SM_DeployAndExecUnits:1">
      <object ref="Device.SoftwareModules." requirement="present">
        <parameter ref="DeploymentUnitNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ExecutionUnitNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.SoftwareModules.DeploymentUnit.{i}."
          requirement="present">
        <parameter ref="UUID" requirement="readOnly"/>
        <parameter ref="DUID" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Resolved" requirement="readOnly"/>
        <parameter ref="URL" requirement="readOnly"/>
        <parameter ref="Description" requirement="readOnly"/>
        <parameter ref="Vendor" requirement="readOnly"/>
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="VendorLogList" requirement="readOnly"/>
        <parameter ref="VendorConfigList" requirement="readOnly"/>
        <parameter ref="ExecutionUnitList" requirement="readOnly"/>
        <parameter ref="ExecutionEnvRef" requirement="readOnly"/>
      </object>
      <object ref="Device.SoftwareModules.ExecutionUnit.{i}."
          requirement="present">
        <parameter ref="EUID" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="ExecEnvLabel" requirement="readOnly"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="RequestedState" requirement="readWrite"/>
        <parameter ref="ExecutionFaultCode" requirement="readOnly"/>
        <parameter ref="ExecutionFaultMessage" requirement="readOnly"/>
        <parameter ref="Vendor" requirement="readOnly"/>
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="Description" requirement="readOnly"/>
        <parameter ref="References" requirement="readOnly"/>
        <parameter ref="AssociatedProcessList" requirement="readOnly"/>
        <parameter ref="VendorLogList" requirement="readOnly"/>
        <parameter ref="VendorConfigList" requirement="readOnly"/>
        <parameter ref="SupportedDataModelList" requirement="readOnly"/>
        <parameter ref="ExecutionEnvRef" requirement="readOnly"/>
      </object>
      <object ref="Device.SoftwareModules.ExecutionUnit.{i}.Extensions."
          requirement="present"/>
    </profile>

    <profile name="SM_Baseline:1">
      <object ref="Device.SoftwareModules." requirement="present">
        <parameter ref="ExecEnvNumberOfEntries" requirement="readOnly"/>
        <parameter ref="DeploymentUnitNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ExecutionUnitNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.SoftwareModules.ExecEnv.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="Type" requirement="readOnly"/>
        <parameter ref="Vendor" requirement="readOnly"/>
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="ActiveExecutionUnits" requirement="readOnly"/>
      </object>
      <object ref="Device.SoftwareModules.DeploymentUnit.{i}."
          requirement="present">
        <parameter ref="UUID" requirement="readOnly"/>
        <parameter ref="DUID" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Resolved" requirement="readOnly"/>
        <parameter ref="URL" requirement="readOnly"/>
        <parameter ref="Vendor" requirement="readOnly"/>
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="ExecutionUnitList" requirement="readOnly"/>
        <parameter ref="ExecutionEnvRef" requirement="readOnly"/>
      </object>
      <object ref="Device.SoftwareModules.ExecutionUnit.{i}."
          requirement="present">
        <parameter ref="EUID" requirement="readOnly"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="ExecEnvLabel" requirement="readOnly"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="RequestedState" requirement="readWrite"/>
        <parameter ref="ExecutionFaultCode" requirement="readOnly"/>
        <parameter ref="ExecutionFaultMessage" requirement="readOnly"/>
        <parameter ref="Vendor" requirement="readOnly"/>
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="References" requirement="readOnly"/>
        <parameter ref="SupportedDataModelList" requirement="readOnly"/>
      </object>
      <object ref="Device.SoftwareModules.ExecutionUnit.{i}.Extensions."
          requirement="present"/>
    </profile>
  </model>
</dm:document>
