<?xml version="1.0" encoding="UTF-8"?>
<!--
  TR-069 Device:1.11 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:
    This document defines objects for use in CWMP managed devices.  The objects
    may exist at the top level of a hierarchy, or in some cases within an 
    existing object.  The objects are intended for use in all CWMP Root 
    objects. The objects define varying functionality, diagnostics, etc. that 
    are agnostic to the type of device.
    
    Issue History:
    February 2010: tr-181-1-0-0.xml: corresponds to TR-181 Issue 1.
        * DeviceInfo: clarified DeviceID and added VendorConfigFile.{i}
        * ManagementServer: added EnableCWMP, DefaultActiveNotification-
            Throttle, CWMPRetryMinimumWaitInterval and 
            CWMPRetryIntervalMultiplier
        * Time: added Enable and Status (and Time:2 profile)
    December 2011: tr-181-1-2-0.xml:
        * updates for 3GPP LTE and 3GPP2 cdma2000 (TR-196 Issue 2)
    May 2012: tr-181-1-3-0.xml:
        * updates for Bulk Data Collection (TR-232)
    November 2012: tr-181-1-4-0.xml:
        * add components from TR-157a7
        * BulkDataCollectionDiffs
        * DI_VendorLogFilesDiffss
        * UI_RemoteAccessDiffs
        * PeriodicStatisticsDiff
-->

<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-4-0"
    file="tr-181-1-4-0.xml">
  <description>
    TR-069 Device:1.11 Root Object definition December 2012 TR-181 Issue 1
    Amendment 4
  </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>

  <dataType name="UUID">
    <description>
      Universally Unique Identifier. See {{bibref|RFC4122}}.
    </description>
    <string>
      <size minLength="36" maxLength="36"/>
      <pattern
          value="[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}"/>
    </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="3GPP-TS.23.107">
      <name>3GPP TS 23.107</name>
      <title>Quality of Service (QoS) concept and architecture</title>
      <organization>3GPP SA WG2</organization>
      <hyperlink>https://www.3gpp.org/ftp/Specs/html-info/23107.htm</hyperlink>
    </reference>
    <reference id="3GPP-TS.25.171">
      <name>3GPP TS 25.171</name>
      <title>
        Requirements for support of Assisted Global Positioning System (A-GPS)
      </title>
      <organization>3GPP RAN WG4</organization>
      <hyperlink>https://www.3gpp.org/ftp/Specs/html-info/25171.htm</hyperlink>
    </reference>
    <reference id="3GPP-TS.32.582">
      <name>3GPP TS 32.582</name>
      <title>
        Telecommunications management; Home Node B (HNB) Operations,
        Administration, Maintenance and Provisioning (OAM&amp;P); Information
        model for Type 1 interface HNB to HNB Management System (HMS)
      </title>
      <organization>3GPP SA WG5</organization>
      <hyperlink>https://www.3gpp.org/ftp/Specs/html-info/32582.htm</hyperlink>
    </reference>
    <reference id="3GPP-TS.32.584">
      <name>3GPP TS 32.584</name>
      <title>
        Telecommunications management; Home Node B (HNB) Operations,
        Administration, Maintenance and Provisioning (OAM&amp;P); XML
        definitions for Type 1 interface HNB to HNB Management Systems (HMS)
      </title>
      <organization>3GPP SA WG5</organization>
      <hyperlink>https://www.3gpp.org/ftp/Specs/html-info/32584.htm</hyperlink>
    </reference>
    <reference id="3GPP-TS.32.592">
      <name>3GPP TS 32.592</name>
      <title>
        Telecommunications management; Home enhanced Node B (HeNB) Operations,
        Administration, Maintenance and Provisioning (OAM&amp;P); Information
        model for Type 1 interface HeNB to HeNB Management System (HeMS)
      </title>
      <organization>3GPP SA WG5</organization>
      <hyperlink>https://www.3gpp.org/ftp/Specs/html-info/32592.htm</hyperlink>
    </reference>
    <reference id="3GPP2-S.S0132">
      <name>S.S0132-0 v1.0</name>
      <title>Femtocell Security Framework</title>
      <organization>3GPP2</organization>
      <date>January 2010</date>
      <hyperlink>
        https://www.3gpp2.org/Public_html/Specs/S.S0132-0_v1.0_Femtocell_Security_Framework.pdf
      </hyperlink>
    </reference>
    <reference id="3GPP2-X.S0011">
      <name>X.S0011-005-C</name>
      <title>
        cdma2000 Wireless IP Network Standard: Accounting Services and 3GPP2
        RADIUS VSAs
      </title>
      <organization>3GPP2</organization>
      <date>August 2003</date>
      <hyperlink>
        https://www.3gpp2.org/Public_html/Specs/X.S0011-005-C_v1.0_110703.pdf
      </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="ETSIM2MFA">
      <name>ETSI TS 102 690 v1.1.6</name>
      <title>
        Machine-to-Machine Communications (M2M Functional Architecture)
      </title>
      <organization>ETSI</organization>
      <date>June 2012</date>
      <hyperlink>
        https://docbox.etsi.org/M2M/Open/Latest_Drafts/00002ed121v116.pdf
      </hyperlink>
    </reference>
    <reference id="ITU-X.733">
      <name>ITU X.733</name>
      <title>
        Information technology - Open Systems Interconnection - Systems
        Management: Alarm reporting function
      </title>
      <organization>International Telecommunication Union</organization>
      <date>February 1992</date>
      <hyperlink>https://www.itu.int/rec/T-REC-X.733/en</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="RFC1035">
      <name>RFC 1035</name>
      <title>Domain Names - Implementation and Specification</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>1987</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc1035</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="RFC2782">
      <name>RFC 2782</name>
      <title>A DNS RR for specifying the location of services (DNS SRV)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2000</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2782</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="RFC4301">
      <name>RFC 4301</name>
      <title>Security Architecture for the Internet Protocol</title>
      <organization>IETF</organization>
      <date>December 2005</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4301</hyperlink>
    </reference>
    <reference id="RFC4307">
      <name>RFC 4307</name>
      <title>
        Cryptographic Algorithms for Use in the Internet Key Exchange Version 2
        (IKEv2)
      </title>
      <organization>IETF</organization>
      <date>December 2005</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4307</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="RFC4835">
      <name>RFC 4835</name>
      <title>
        Cryptographic Algorithm Implementation Requirements for Encapsulating
        Security Payload (ESP) and Authentication Header (AH)
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2007</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4835</hyperlink>
    </reference>
    <reference id="RFC5139">
      <name>RFC 5139</name>
      <title>
        Revised Civic Location Format For Presence Information Data Format
        Location Object (PIDF-LO)
      </title>
      <organization>IETF</organization>
      <date>February 2008</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc5139</hyperlink>
    </reference>
    <reference id="RFC5280">
      <name>RFC 5280</name>
      <title>
        Internet X.509 Public Key Infrastructure Certificate and Certificate
        Revocation List (CRL) Profile
      </title>
      <organization>IETF</organization>
      <date>May 2008</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc5280</hyperlink>
    </reference>
    <reference id="RFC5491">
      <name>RFC 5491</name>
      <title>
        GEOPRIV Presence Information Data Format Location Object (PIDF-LO)
        Usage Clarification, Considerations, and Recommendations
      </title>
      <organization>IETF</organization>
      <date>March 2009</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc5491</hyperlink>
    </reference>
    <reference id="DNS-SD">
      <name>RFC 6763</name>
      <title>DNS-Based Service Discovery</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2013</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc6763</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-098a2">
      <name>TR-098 Amendment 2</name>
      <title>Internet Gateway Device Data Model for TR-069</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>September 2008</date>
    </reference>
    <reference id="TR-098">
      <name>TR-098 Amendment 2 Corrigendum 1</name>
      <title>Internet Gateway Device Data Model for TR-069</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>December 2014</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-157a5">
      <name>TR-157 Amendment 5</name>
      <title>Component Objects for CWMP</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>November 2011</date>
    </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="TR-181i1">
      <name>TR-181 Issue 1</name>
      <title>Device Data Model for TR-069</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>February 2010</date>
    </reference>
    <reference id="TR-181i2">
      <name>TR-181 Issue 2 Amendment 15</name>
      <title>Device Data Model</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>January 2022</date>
    </reference>
    <reference id="TR-196i2">
      <name>TR-196 Issue 2</name>
      <title>Femto Access Point Service Data Model</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>November 2011</date>
    </reference>
    <reference id="TR-232">
      <name>TR-232</name>
      <title>Bulk Data Collection</title>
      <organization>Broadband Forum</organization>
      <category>Technical Report</category>
      <date>May 2012</date>
    </reference>
    <reference id="TR-262">
      <name>TR-262</name>
      <title>Femto Component Objects</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>November 2011</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="IPDR-FTP">
      <name>IPDR File Transfer Protocol</name>
      <title>IPDR/File Transfer Protocol</title>
      <organization>TM Forum</organization>
      <hyperlink>https://www.tmforum.org/ipdr/</hyperlink>
      <hyperlink>http://www.ipdr.org/public/</hyperlink>
    </reference>
    <reference id="IPDR-SP">
      <name>IPDR Streaming Protocol</name>
      <title>IPDR Streaming Protocol (IPDR/SP) Specification</title>
      <organization>TM Forum</organization>
      <hyperlink>https://www.tmforum.org/ipdr/</hyperlink>
      <hyperlink>http://www.ipdr.org/public/</hyperlink>
    </reference>
    <reference id="IPDR-XDR">
      <name>IPDR XDR Encoding Format</name>
      <title>IPDR/XDR Encoding Format</title>
      <organization>TM Forum</organization>
      <hyperlink>https://www.tmforum.org/ipdr/</hyperlink>
      <hyperlink>http://www.ipdr.org/public/</hyperlink>
    </reference>
    <reference id="IPDR-XML">
      <name>IPDR XML File Encoding Format</name>
      <title>IPDR/XML File Encoding Format</title>
      <organization>TM Forum</organization>
      <hyperlink>https://www.tmforum.org/ipdr/</hyperlink>
      <hyperlink>http://www.ipdr.org/public/</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-DAv11">
      <name>UPnP Device Architecture 1.1</name>
      <title>UPnP Device Architecture 1.1</title>
      <organization>UPnP Forum</organization>
      <date>October, 2008</date>
      <hyperlink>
        http://www.upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.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.11">

    <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>

      <parameter name="LocationNumberOfEntries" 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>
      <uniqueKey functional="true">
        <parameter ref="UUID"/>
      </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
          {{param|UUID}} is a unique key, so the XML file referenced by this
          URL will never change. The XML file MAY be located within the CPE. In
          this scenario the CPE MAY use the value of "localhost" as URL host
          portion, When the "localhost" value is used, the ACS has the
          responsibility to substitute the "localhost" value with the host
          portion of the connection request URL. 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="UUID" access="readOnly" dmr:previousParameter="URL">
        <description>
          UUID ({{bibref|RFC4122}}) that is the value of the uuid attribute in
          the DT Instance referenced by {{param|URL}}.
        </description>
        <syntax>
          <dataType ref="UUID"/>
        </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 status="deleted"/>
            <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>
            <enumeration value="ETSI-M2M">
              <description>see {{bibref|ETSIM2MFA}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DeviceInfo.Location.{i}." access="readWrite"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="LocationNumberOfEntries">
      <description>
        This object contains Location information.
      </description>
      <uniqueKey>
        <parameter ref="Source"/>
        <parameter ref="ExternalSource"/>
      </uniqueKey>

      <parameter name="Source" access="readOnly">
        <description>
          Identifies the source of the location data.
        </description>
        <syntax>
          <string>
            <enumeration value="GPS"/>
            <enumeration value="AGPS"/>
            <enumeration value="Manual"/>
            <enumeration value="External"/>
          </string>
          <default type="object" value="External"/>
        </syntax>
      </parameter>

      <parameter name="AcquiredTime" access="readOnly">
        <description>
          The time when the location was acquired.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ExternalSource" access="readOnly">
        <description>
          URL, MAC address, or other identifier that identifies an "External"
          source of this location. Meaningful only if {{param|Source}} has a
          value of {{enum|External|Source}}, otherwise it MUST be {{empty}}. If
          {{param|ExternalProtocol}} has a value of
          {{enum|CWMP|ExternalProtocol}}, this is the URL or IP address of the
          ACS.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ExternalProtocol" access="readOnly">
        <description>
          Protocol used to acquire a location from an "External" source.
          {{enum}} Meaningful only if {{param|Source}} has a value of
          {{enum|External|Source}}, otherwise it MUST be {{empty}}.
        </description>
        <syntax>
          <string>
            <enumeration value="">
              <description>{{empty}}</description>
            </enumeration>
            <enumeration value="CWMP"/>
            <enumeration value="OMA-DM"/>
            <enumeration value="SNMP"/>
            <enumeration value="UPnP"/>
            <enumeration value="HELD"/>
            <enumeration value="DHCPv4"/>
            <enumeration value="DHCPv6"/>
            <enumeration value="LLDP-MED"/>
            <enumeration value="MLP"/>
            <enumeration value="Other"/>
          </string>
          <default type="object" value="CWMP"/>
        </syntax>
      </parameter>

      <parameter name="DataObject" access="readWrite">
        <description>
          The currently valid location information. Writable only when
          {{param|ExternalProtocol}} has a value of
          {{enum|CWMP|ExternalProtocol}}. If obtained through the local
          GPS/AGPS then the location information is formatted according to
          {{bibref|RFC5491}}.

          If manually configured then location information will be
          XML-formatted according to {{bibref|RFC5491}} (geographical
          information) and {{bibref|RFC5139}} (civic addresses). If obtained by
          an external source this is the location information as received. If
          it's an XML document (e.g. CWMP, OMA-DM, UPnP, HELD, MLP) the
          location information will be represented as-is, otherwise it will be
          converted to base64. CWMP configured location information will be
          XML-formatted according to {{bibref|RFC5491}} (geographical
          information) and {{bibref|RFC5139}} (civic addresses). Only zero or
          one Location object instance with value
          {{enum|CWMP|ExternalProtocol}} MUST exist at any given time.
        </description>
        <syntax>
          <string>
            <size maxLength="1200"/>
          </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" dmr:noUniqueKeys="true">
      <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>

      <parameter name="LastUpdate" access="readOnly">
        <description>
          The date and time at which the last advertisement from this
          {{object}} was received.
        </description>
        <syntax>
          <dateTime/>
        </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>

      <parameter name="LastUpdate" access="readOnly">
        <description>
          The date and time at which the last advertisement from this
          {{object}} was received.
        </description>
        <syntax>
          <dateTime/>
        </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>

      <parameter name="LastUpdate" access="readOnly">
        <description>
          The date and time at which the last advertisement from this
          {{object}} was received.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ParentDevice" access="readOnly">
        <description>
          {{reference|the {{object|#.RootDevice}} or {{object|#.Device}} table
          entries that embeds this {{object}}}} This parameter is populated by
          extracting the "device-UUID" from the service's USN and matching the
          value against the root device or embedded device UUID value.
        </description>
        <syntax>
          <string>
            <pathRef
                refType="strong"
                targetParent="
                  #.RootDevice.
                  #.Device."
                targetType="row"/>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UPnP.Description." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object contains information from the Description Document
        discovered from the UPnP Devices and Services.
      </description>

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

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

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

    <object name="Device.UPnP.Description.DeviceDescription.{i}."
        access="readOnly" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="DeviceDescriptionNumberOfEntries">
      <description>
        This table contains information read from the Device Description
        Document of discovered root devices. The CPE MAY, but need not, retain
        some or all of the information in this table after the associated SSDP
        advertisement (objects in the UPnP.Discovery. object tables) expires.
        In case the SSDP advertisement expires and the CPE deletes the related
        instances from the tables in UPnP.Discovery., the reference to such
        instances MUST be set to the empty string.
      </description>
      <uniqueKey>
        <parameter ref="URLBase"/>
      </uniqueKey>

      <parameter name="URLBase" access="readOnly">
        <description>
          The value extracted from the URLBase element in the Device
          Description Document of the discovered root device. If the URLBase
          element in the root device's Device Description Document is empty or
          absent, the URL from which the device description was retrieved (e.g.
          the LOCATION from the SSDP message) is utilized as the URLBase. Note:
          the URLBase element is not recommended by {{bibref|UPnP-DAv1}} and is
          not permitted by {{bibref|UPnP-DAv11}}, so the value of {{param}}
          will usually be the URL from which the device description was
          retrieved.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SpecVersion" access="readOnly">
        <description>
          The UPnP Device Architecture version extracted from the specVersion
          element in the Device Description Document of the discovered root
          device. The {{param}} is encoded as "major revison.minor revision".
          {{pattern}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pattern value="\d+\.\d+"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Host" access="readOnly">
        <description>
          {{list}} {{reference|the Host table entries associated with the root
          device from which the device description was retrieved|ignore}}
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef
                refType="strong"
                targetParent="
                  .LANDevice.{i}.Hosts.Host.
                  .Hosts.Host."
                targetType="row"/>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UPnP.Description.DeviceInstance.{i}."
        access="readOnly" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="DeviceInstanceNumberOfEntries">
      <description>
        This table contains the information from Device Description Document
        retrieved for a discovered UPnP root or embedded device.
      </description>
      <uniqueKey>
        <parameter ref="UDN"/>
      </uniqueKey>

      <parameter name="UDN" access="readOnly">
        <description>
          Unique Device Name of this device represented as a UUID for the
          device. This value is extracted from the UDN element in the Device
          Description Document with the leading uuid: removed.
        </description>
        <syntax>
          <dataType ref="UUID"/>
        </syntax>
      </parameter>

      <parameter name="ParentDevice" access="readOnly">
        <description>
          {{reference|a {{object}} table entry (if this is an embedded device)
          or {{empty}} (if this is a root device)}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.DeviceInstance."
                targetType="row"/>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DiscoveryDevice" access="readOnly">
        <description>
          {{reference|a {{object|##.Discovery.RootDevice}} table entry (if this
          is a root device) or a {{object|##.Discovery.Device}} table entry (if
          this is an embedded device)}} This {{param}} value can be {{empty}}
          because the referenced object has been deleted or the CPE was unable
          to retrieve the Description Document due to some out-of-band error.
          The determination to delete this {{object}} or use {{empty}} is
          implementation specific.
        </description>
        <syntax>
          <string>
            <pathRef
                refType="strong"
                targetParent="
                  ##.Discovery.Device.
                  ##.Discovery.RootDevice."
                targetType="row"/>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DeviceType" access="readOnly">
        <description>
          The value of the UPnP deviceType element in the Device Description
          Document for this {{object}}, or {{empty}} if this value is not
          provided by the device.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="FriendlyName" access="readOnly">
        <description>
          The value of the UPnP friendlyName element in the Device Description
          Document for this {{object}}, or {{empty}} if this value is not
          provided by the device.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Manufacturer" access="readOnly">
        <description>
          The value of the UPnP manufacturer element in the Device Description
          Document for this {{object}}, or {{empty}} if this value is not
          provided by the device.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ManufacturerURL" access="readOnly">
        <description>
          The value of the UPnP manufacturerURL element in the Device
          Description Document for this {{object}}, or {{empty}} if this value
          is not provided by the device.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ModelDescription" access="readOnly">
        <description>
          The value of the UPnP modelDescription element in the Device
          Description Document for this {{object}}, or {{empty}} if this value
          is not provided by the device.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ModelName" access="readOnly">
        <description>
          The value of the UPnP modelName element in the Device Description
          Document for this {{object}}, or {{empty}} if this value is not
          provided by the device.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ModelNumber" access="readOnly">
        <description>
          The value of the UPnP modelNumber element in the Device Description
          Document for this {{object}}, or {{empty}} if this value is not
          provided by the device.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ModelURL" access="readOnly">
        <description>
          The value of the UPnP modelURL element in the Device Description
          Document for this {{object}}, or {{empty}} if this value is not
          provided by the device.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SerialNumber" access="readOnly">
        <description>
          The value of the UPnP serialNumber element in the Device Description
          Document for this {{object}}, or {{empty}} if this value is not
          provided by the device.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="UPC" access="readOnly">
        <description>
          The value of the UPnP UPC element in the Device Description Document
          for this {{object}}, or {{empty}} if this value is not provided by
          the device.
        </description>
        <syntax>
          <string>
            <size maxLength="12"/>
          </string>
        </syntax>
      </parameter>

      <parameter access="readOnly" name="PresentationURL">
        <description>
          The value of the UPnP presentationURL element in the Device
          Description Document for this {{object}} and MUST be an absolute URL.
          The way to obtain an absolute URL from the presentationURL element is
          specified in {{bibref|UPnP-DAv1}} and {{bibref|UPnP-DAv11}}. If the
          presentationURL is not provided by the device then this value MUST be
          {{empty}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UPnP.Description.ServiceInstance.{i}."
        access="readOnly" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="ServiceInstanceNumberOfEntries">
      <description>
        This table contains the information from Device Description Document
        retrieved for a discovered UPnP service.
      </description>
      <uniqueKey>
        <parameter ref="ParentDevice"/>
        <parameter ref="ServiceId"/>
      </uniqueKey>

      <parameter name="ParentDevice" access="readOnly">
        <description>
          {{reference|a {{object|#.DeviceInstance}} table entry}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.DeviceInstance."
                targetType="row"/>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ServiceId" access="readOnly">
        <description>
          The value of the UPnP serviceId element in the Device Description
          Document for this {{object}}, or {{empty}} if this value is not
          provided by the service. If the UPnP serviceId is not provided by the
          UPnP service, this {{object}} MUST be deleted.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ServiceDiscovery" access="readOnly">
        <description>
          {{reference|a {{object|##.Discovery.Service}} table entry}} This
          {{param}} value can be {{empty}} because the referenced object has
          been deleted or the CPE was unable to retrieve the Description
          Document due to some out-of-band error. The determination to delete
          this {{object}} or use {{empty}} is implementation specific.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="##.Discovery.Service."
                targetType="row"/>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ServiceType" access="readOnly">
        <description>
          The value of the UPnP serviceType element in the Device Description
          Document for this {{object}}, or {{empty}} if this value is not
          provided by the service.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SCPDURL" access="readOnly">
        <description>
          The value of the UPnP SCPDURL element in the Device Description
          Document for this {{object}} and MUST be an absolute URL. The way to
          obtain an absolute URL from the SCPDURL element is specified in
          {{bibref|UPnP-DAv1}} and {{bibref|UPnP-DAv11}}. If the SCPDURL is not
          provided by the device then this value MUST be {{empty}}.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ControlURL" access="readOnly">
        <description>
          The value of the UPnP controlURL element in the Device Description
          Document for this {{object}} and MUST be an absolute URL. The way to
          obtain an absolute URL from the controlURL element is specified in
          {{bibref|UPnP-DAv1}} and {{bibref|UPnP-DAv11}}. If the controlURL is
          not provided by the device then this value MUST be {{empty}}
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="EventSubURL" access="readOnly">
        <description>
          The value of the UPnP eventSubURL element in the Device Description
          Document for this {{object}} and MUST be an absolute URL. The way to
          obtain an absolute URL from the eventSubURLL element is specified in
          {{bibref|UPnP-DAv1}} and {{bibref|UPnP-DAv11}}. If the eventSubURL is
          not provided by the device then this value MUST be {{empty}}
        </description>
        <syntax>
          <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="InitialExecutionUnitRunLevel" access="readWrite"
          dmr:previousParameter="CurrentRunLevel">
        <description>
          Indicates the initial value on creation for
          {{param|#.ExecutionUnit.{i}.RunLevel}} for all Execution Unit
          instances associated with this {{object}}. 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 any Execution Unit.
        </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>

    <object name="Device.Security." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object contains general information related to managing security
        features on the device.
      </description>

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

    <object name="Device.Security.Certificate.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="CertificateNumberOfEntries">
      <description>
        This table provides information about all types of public key-based
        credentials, such as X.509 certificates, see {{bibref|RFC5280}}.
      </description>
      <uniqueKey>
        <parameter ref="SerialNumber"/>
        <parameter ref="Issuer"/>
      </uniqueKey>

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

      <parameter name="LastModif" access="readOnly">
        <description>
          The last modification time of this certificate.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="SerialNumber" access="readOnly">
        <description>
          The Serial Number field in an X.509 certificate, see
          {{bibref|RFC5280}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Issuer" access="readOnly">
        <description>
          The Issuer field in an X.509 certificate, see {{bibref|RFC5280}};
          i.e. the Distinguished Name (DN) of the entity who has signed the
          certificate.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NotBefore" access="readOnly">
        <description>
          The beginning of the certificate validity period; i.e. the Not Before
          field in an X.509 certificate, see {{bibref|RFC5280}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="NotAfter" access="readOnly">
        <description>
          The end of the certificate validity period; i.e., the Not After field
          in an X.509 certificate, see {{bibref|RFC5280}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="Subject" access="readOnly">
        <description>
          The Distinguished Name (DN) of the entity associated with the Public
          Key; i.e., the Subject field in an X.509 certificate, see
          {{bibref|RFC5280}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SubjectAlt" access="readOnly">
        <description>
          {{list}} Each item is a DNS Name. The Subject Alternative Names
          extension field in an X.509 certificate, see {{bibref|RFC5280}}.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SignatureAlgorithm" access="readOnly">
        <description>
          The algorithm used in signing the certificate; i.e. the Signature
          Algorithm field in an X.509 certificate, see {{bibref|RFC5280}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FaultMgmt." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object contains parameters relating to Fault/Alarm Management.
      </description>

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

      <parameter name="MaxCurrentAlarmEntries" access="readOnly">
        <description>
          The maximum number of entries allowed in the
          {{object|.FaultMgmt.CurrentAlarm.{i}.}} table.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

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

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

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

    <object name="Device.FaultMgmt.SupportedAlarm.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="SupportedAlarmNumberOfEntries">
      <description>
        Supported Alarm Entries which can be raised by the device. The instance
        numbers for this table SHOULD be maintained across firmware upgrades of
        the device.
      </description>
      <uniqueKey>
        <parameter ref="EventType"/>
        <parameter ref="ProbableCause"/>
        <parameter ref="SpecificProblem"/>
        <parameter ref="PerceivedSeverity"/>
      </uniqueKey>

      <parameter name="EventType" access="readOnly">
        <description>
          Indicates the type of event.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProbableCause" access="readOnly">
        <description>
          Qualifies the alarm and provides further information than
          {{param|EventType}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SpecificProblem" access="readOnly">
        <description>
          Provides further qualification on the alarm beyond
          {{param|EventType}} and {{param|ProbableCause}}. This is vendor
          defined and will be {{empty}} if the device doesn't support unique
          indexing of the table using {{param}}. The string can be set to "*"
          to indicate the default case if only a subset of {{param}} are to be
          contained within the table.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PerceivedSeverity" access="readOnly">
        <description>
          Indicates the relative level of urgency for operator attention, see
          {{bibref|ITU-X.733}}. {{enum}} This will be {{empty}} if the device
          doesn't support unique indexing of the table using {{param}}. The
          string can be set to "*" to indicate the default case if only a
          subset of {{param}} are to be contained within the table.
        </description>
        <syntax>
          <string>
            <enumeration value="">
              <description>{{empty}}</description>
            </enumeration>
            <enumeration value="*"/>
            <enumeration value="Cleared"/>
            <enumeration value="Critical"/>
            <enumeration value="Major"/>
            <enumeration value="Minor"/>
            <enumeration value="Warning"/>
            <enumeration value="Indeterminate"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ReportingMechanism" access="readWrite">
        <description>
          Indicates the reporting mechanism setting of the alarm. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="0 Expedited">
              <description>
                The device inserts the alarm into the
                {{object|.FaultMgmt.ExpeditedEvent.{i}.}} table and the
                {{object|.FaultMgmt.ExpeditedEvent.{i}.}} table.
              </description>
            </enumeration>
            <enumeration value="1 Queued">
              <description>
                The device inserts the alarm into the
                {{object|.FaultMgmt.QueuedEvent.{i}.}} table and the
                {{object|.FaultMgmt.QueuedEvent.{i}.}} table.
              </description>
            </enumeration>
            <enumeration value="2 Logged">
              <description>
                The device inserts the alarm into the
                {{object|.FaultMgmt.HistoryEvent.{i}.}} table.
              </description>
            </enumeration>
            <enumeration value="3 Disabled">
              <description>The device ignores the alarm.</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FaultMgmt.CurrentAlarm.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="CurrentAlarmNumberOfEntries">
      <description>
        Contains all currently active alarms (whose
        {{param|.FaultMgmt.SupportedAlarm.{i}.PerceivedSeverity}} is not
        {{enum|Cleared|.FaultMgmt.SupportedAlarm.{i}.PerceivedSeverity}}).
        Newly raised alarms result in a new entry in this table being added,
        any changes to the alarm as a result of an update event are updated in
        the existing table entry, and a clear event raised against an alarm
        results in the alarm being removed from this table.

        If maximum entries as indicated by
        {{param|.FaultMgmt.MaxCurrentAlarmEntries}} is reached, the next event
        overrides the object with the oldest {{param|AlarmChangedTime}}. When a
        new alarm replaces an existing alarm, then all parameter values for
        that instance are considered as changed for the purposes of value
        change notifications to the ACS (even if their new values are identical
        to those of the prior alarm).
      </description>
      <uniqueKey>
        <parameter ref="AlarmIdentifier"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="EventType"/>
        <parameter ref="ProbableCause"/>
        <parameter ref="SpecificProblem"/>
      </uniqueKey>

      <parameter name="AlarmIdentifier" access="readOnly">
        <description>
          Identifies one Alarm Entry in the Alarm List. This value MUST be
          uniquely allocated by the device to the alarm instance during the
          lifetime of the individual alarm.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AlarmRaisedTime" access="readOnly">
        <description>
          Indicates the date and time when the alarm was first raised by the
          device.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="AlarmChangedTime" access="readOnly">
        <description>
          Indicates the date and time when the alarm was last changed by the
          device.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ManagedObjectInstance" access="readOnly">
        <description>
          Specifies the instance of the Informational Object Class in which the
          alarm occurred by carrying the Distinguished Name (DN) of this object
          instance. The format of the DN is specific to the application that is
          using this {{object}}.
        </description>
        <syntax>
          <string>
            <size maxLength="512"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EventType" access="readOnly">
        <description>
          Indicates the type of event.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProbableCause" access="readOnly">
        <description>
          Qualifies the alarm and provides further information than
          {{param|EventType}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SpecificProblem" access="readOnly">
        <description>
          Provides further qualification on the alarm beyond
          {{param|EventType}} and {{param|ProbableCause}}. This is vendor
          defined and will be {{empty}} if the device doesn't support inclusion
          of this information.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PerceivedSeverity" access="readOnly">
        <description>
          Indicates the relative level of urgency for operator attention, see
          {{bibref|ITU-X.733}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Critical"/>
            <enumeration value="Major"/>
            <enumeration value="Minor"/>
            <enumeration value="Warning"/>
            <enumeration value="Indeterminate"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AdditionalText" access="readOnly">
        <description>
          This provides a textual string which is vendor defined. This will be
          {{empty}} if the device doesn't support inclusion of this
          information.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AdditionalInformation" access="readOnly">
        <description>
          This contains additional information about the alarm and is vendor
          defined.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FaultMgmt.HistoryEvent.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="HistoryEventNumberOfEntries">
      <description>
        Alarm events added or updated in
        {{object|.FaultMgmt.CurrentAlarm.{i}.}} are simultaneously entered into
        the this table. This table also contains alarm clearing events. Active
        alarms at the time of a power failure or reboot might not get an alarm
        clearing event. This object has a fixed number of entries with instance
        numbers from 1 to {{param|.FaultMgmt.HistoryEventNumberOfEntries}}. If
        maximum instance number
        {{param|.FaultMgmt.HistoryEventNumberOfEntries}} is reached, the next
        event overrides the object with instance number 1. Subsequent entries
        override objects at sequentially increasing instance numbers. This
        logic provides for automatic "rolling" of records.
      </description>
      <uniqueKey>
        <parameter ref="EventTime"/>
        <parameter ref="AlarmIdentifier"/>
      </uniqueKey>

      <parameter name="EventTime" access="readOnly">
        <description>
          Indicates the date and time when the alarm event occurs.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="AlarmIdentifier" access="readOnly">
        <description>
          Identifies one Alarm Entry in the Alarm List. This value MUST be
          uniquely allocated by the device to the alarm instance during the
          lifetime of the individual alarm.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NotificationType" access="readOnly">
        <description>
          Indicates the reason for the specific alarm notification event.
          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="NewAlarm"/>
            <enumeration value="ChangedAlarm"/>
            <enumeration value="ClearedAlarm"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ManagedObjectInstance" access="readOnly">
        <description>
          Specifies the instance of the Informational Object Class in which the
          alarm occurred by carrying the Distinguished Name (DN) of this object
          instance. The format of the DN is specific to the application that is
          using this {{object}}.
        </description>
        <syntax>
          <string>
            <size maxLength="512"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EventType" access="readOnly">
        <description>
          Indicates the type of event.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProbableCause" access="readOnly">
        <description>
          Qualifies the alarm and provides further information than
          {{param|EventType}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SpecificProblem" access="readOnly">
        <description>
          Provides further qualification on the alarm beyond
          {{param|EventType}} and {{param|ProbableCause}}. This is vendor
          defined and will be {{empty}} if the device doesn't support inclusion
          of this information.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PerceivedSeverity" access="readOnly">
        <description>
          Indicates the relative level of urgency for operator attention, see
          {{bibref|ITU-X.733}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Cleared"/>
            <enumeration value="Critical"/>
            <enumeration value="Major"/>
            <enumeration value="Minor"/>
            <enumeration value="Warning"/>
            <enumeration value="Indeterminate"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AdditionalText" access="readOnly">
        <description>
          This provides a textual string which is vendor defined. This will be
          {{empty}} if the device doesn't support inclusion of this
          information.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AdditionalInformation" access="readOnly">
        <description>
          This contains additional information about the alarm and is vendor
          defined.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FaultMgmt.ExpeditedEvent.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="ExpeditedEventNumberOfEntries">
      <description>
        Alarm events added or updated in
        {{object|.FaultMgmt.CurrentAlarm.{i}.}} are simultaneously entered into
        the this table if their corresponding entry in
        {{object|.FaultMgmt.SupportedAlarm.{i}.}} has
        {{param|.FaultMgmt.SupportedAlarm.{i}.ReportingMechanism}} set to
        {{enum|0 Expedited|.FaultMgmt.SupportedAlarm.{i}.ReportingMechanism}}.
        This table also contains alarm clearing events. This object has a fixed
        number of entries with instance numbers from 1 to
        {{param|.FaultMgmt.ExpeditedEventNumberOfEntries}}. Initially the table
        starts with all instances having {{param|EventTime}} set to the Unknown
        Time value, as defined in {{bibref|TR-106a4}}. If maximum instance
        number {{param|.FaultMgmt.ExpeditedEventNumberOfEntries}} is reached,
        the next event overrides the object with instance number 1. Subsequent
        entries override objects at sequentially increasing instance numbers.
        This logic provides for automatic "rolling" of records. When a new
        alarm replaces an existing alarm, then all parameter values for that
        instance are considered as changed for the purposes of value change
        notifications to the ACS (even if their new values are identical to
        those of the prior alarm).
      </description>
      <uniqueKey>
        <parameter ref="AlarmIdentifier"/>
      </uniqueKey>

      <parameter name="EventTime" access="readOnly">
        <description>
          Indicates the date and time when the alarm event occurs. For an
          unpopulated entry, the value is the Unknown Time as defined in
          {{bibref|TR-106a4}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="AlarmIdentifier" access="readOnly">
        <description>
          Identifies one Alarm Entry in the Alarm List. This value MUST be
          uniquely allocated by the device to the alarm instance during the
          lifetime of the individual alarm. For an unpopulated entry, the value
          is {{empty}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NotificationType" access="readOnly">
        <description>
          Indicates the reason for the specific alarm notification event.
          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="NewAlarm"/>
            <enumeration value="ChangedAlarm"/>
            <enumeration value="ClearedAlarm"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ManagedObjectInstance" access="readOnly">
        <description>
          Specifies the instance of the Informational Object Class in which the
          alarm occurred by carrying the Distinguished Name (DN) of this object
          instance. The format of the DN is specific to the application that is
          using this {{object}}.
        </description>
        <syntax>
          <string>
            <size maxLength="512"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EventType" access="readOnly">
        <description>
          Indicates the type of event.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProbableCause" access="readOnly">
        <description>
          Qualifies the alarm and provides further information than
          {{param|EventType}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SpecificProblem" access="readOnly">
        <description>
          Provides further qualification on the alarm beyond
          {{param|EventType}} and {{param|ProbableCause}}. This is vendor
          defined and will be {{empty}} if the device doesn't support inclusion
          of this information.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PerceivedSeverity" access="readOnly">
        <description>
          Indicates the relative level of urgency for operator attention, see
          {{bibref|ITU-X.733}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Cleared"/>
            <enumeration value="Critical"/>
            <enumeration value="Major"/>
            <enumeration value="Minor"/>
            <enumeration value="Warning"/>
            <enumeration value="Indeterminate"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AdditionalText" access="readOnly">
        <description>
          This provides a textual string which is vendor defined. This will be
          {{empty}} if the device doesn't support inclusion of this
          information.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AdditionalInformation" access="readOnly">
        <description>
          This contains additional information about the alarm and is vendor
          defined.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FaultMgmt.QueuedEvent.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="QueuedEventNumberOfEntries">
      <description>
        Alarm events added or updated in
        {{object|.FaultMgmt.CurrentAlarm.{i}.}} are simultaneously entered into
        the this table if their corresponding entry in
        {{object|.FaultMgmt.SupportedAlarm.{i}.}} has
        {{param|.FaultMgmt.SupportedAlarm.{i}.ReportingMechanism}} set to
        {{enum|1 Queued|.FaultMgmt.SupportedAlarm.{i}.ReportingMechanism}}.
        This table also contains alarm clearing events. This object has a fixed
        number of entries with instance numbers from 1 to
        {{param|.FaultMgmt.QueuedEventNumberOfEntries}}. Initially the table
        starts with all instances having {{param|EventTime}} set to the Unknown
        Time value, as defined in {{bibref|TR-106a4}}. If maximum instance
        number {{param|.FaultMgmt.QueuedEventNumberOfEntries}} is reached, the
        next event overrides the object with instance number 1. Subsequent
        entries override objects at sequentially increasing instance numbers.
        This logic provides for automatic "rolling" of records. When a new
        alarm replaces an existing alarm, then all parameter values for that
        instance are considered as changed for the purposes of value change
        notifications to the ACS (even if their new values are identical to
        those of the prior alarm).
      </description>
      <uniqueKey>
        <parameter ref="AlarmIdentifier"/>
      </uniqueKey>

      <parameter name="EventTime" access="readOnly">
        <description>
          Indicates the date and time when the alarm event occurs. For an
          unpopulated entry, the value is the Unknown Time as defined in
          {{bibref|TR-106a4}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="AlarmIdentifier" access="readOnly">
        <description>
          Identifies one Alarm Entry in the Alarm List. This value MUST be
          uniquely allocated by the device to the alarm instance during the
          lifetime of the individual alarm. For an unpopulated entry, the value
          is {{empty}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NotificationType" access="readOnly">
        <description>
          Indicates the reason for the specific alarm notification event.
          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="NewAlarm"/>
            <enumeration value="ChangedAlarm"/>
            <enumeration value="ClearedAlarm"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ManagedObjectInstance" access="readOnly">
        <description>
          Specifies the instance of the Informational Object Class in which the
          alarm occurred by carrying the Distinguished Name (DN) of this object
          instance. The format of the DN is specific to the application that is
          using this {{object}}.
        </description>
        <syntax>
          <string>
            <size maxLength="512"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EventType" access="readOnly">
        <description>
          Indicates the type of event.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProbableCause" access="readOnly">
        <description>
          Qualifies the alarm and provides further information than
          {{param|EventType}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SpecificProblem" access="readOnly">
        <description>
          Provides further qualification on the alarm beyond
          {{param|EventType}} and {{param|ProbableCause}}. This is vendor
          defined and will be {{empty}} if the device doesn't support inclusion
          of this information.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PerceivedSeverity" access="readOnly">
        <description>
          Indicates the relative level of urgency for operator attention, see
          {{bibref|ITU-X.733}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Cleared"/>
            <enumeration value="Critical"/>
            <enumeration value="Major"/>
            <enumeration value="Minor"/>
            <enumeration value="Warning"/>
            <enumeration value="Indeterminate"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AdditionalText" access="readOnly">
        <description>
          This provides a textual string which is vendor defined. This will be
          {{empty}} if the device doesn't support inclusion of this
          information.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AdditionalInformation" access="readOnly">
        <description>
          This contains additional information about the alarm and is vendor
          defined.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP." access="readOnly" minEntries="1" maxEntries="1">
      <description>
        This object is the container for all Femto related component objects,
        to prevent pollution of the so-called global namespace of the BBF with
        FAP specific objects.
      </description>
    </object>

    <object name="Device.FAP.GPS." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object contains the parameters relating to the GPS scan.
      </description>

      <parameter name="ScanOnBoot" access="readWrite">
        <description>
          Enables or disables GPS scans during the device start up.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="true"/>
        </syntax>
      </parameter>

      <parameter name="ScanPeriodically" access="readWrite">
        <description>
          Enables or disables periodic GPS scans.
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="PeriodicInterval" access="readWrite">
        <description>
          When {{param|ScanPeriodically}} is {{true}}, this value indicates the
          interval in {{units}} which GPS scan is performed.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PeriodicTime" access="readWrite">
        <description>
          An absolute time reference in UTC to determine when the CPE will
          initiate the periodic GPS scan. Each GPS scan MUST occur at (or as
          soon as possible after) this reference time plus or minus an integer
          multiple of the {{param|PeriodicInterval}}. {{param}} is used only to
          set the "phase" of the GPS scan. The actual value of {{param}} can be
          arbitrarily far into the past or future. For example, if
          {{param|PeriodicInterval}} is 86400 (a day) and if {{param}} is set
          to UTC midnight on some day (in the past, present, or future) then
          periodic GPS scans 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-106a4|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
          PeriodicInformInterval. If absolute time is not available to the CPE,
          its periodic GPS scan behavior MUST be the same as if {{param}}
          parameter was set to the Unknown Time value.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ContinuousGPS" access="readWrite">
        <description>
          Whether or not the device SHOULD maintain a continuous GPS lock (e.g.
          as a frequency stability source).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ScanTimeout" access="readWrite">
        <description>
          Specifies the time-out value in {{units}} since the scan started
          after which the scan will time out. A timed out scan is to be
          reported as {{enum|Error_TIMEOUT|ScanStatus}} with
          {{param|ErrorDetails}} indicating "Timed out"
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ScanStatus" access="readOnly">
        <description>
          Indicates the current status of this scan.
        </description>
        <syntax>
          <string>
            <enumeration value="Indeterminate">
              <description>
                The scan has not been executed and there are no valid scan
                results available
              </description>
            </enumeration>
            <enumeration value="InProgress"/>
            <enumeration value="Success"/>
            <enumeration value="Error"/>
            <enumeration value="Error_TIMEOUT"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ErrorDetails" access="readOnly">
        <description>
          Provides more detail when the {{param|ScanStatus}} is either
          {{enum|Error|ScanStatus}} or {{enum|Error_TIMEOUT|ScanStatus}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastScanTime" access="readOnly"
          activeNotify="forceDefaultEnabled">
        <description>
          The date and time when the last GPS scan completed.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="LastSuccessfulScanTime" access="readOnly"
          activeNotify="canDeny">
        <description>
          Specifies the date and time, when the GPS scan last completed
          successfully. This value is retained across reboot and is only reset
          after another scan completes successfully or {{param|GPSReset}} is
          set to {{true}}. The values for {{param|LockedLatitude}},
          {{param|LockedLongitude}} and {{param|NumberOfSatellites}} correspond
          to this time. If a scan has never succeeded before, the value will be
          the Unknown Time value, as defined in {{bibref|TR-106a4|Section
          3.2}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="LockedLatitude" access="readOnly"
          activeNotify="canDeny">
        <description>
          This parameter specifies the latitude of the device's position in
          degrees, multiplied by 1 million. The positive value signifies the
          direction, north of the equator. The negative value signifies the
          direction, south of the equator. Range is from: 90d00.00' South
          (-90,000,000) to 90d00.00' North (90,000,000). Example: A latitude of
          13d19.43' N would be represented as 13,323,833, derived as
          (13*1,000,000)+((19.43*1,000,000)/60). Latitude of 50d00.00' S would
          be represented as value -50,000,000. This value is retained across
          reboots and is only reset after another scan completes successfully
          or {{param|GPSReset}} is set to {{true}}. If a scan has never
          succeeded before, the value 0 is reported.
        </description>
        <syntax>
          <int>
            <range minInclusive="-90000000" maxInclusive="90000000"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="LockedLongitude" access="readOnly"
          activeNotify="canDeny">
        <description>
          This parameter specifies the longitude of the device's position in
          degrees, multiplied by 1 million. The positive value signifies the
          direction, east of the prime meridian. The negative value signifies
          the direction, west of the prime meridian. Range is from: 180d00.00'
          West (-180,000,000) to 180d00.00' East (180,000,000). Example: A
          longitude of 13d19.43' E would be represented as 13,323,833, derived
          as (13*1,000,000)+((19.43*1,000,000)/60). A longitude of 50d00.00' W
          would be represented as value -50,000,000. This value is retained
          across reboots and is only reset after another scan completes
          successfully or {{param|GPSReset}} is set to {{true}}. If a scan has
          never succeeded before, the value 0 is reported.
        </description>
        <syntax>
          <int>
            <range minInclusive="-180000000" maxInclusive="180000000"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="NumberOfSatellites" access="readOnly"
          activeNotify="canDeny">
        <description>
          The number of satellites that were locked during the test execution.
          The greater the number of satellites the better the precision of the
          results. This value is retained across reboots and is only reset
          after another scan completes successfully or {{param|GPSReset}} is
          set to {{true}}. If a scan has never succeeded before, the value 0 is
          reported.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="GPSReset" access="readWrite">
        <description>
          Setting this to {{true}} will cause a reset on the GPS Hardware.
          Setting this to {{false}} has no effect.
        </description>
        <syntax command="true">
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.GPS.ContinuousGPSStatus." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        When {{param|#.ContinuousGPS}} is {{true}}, the parameters in this
        object contain the GPS status as it is continuously monitored. When
        {{param|#.ContinuousGPS}} is {{false}}, the parameters in this object
        are not being updated and their values are not accurate.
      </description>

      <parameter name="CurrentFix" access="readOnly" activeNotify="canDeny">
        <description>
          The value is {{true}} if the location fix is currently valid (i.e.
          GPS receiver is currently tracking satellite signals), otherwise it
          is {{false}}. After a reboot the value is {{false}} until the GPS
          receivers has a valid current position.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="GotFix" access="readOnly" activeNotify="canDeny">
        <description>
          The value is {{true}} if {{param|CurrentFix}} has transitioned to
          {{true}} at least once since {{param|#.ContinuousGPS}} was enabled,
          otherwise it is {{false}}. After a reboot the value is {{false}}
          until {{param|CurrentFix}} has transitioned to {{true}} again. The
          GPS coordinates ({{param|Latitude}}, {{param|Longitude}}, and
          {{param|Elevation}}) are not valid until {{param}} has a value of
          {{true}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TimingGood" access="readOnly" activeNotify="canDeny">
        <description>
          The value is {{true}} if the timing synchronization is good,
          otherwise it is {{false}}. After a reboot the value is {{false}}
          until the timing is synchronized again.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Latitude" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter represents the most recent latitude reading for the
          device's position in degrees, multiplied by 1 million. The positive
          value signifies the direction, north of the equator. The negative
          value signifies the direction, south of the equator. Range is from:
          90 deg 00.00' South (-90,000,000) to 90 deg 00.00' North
          (90,000,000). Example: A latitude of 13 deg 19.43' N would be
          represented as 13,323,833, derived as
          (13*1,000,000)+((19.43*1,000,000)/60). Latitude of 50 deg 00.00' S
          would be represented as value -50,000,000. {{param}} is not valid
          until {{param|GotFix}} is {{true}}. If the parameter has never been
          set before, the value 0 is reported. The value SHOULD be maintained
          over a reboot.
        </description>
        <syntax>
          <int>
            <range minInclusive="-90000000" maxInclusive="90000000"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Longitude" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter represents the most recent longitude reading for the
          device's position in degrees, multiplied by 1 million. The positive
          value signifies the direction, east of the prime meridian. The
          negative value signifies the direction, west of the prime meridian.
          Range is from: 180d00.00' West (-180,000,000) to 180d00.00' East
          (180,000,000). Example: A longitude of 13d19.43' E would be
          represented as 13,323,833, derived as
          (13*1,000,000)+((19.43*1,000,000)/60). A longitude of 50d00.00' W
          would be represented as value -50,000,000. {{param}} is not valid
          until {{param|GotFix}} is {{true}}. If the parameter has never been
          set before, the value 0 is reported. The value SHOULD be maintained
          over a reboot.
        </description>
        <syntax>
          <int>
            <range minInclusive="-180000000" maxInclusive="180000000"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Elevation" access="readOnly" activeNotify="canDeny">
        <description>
          This parameter represents the most recent elevation reading for the
          device's position in {{units}}, relative to the WGS84 ellipsoid. The
          positive value signifies the direction, above sea level. The negative
          value signifies the direction, below sea level. Range is from:
          5,000.000 meters below sea level (-5,000,000) to 25,000.000 meters
          above sea level (25,000,000). {{param}} is not valid until
          {{param|GotFix}} is {{true}}. If the parameter has never been set
          before, the value 0 is reported. The value SHOULD be maintained over
          a reboot.
        </description>
        <syntax>
          <int>
            <range minInclusive="-5000000" maxInclusive="25000000"/>
            <units value="millimeters"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="LastFixTime" access="readOnly" activeNotify="canDeny">
        <description>
          Represents the date and time when the last GPS Fix was acquired. The
          Unknown Time value defined in {{bibref|TR-106a4|Section 3.2}} is used
          when {{param|GotFix}} is {{false}}. This applies too after a reboot
          of the device until a valid location is determined and
          {{param|GotFix}} transsitions to {{true}}.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="LastFixDuration" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of {{units}} of continuous GPS fix time. After a reboot this
          value is reset to 0.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="FirstFixTimeout" access="readWrite">
        <description>
          Number of {{units}} to wait for first GPS fix before declaring a GPS
          fault. A value of -1 means that there is no timeout and no fault
          logging.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="seconds"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="SatellitesTracked" access="readOnly"
          activeNotify="canDeny">
        <description>
          The number of satellites the receiver is tracking.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SatelliteTrackingInterval" access="readWrite">
        <description>
          The interval in {{units}} at which the GPS tracking information gets
          reported.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="60" maxInclusive="3600"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ReceiverStatus" access="readOnly"
          activeNotify="canDeny">
        <description>
          The output of the GPS receiver's status.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LocationType" access="readOnly" activeNotify="canDeny">
        <description>
          Indicates whether the {{param|Latitude}}, {{param|Longitude}}, and
          {{param|Elevation}} values are determined via a GPS Fix (where the
          value of this parameter would be {{enum|Real}}) or via some other
          means (where the value of this parameter would be
          {{enum|Reference}}).
        </description>
        <syntax>
          <string>
            <enumeration value="Real"/>
            <enumeration value="Reference"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LockTimeOutDuration" access="readWrite">
        <description>
          The timer duration, in {{units}}, for which the device waits for GPS
          to acquire lock.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="120" maxInclusive="86400"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.GPS.AGPSServerConfig." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object contains parameters for the configuration of the Assisted
        Global Positioning System (A-GPS) server. See also
        {{bibref|3GPP-TS.25.171|Section 3.2}}
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the {{object}} entry.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ServerURL" access="readWrite">
        <description>
          A-GPS server host name or IP address.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ServerPort" access="readWrite">
        <description>
          The port to use when communicating to the A-GPS Server.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Username" access="readWrite">
        <description>
          Username to be used by the device to authenticate with the A-GPS
          server. This string is set to {{empty}} if no authentication is used.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Password" access="readWrite">
        <description>
          Password to be used by the device to authenticate with the A-GPS
          server. This string is set to {{empty}} if no authentication is used.
        </description>
        <syntax hidden="true">
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ReferenceLatitude" access="readWrite">
        <description>
          This parameter specifies the reference latitude for an A-GPS request
          position in degrees, multiplied by 1 million. The positive value
          signifies the direction, north of the equator. The negative value
          signifies the direction, south of the equator. Range is from:
          90d00.00' South (-90,000,000) to 90d00.00' North (90,000,000).
          Example: A latitude of 13d19.43' N would be represented as
          13,323,833, derived as (13*1,000,000)+((19.43*1,000,000)/60).
          Latitude of 50d00.00' S would be represented as value -50,000,000.
        </description>
        <syntax>
          <int>
            <range minInclusive="-90000000" maxInclusive="90000000"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="ReferenceLongitude" access="readWrite">
        <description>
          This parameter specifies the reference longitude for an A-GPS request
          position in degrees, multiplied by 1 million. The positive value
          signifies the direction, east of the prime meridian. The negative
          value signifies the direction, west of the prime meridian. Range is
          from: 180d00.00' West (-180,000,000) to 180d00.00' East
          (180,000,000). Example: A longitude of 13d19.43' E would be
          represented as 13,323,833, derived as
          (13*1,000,000)+((19.43*1,000,000)/60). A longitude of 50d00'00'' W
          would be represented as value -50,000,000.
        </description>
        <syntax>
          <int>
            <range minInclusive="-180000000" maxInclusive="180000000"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="ServerInUse" access="readOnly">
        <description>
          The value is {{true}} if the device has successfully contacted and
          received A-GPS info from the A-GPS server, otherwise the value is
          {{false}}. After a reboot the value is {{false}} until the server
          could be contacted again.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.Tunnel." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object contains parameters relating to Tunneling.
      </description>

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

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

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

      <parameter name="MaxVirtualInterfaces" access="readOnly">
        <description>
          The maximum number of virtual interfaces.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

      <parameter name="UseForCWMP" access="readWrite">
        <description>
          If the SecGW parameters are configured then this parameter determines
          whether the CWMP traffic will be sent across the IPsec tunnel(s) or
          outside of the IPsec tunnel(s). If {{false}} then the CWMP traffic
          will be sent outside of the IPsec tunnel(s). If {{true}} then the
          CWMP traffic will be sent across the IPsec tunnel(s).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MaxChildSAPerIKE" access="readOnly">
        <description>
          Indicates the maximum number of child SAs per IKE session that the
          device is capable of supporting.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaxIKESessions" access="readOnly">
        <description>
          Indicates the maximum number of IKE sessions the device is capable of
          supporting at any given time.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.Tunnel.CryptoProfile.{i}." access="readWrite"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="CryptoProfileNumberOfEntries"
        enableParameter="Enable">
      <description>
        This object contains parameters relating to IKEv2 and IPsec crypto
        profiles, which are essentially a subset of the typical IPsec SPD.
        {{bibref|RFC4301}}. For Cdma2000 devices, see also
        {{bibref|3GPP2-S.S0132}}.
      </description>
      <uniqueKey>
        <parameter ref="AuthMethod"/>
        <parameter ref="IKEEncrypt"/>
        <parameter ref="IKEPRF"/>
        <parameter ref="IKEIntegrity"/>
        <parameter ref="IKEDH"/>
        <parameter ref="ESPEncrypt"/>
        <parameter ref="ESPIntegrity"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

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

      <parameter name="AuthMethod" access="readWrite">
        <description>
          Specifies the Security mechanism and set of credentials used by the
          device to authenticate itself (either an instance of the
          ''.Security.Certificate.'' object defined in {{bibref|TR-157a5}} or
          an instance of the
          ''.Services.FAPService.{i}.Transport.Security.Secret.'' object
          defined in {{bibref|TR-196i2}}). {{reference}} If the value is an
          {{empty}}, the device chooses the authentication method based on
          local policy. In order to configure the device for both device and
          hosting-party authentication, the object is populated with an enabled
          instance of the ''.Security.Certificate.''. object.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row"/>
            <size maxLength="256"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="MaxChildSA" access="readWrite">
        <description>
          Controls the maximum number of child SAs that can be negotiated by a
          single IKE session.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="2" maxInclusive="2"/>
            <range minInclusive="4" maxInclusive="4"/>
            <range minInclusive="6" maxInclusive="6"/>
            <range minInclusive="8" maxInclusive="8"/>
            <range minInclusive="10" maxInclusive="10"/>
          </unsignedInt>
          <default type="object" value="2"/>
        </syntax>
      </parameter>

      <parameter name="IKEEncrypt" access="readWrite">
        <description>
          IKEv2 encryption algorithm. {{bibref|RFC4307}} For CDMA2000 devices,
          see also {{bibref|3GPP2-S.S0132}}.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="3DES-CBC"/>
            <enumeration value="AES-CBC"/>
          </string>
          <default type="object" value="AES-CBC"/>
        </syntax>
      </parameter>

      <parameter name="IKEPRF" access="readWrite">
        <description>
          IKEv2 pseudo-random function. {{bibref|RFC4307}} For CDMA2000
          devices, see also {{bibref|3GPP2-S.S0132}}.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="HMAC-SHA1"/>
            <enumeration value="AES-XCBC-PRF-128"/>
          </string>
          <default type="object" value="HMAC-SHA1"/>
        </syntax>
      </parameter>

      <parameter name="IKEIntegrity" access="readWrite">
        <description>
          IKEv2 integrity function. {{bibref|RFC4307}} For CDMA2000 devices,
          see also {{bibref|3GPP2-S.S0132}}.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="HMAC-SHA1-96"/>
            <enumeration value="AES-XCBC-MAC-96"/>
          </string>
          <default type="object" value="HMAC-SHA1-96"/>
        </syntax>
      </parameter>

      <parameter name="IKEDH" access="readWrite">
        <description>
          IKEv2 pseudo-random function. {{bibref|RFC4307}} For CDMA2000
          devices, see also {{bibref|3GPP2-S.S0132}}.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="1024"/>
            <enumeration value="2048"/>
          </string>
          <default type="object" value="2048"/>
        </syntax>
      </parameter>

      <parameter name="ESPEncrypt" access="readWrite">
        <description>
          IPsec encryption algorithm. {{bibref|RFC4835|Section 3.1.1}} For
          CDMA2000 devices, see also {{bibref|3GPP2-S.S0132}}.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="3DES-CBC"/>
            <enumeration value="AES-CBC"/>
            <enumeration value="Null"/>
          </string>
          <default type="object" value="AES-CBC"/>
        </syntax>
      </parameter>

      <parameter name="ESPIntegrity" access="readWrite">
        <description>
          IPsec integrity function. {{bibref|RFC4835|Section 3.1.1}} For
          CDMA2000 devices, see also {{bibref|3GPP2-S.S0132}}.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="HMAC-SHA1-96"/>
            <enumeration value="AES-XCBC-MAC-96"/>
          </string>
          <default type="object" value="HMAC-SHA1-96"/>
        </syntax>
      </parameter>

      <parameter name="IPsecWindowSize" access="readWrite">
        <description>
          The size of the Anti-Replay Window. If 0 Sequence Number Verification
          is disabled. For UMTS devices, see {{bibref|3GPP-TS.32.582}} and
          {{bibref|3GPP-TS.32.584}}. For LTE devices, see
          {{bibref|3GPP-TS.32.592}}. For CDMA2000 devices, see
          {{bibref|3GPP2-S.S0132}}.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="IKERekeyLifetime" access="readWrite">
        <description>
          IKEv2 SA rekey timeout in {{units}}. For UMTS devices, see
          {{bibref|3GPP-TS.32.582}} and {{bibref|3GPP-TS.32.584}}. For LTE
          devices, see {{bibref|3GPP-TS.32.592}}. For CDMA2000 devices, see
          {{bibref|3GPP2-S.S0132}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="IPsecRekeyLifetimeByte" access="readWrite">
        <description>
          IPsec SA rekey timeout in {{units}}. For UMTS devices, see
          {{bibref|3GPP-TS.32.582}} and {{bibref|3GPP-TS.32.584}}. For LTE
          devices, see {{bibref|3GPP-TS.32.592}}. For CDMA2000 devices, see
          {{bibref|3GPP2-S.S0132}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Kilobytes"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="IPsecRekeyLifetimeTime" access="readWrite">
        <description>
          IPsec SA rekey timeout in {{units}}. For UMTS devices, see
          {{bibref|3GPP-TS.32.582}} and {{bibref|3GPP-TS.32.584}}. For LTE
          devices, see {{bibref|3GPP-TS.32.592}}. For CDMA2000 devices, see
          {{bibref|3GPP2-S.S0132}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DPDTimer" access="readWrite">
        <description>
          DPD timeout in {{units}}. For UMTS devices, see
          {{bibref|3GPP-TS.32.582}} and {{bibref|3GPP-TS.32.584}}. For LTE
          devices, see {{bibref|3GPP-TS.32.592}}. For CDMA2000 devices, see
          {{bibref|3GPP2-S.S0132}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="300"/>
        </syntax>
      </parameter>

      <parameter name="NATTKeepaliveTimer" access="readWrite">
        <description>
          NAT-T keepalive timeout in {{units}}. For UMTS devices, see
          {{bibref|3GPP-TS.32.582}} and {{bibref|3GPP-TS.32.584}}. For LTE
          devices, see {{bibref|3GPP-TS.32.592}}. For CDMA2000 devices, see
          {{bibref|3GPP2-S.S0132}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="180"/>
        </syntax>
      </parameter>

      <parameter name="SecMaxFragSize" access="readWrite">
        <description>
          Maximum fragment size, in {{units}}, from device before Encryption.
          For CDMA2000 devices, see also {{bibref|3GPP2-S.S0132}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="256" maxInclusive="1400"/>
            <units value="bytes"/>
          </unsignedInt>
          <default type="object" value="1200"/>
        </syntax>
      </parameter>

      <parameter name="SecDFBit" access="readWrite">
        <description>
          Indicates if the 'Do Not Fragment' bit needs to be turned on/off. For
          CDMA2000 devices, see also {{bibref|3GPP2-S.S0132}}.
        </description>
        <syntax>
          <string>
            <enumeration value="On"/>
            <enumeration value="Off"/>
          </string>
          <default type="object" value="Off"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.Tunnel.IKESA.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="IKESANumberOfEntries">
      <description>
        IKE IPsec Security Association Table. This Table is a member of the
        IPsec Security Association Database (SAD). {{bibref|RFC4301}}.
      </description>
      <uniqueKey>
        <parameter ref="IPAddress"/>
        <parameter ref="SubnetMask"/>
      </uniqueKey>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this IKE SA entry.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Active"/>
            <enumeration value="Completed"/>
            <enumeration value="Progressing"/>
            <enumeration value="Error" optional="true">
              <description>
                This value MAY be used by the CPE to indicate a locally defined
                error condition.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="PeerAddress" access="readOnly">
        <description>
          The IP address of the peer SecGW.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="CreationTime" access="readOnly">
        <description>
          The time that the current IKE SA was set up.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="IPAddress" access="readOnly"
          activeNotify="forceDefaultEnabled">
        <description>
          The current IP address assigned to this interface by IKEv2.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="SubnetMask" access="readOnly">
        <description>
          The current subnet mask assigned to this interface by IKEv2.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="DNSServers" access="readOnly">
        <description>
          {{list}} Each item is an IP Address of a DNS server for this
          interface assigned to this interface by IKEv2.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="DHCPServers" access="readOnly">
        <description>
          {{list}} Each item is an IP address of a DHCP server for this
          interface. A non empty list instructs the CPE to send any internal
          DHCP request to the address contained within this parameter.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="IntegrityErrors" access="readOnly"
          activeNotify="canDeny">
        <description>
          The number of inbound packets discarded by the IKE SA due to
          Integrity checking errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="OtherErrors" access="readOnly" activeNotify="canDeny">
        <description>
          The number of inbound packets discarded by the IKE SA due to other
          errors, such as anti-replay errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AuthErrors" access="readOnly" activeNotify="canDeny">
        <description>
          The number of inbound packets discarded by the IKE SA due to
          authentication errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.Tunnel.ChildSA.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="ChildSANumberOfEntries">
      <description>
        Child IPsec Security Association Table. This Table is a member of the
        IPsec Security Association Database (SAD). {{bibref|RFC4301}}.
      </description>
      <uniqueKey>
        <parameter ref="SPI"/>
      </uniqueKey>

      <parameter name="ParentID" access="readOnly">
        <description>
          {{reference}}
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.IKESA." targetType="row"/>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SPI" access="readOnly">
        <description>
          SPI value of the Child SA.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DirectionOutbound" access="readOnly">
        <description>
          Traffic Direction. If {{true}} this Child SA refers to outbound
          traffic. If {{false}} this Child SA refers to inbound traffic.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="CreationTime" access="readOnly">
        <description>
          The time that the current Child SA was set up.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="Traffic" access="readOnly">
        <description>
          The measured traffic in {{units}} transferred by the Child SA.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bytes"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="IntegrityErrors" access="readOnly"
          activeNotify="canDeny">
        <description>
          The number of inbound {{units}} discarded by the Child SA due to
          integrity checking errors.
        </description>
        <syntax>
          <unsignedInt>
            <units value="packets"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ReplayErrors" access="readOnly" activeNotify="canDeny">
        <description>
          The number of inbound {{units}} discarded by the Child SA due to
          anti-replay errors.
        </description>
        <syntax>
          <unsignedInt>
            <units value="packets"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.Tunnel.VirtualInterface.{i}." access="readWrite"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="VirtualInterfaceNumberOfEntries"
        enableParameter="Enable">
      <description>
        Virtual Interfaces used for associating the tunnel (ephemeral) childSA
        pairs with QoS Classification and Queue tables as defined in
        {{bibref|TR-098a2}}
        (InternetGatewayDevice.QueueManagement.Classification.{i}. and
        InternetGatewayDevice.QueueManagement.Queue.{i}.) or
        {{bibref|TR-181i2}} (Device.QoS.Classification.{i}. and
        Device.QoS.Queue.{i}.).
      </description>
      <uniqueKey>
        <parameter ref="CryptoProfile"/>
        <parameter ref="DSCPMarkPolicy"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

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

      <parameter name="CryptoProfile" access="readWrite">
        <description>
          {{reference}} If multiple instances of VirtualInterface point to the
          same CryptoProfile instance, the associated
          {{param|#.CryptoProfile.{i}.MaxChildSA}} determines whether a new IKE
          session will be created (dynamically) to negotiate the child SA(s)
          for each of the virtual interfaces; otherwise, they are negotiated
          through the same IKE session.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row"
                targetParent="#.CryptoProfile."/>
            <size maxLength="256"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DSCPMarkPolicy" access="readWrite">
        <description>
          DSCP to mark the outer IP header for traffic that is associated with
          this virtual interface. A value of -1 indicates copy from the
          incoming packet. A value of -2 indicates automatic marking of DSCP as
          defined for the UMTS QoS class {{bibref|3GPP-TS.23.107}} or CDMA2000
          Subscriber QoS profile {{bibref|3GPP2-X.S0011}}. De-tunneled packets
          are never re-marked.
        </description>
        <syntax>
          <int>
            <range minInclusive="-2"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.PerfMgmt." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object contains parameters relating to Performance Management in a
        Femto-related environment.
      </description>

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

    <object name="Device.FAP.PerfMgmt.Config.{i}." access="readWrite"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="ConfigNumberOfEntries" enableParameter="Enable">
      <description>
        This object contains parameters relating to File Management
        configuration for uploading of Performance Files to a designated File
        Server. Each table entry can be referenced by zero or more
        radio-specific objects contained in the FAPService instances. The
        periodic upload will upload data for all of the radio-specific objects
        that reference it.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="true">
        <parameter ref="URL"/>
        <parameter ref="PeriodicUploadInterval"/>
        <parameter ref="PeriodicUploadTime"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this entry. If this entry is disabled then its
          periodic uploads are not performed.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

      <parameter name="URL" access="readWrite">
        <description>
          URL specifying the destination file location. HTTP and HTTPS
          transports MUST be supported. Other transports MAY be supported. This
          argument specifies only the destination file location, and does not
          indicate in any way the name or location of the local file to be
          uploaded.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Username" access="readWrite">
        <description>
          Username to be used by the device to authenticate with the file
          server. This string is set to {{empty}} if no authentication is used.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Password" access="readWrite">
        <description>
          Password to be used by the device to authenticate with the file
          server. This string is set to {{empty}} if no authentication is used.
        </description>
        <syntax hidden="true">
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PeriodicUploadInterval" access="readWrite">
        <description>
          The duration in {{units}} of the interval for which the device MUST
          create a Performance File and attempt to upload the file to
          {{param|URL}} if {{param|Enable}} is {{true}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PeriodicUploadTime" access="readWrite">
        <description>
          An absolute time reference in UTC to determine when the device will
          initiate the periodic file upload. Each file upload MUST occur at
          this reference time plus or minus an integer multiple of the
          {{param|PeriodicUploadInterval}}. {{param}} is used only to set the
          "phase" of the periodic uploads. The actual value of {{param}} can be
          arbitrarily far into the past or future. For example, if
          {{param|PeriodicUploadInterval}} is 86400 (a day) and if {{param}} is
          set to UTC midnight on some day (in the past, present, or future)
          then periodic file uploads 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 as defined in
          {{bibref|TR-106a4|Section 3.2}} indicates that no particular time
          reference is specified. That is, the device MAY locally choose the
          time reference, and is REQUIRED only to adhere to the specified
          {{param|PeriodicUploadInterval}}. If absolute time is not available
          to the device, its periodic file upload behavior MUST be the same as
          if the {{param}} parameter was set to the Unknown Time value.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object defines the data model for the following Femtozone APIs.

        * Femto Awareness

        * SMS

        * MMS

        * Terminal Location Femto Awareness, SMS, MMS, and Terminal Location
          APIs are defined in the Release 1 API Specifications of the Service
          SIG in the Femto Forum (non public document).
          {{bibref|TR-262|appendix I}} provides the "Theory of Operation" for
          the usage of this object.
      </description>

      <parameter name="Version" access="readOnly">
        <description>
          Version of Femto Application Platform running on this device
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable or disable the Femto ApplicationPlatform
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Current state of the Femto Application Platform.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled">
              <description>
                The Femto Application Platform is not available
              </description>
            </enumeration>
            <enumeration value="Enabled">
              <description>
                The Femto Application Platform is available
              </description>
            </enumeration>
            <enumeration value="Reset">
              <description>
                The FemtoApplicationPlatform is in the process of being reset
                and will transition to the {{enum|Disabled}} state when the
                reset operation is completed
              </description>
            </enumeration>
            <enumeration value="Initializing">
              <description>
                The FemtoApplicationPlatform is being initialized and will
                transition to the {{enum|Enabled}} state once the
                initialization is completed
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxNumberOfApplications" access="readOnly">
        <description>
          Determines how many Femtozone Applications can be supported by the
          Femto Application Platform simultaneously.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="CurrentNumberofApplications" access="readOnly">
        <description>
          Specifies how many Femtozone Applications are currently communicating
          with the Femto Application Platform.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Capabilities."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        This object contains parameters related to the capabilities of the
        Femtozone Application Platform and the Femtozone APIs.
      </description>

      <parameter name="PresenceApplicationSupport" access="readOnly">
        <description>
          Specifies whether the Femto Application Platform supports
          Presence-Based Femtozone Applications
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="FemtoAwarenessAPISupport" access="readOnly">
        <description>
          Specifies whether the Femto Awareness API is supported on this
          device.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SMSAPISupport" access="readOnly">
        <description>
          Specifies whether the SMS API is supported on this device.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SubscribeToNotificationsOfSMSSentToApplicationSupport"
          access="readOnly">
        <description>
          Specifies whether the SubscribeToNotificationsOfSMSSentToApplication
          functionality is supported by the FAP SMS API.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QuerySMSDeliveryStatusSupport" access="readOnly">
        <description>
          Specifies whether the QuerySMSDeliveryStatus functionality is
          supported by the FAP SMS API.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MMSAPISupport" access="readOnly">
        <description>
          Specifies whether the MMS API is supported on this device.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QueryMMSDeliveryStatusSupport" access="readOnly">
        <description>
          Specifies whether the QueryMMSDeliveryStatus functionality is
          supported by the FAP MMS API.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SubscribeToNotificationsOfMMSSentToApplicationSupport"
          access="readOnly">
        <description>
          Specifies whether the SubscribeToNotificationsOfMMSSentToApplication
          functionality is supported by the FAP MMS API.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TerminalLocationAPISupport" access="readOnly">
        <description>
          Specifies whether the Terminal Location API is supported on this
          device.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AuthenticationMethodsSupported" access="readOnly">
        <description>
          Specifies the supported methods that 3rd Party Applications can use
          to authenticate with the Femto Application Platform at
          initialization. Comma separated list of strings.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="Basic"/>
            <enumeration value="Digest"/>
            <enumeration value="DigitalSignature"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AccessLevelsSupported" access="readOnly">
        <description>
          Specifies the supported access levels that 3rd Party Applications can
          request when authenticating with the Femto Application Platform at
          initialization. This access level is with respect to resources within
          the Femto Application Platform only (not to be confused with Access
          Mode parameter in .FAPService.{i}.AccessMgmt).
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="Guest"/>
            <enumeration value="Standard"/>
            <enumeration value="Restricted"/>
            <enumeration value="Administrator"/>
            <enumeration value="Debug"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SendSMSTargetAddressType" access="readOnly">
        <description>
          Specifies the supported types of addresses SMSs can be sent to.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="TelUri"/>
            <enumeration value="AnonymousReference"/>
            <enumeration value="All"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SendMMSTargetAddressType" access="readOnly">
        <description>
          Specifies the supported types of addresses MMSs can be sent to.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="TelUri"/>
            <enumeration value="AnonymousReference"/>
            <enumeration value="All"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Control." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object contains parameters related to the operation of the
        Femtozone APIs.
      </description>

      <parameter name="AuthenticationMethod" access="readWrite">
        <description>
          Specifies how 3rd Party Applications have to authenticate against
          Femto APIs in order to use it. {{reference}} '''''Note:''''' The
          credentials are not part of the data model and have to be supplied
          externally.
        </description>
        <syntax>
          <string>
            <enumerationRef
                targetParam="#.Capabilities.AuthenticationMethodsSupported"/>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TunnelInst" access="readWrite">
        <description>
          This is the reference to the IPsec tunnel instance to be used by the
          Application Platform traffic. If InternetGatewayDevice:1
          {{bibref|TR-098}} or Device:1 {{bibref|TR-181i1}}) is used as root
          data model the {{param}} MUST point to a row in the
          ''.FAP.Tunnel.IKESA.{i}.'' table. If the root data model used is
          Device:2 {{bibref|TR-181i2}} than the {{param}} MUST point to an
          tunnel instance defined in this data model. If the referenced object
          is deleted, the parameter value MUST be set to an empty string.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Control.FemtoAwareness."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        This object contains parameters related to the Femto Awareness API.
      </description>

      <parameter name="APIEnable" access="readWrite">
        <description>
          Enable or disable FemtoAwareness API exposure on FAP
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QueueEnable" access="readWrite">
        <description>
          Enable or disable Request queueing for the API
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Queueing " access="readWrite">
        <description>
          Determines how FAP handles simultaneous requests from different
          Applications to Femto Awareness API.
        </description>
        <syntax>
          <string>
            <enumeration value="FiFo"/>
            <enumeration value="Priority"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxAPIUsersNumber" access="readWrite">
        <description>
          Determines the Max Number of different Applications that can send
          Requests to Femto Awareness API.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="FemtozoneID" access="readWrite">
        <description>
          Specifies Identifier of the Femtozone.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NotificationsUserIdentifierMSISDN" access="readWrite">
        <description>
          Specifies whether the Mobile Station International Subscriber
          Directory Number (MSISDN) has to be used as UserIdentifier in Femto
          Awareness Notifications. A value of {{true}} means that the MSISDN is
          send as user identifier, a value of {{false}} means that an anonymous
          reference is used.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SubscribeToNotificationsResponseCallbackData"
          access="readWrite">
        <description>
          Specifies whether the OPTIONAL Argument "Callback Data" has to be
          used in Responses to Requests to "Subscribe To Femto Awareness
          Notifications".
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QueryFemtocellResponseTimezone" access="readWrite">
        <description>
          Specifies whether the OPTIONAL Argument "Timezone" has to be used in
          Responses to Requests to "Query Femtocell Status".
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Control.SMS."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        This object contains parameters related to the SMS API.
      </description>

      <parameter name="APIEnable" access="readWrite">
        <description>
          Enable or disable SMS API exposure on FAP
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QueueEnable" access="readWrite">
        <description>
          Enable or disable Request queueing for the API
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Queueing " access="readWrite">
        <description>
          Determines how FAP handles simultaneous requests from different
          Applications to SMS API.
        </description>
        <syntax>
          <string>
            <enumeration value="FiFo"/>
            <enumeration value="Priority"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxAPIUsersNumber" access="readWrite">
        <description>
          Determines the Max Number of different Applications that can send
          Requests to SMS API.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MinSendSMSTimeInterval" access="readWrite">
        <description>
          Determines the Minimum Time Interval in {{units}} between two
          consecutive Send SMS Requests by the same Application.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
            <range minInclusive="0" maxInclusive="3599"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="EnableQuerySMSDeliveryStatus" access="readWrite">
        <description>
          Enable or disable "QuerySMSDeliveryStatus" Operation on SMS API. When
          disabled, QuerySMSDeliveryStatus Requests to SMS API are ignored.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter
          name="EnableSubscribeToNotificationsOfMessageSentToApplication"
          access="readWrite">
        <description>
          Enable or disable
          "SubscribeToNotificationsOfMessageSentToApplication" Operation on SMS
          API. When disabled, SubscribeTo
          NotificationsOfMessageSentToApplication Requests to SMS API are
          ignored.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Control.MMS."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        This object contains parameters related to the MMS API.
      </description>

      <parameter name="APIEnable" access="readWrite">
        <description>
          Enable or disable MMS API exposure on FAP
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QueueEnable" access="readWrite">
        <description>
          Enable or disable Request queueing for the API
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Queueing " access="readWrite">
        <description>
          Determines how FAP handles simultaneous requests from different
          Applications to MMS API.
        </description>
        <syntax>
          <string>
            <enumeration value="FiFo"/>
            <enumeration value="Priority"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxAPIUsersNumber" access="readWrite">
        <description>
          Determines the Max Number of different Applications that can send
          Requests to MMS API.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MinSendMMSTimeInterval" access="readWrite">
        <description>
          Determines the Minimum Time Interval in {{units}} between two
          consecutive Send MMS Requests by the same Application.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
            <range minInclusive="0" maxInclusive="3599"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="EnableQueryMMSDeliveryStatus" access="readWrite">
        <description>
          Enable or disable "QuerySMSDeliveryStatus" Operation on MMS API. When
          disabled, QuerySMSDeliveryStatus Requests to MMS API are ignored.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter
          name="EnableSubscribeToNotificationsOfMessageSentToApplication"
          access="readWrite">
        <description>
          Enable or disable "SubscribeTo
          NotificationsOfMessageSentToApplication" Operation on MMS API. When
          disabled, SubscribeTo NotificationsOfMessageSentToApplication
          Requests to MMS API are ignored.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Control.TerminalLocation."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        This object contains parameters related to the TerminalLocation API.
      </description>

      <parameter name="APIEnable" access="readWrite">
        <description>
          Enable or disable TerminalLocation API exposure on FAP
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QueueEnable" access="readWrite">
        <description>
          Enable or disable Request queueing for the API
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Queueing " access="readWrite">
        <description>
          Determines how FAP handles simultaneous requests from different
          Applications to TerminalLocation API.
        </description>
        <syntax>
          <string>
            <enumeration value="FiFo"/>
            <enumeration value="Priority"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxAPIUsersNumber" access="readWrite">
        <description>
          Determines the Max Number of different Applications that can send
          Requests to TerminalLocation API.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QueryMobileLocationResponseAddress" access="readWrite">
        <description>
          Specifies Terminal Address Format to be used in QueryMobileLocation
          Responses.
        </description>
        <syntax>
          <string>
            <enumeration value="TelUri"/>
            <enumeration value="AnonymousReference"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="QueryMobileLocationResponseLongitudeLatitude"
          access="readWrite">
        <description>
          Include or exclude FAP Longitude and Latitude arguments in Responses
          to QueryMobileLocation Requests.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QueryMobileLocationResponseAltitude" access="readWrite">
        <description>
          Include or exclude FAP Altitude argument in Responses to
          QueryMobileLocation Requests .
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="QueryMobileLocationResponseTimestamp"
          access="readWrite">
        <description>
          Specifies Response Timestamp in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
            <range minInclusive="0" maxInclusive="86399"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Monitoring."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        This object contains parameters related to the monitoring of the
        Femtozone Application Platform and the Femtozone APIs.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables and disables this entry.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MonitoringInterval" access="readWrite">
        <description>
          Specifies the interval in {{units}} used to collect the monitoring
          measurements.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="AuthenticationRequestsReceived" access="readOnly">
        <description>
          Specifies the total number of authentication requests received by the
          Femto Application Platform. The counter will be reset whenever the
          device reboots or the {{param|Enable}} parameter is set to {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AuthenticationRequestsRejected" access="readOnly">
        <description>
          Specifies the number of authentication requests received by the Femto
          Application Platform that were rejected. The counter will be reset
          whenever the device reboots or the {{param|Enable}} parameter is set
          to {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Monitoring.FemtoAwareness."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        This object contains parameters related to the Monitoring of the
        FemtoAwareness API.
      </description>

      <parameter name="APIAvailable" access="readOnly">
        <description>
          Specifies whether the FemtoAwareness API is currently available on
          this device (the API could be disabled or could have exhausted its
          resources)
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="APIUsers" access="readOnly">
        <description>
          Specifies the current number of Applications using the Femto
          Awareness API.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QueueState" access="readOnly">
        <description>
          Specifies the state of the Femto Awareness API Queue.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Ready"/>
            <enumeration value="Flushed"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="QueueNum" access="readOnly">
        <description>
          Specifies the current number of requests waiting in the Femto
          Awareness API Queue.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QueueReceived" access="readOnly">
        <description>
          Specifies the number of requests in the Femto Awareness API Queue
          that have been received. The counter will be reset whenever the
          device reboots or the {{param|#.Enable}} parameter is set to
          {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QueueDiscarded" access="readOnly">
        <description>
          Specifies the number of requests in the Femto Awareness API Queue
          that have been discarded. The counter will be reset whenever the
          device reboots or the {{param|#.Enable}} parameter is set to
          {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Monitoring.SMS."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        This object contains parameters related to the Monitoring of the SMS
        API.
      </description>

      <parameter name="APIAvailable" access="readOnly">
        <description>
          Specifies whether the SMS API is currently available on this device
          (the API could be disabled or could have exhausted its resources)..
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="APIUsers" access="readOnly">
        <description>
          Specifies the current number of Applications using the SMS API.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QueueState" access="readOnly">
        <description>
          Specifies the state of the SMS API Queue.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Ready"/>
            <enumeration value="Flushed"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="QueueNum" access="readOnly">
        <description>
          Specifies the current number of requests waiting in the SMS API
          Queue.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QueueReceived" access="readOnly">
        <description>
          Specifies the number of requests in the SMS API Queue that have been
          received. The counter will be reset whenever the device reboots or
          the {{param|#.Enable}} parameter is set to {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QueueDiscarded" access="readOnly">
        <description>
          Specifies the number of requests in the SMS API Queue that have been
          discarded. The counter will be reset whenever the device reboots or
          the {{param|#.Enable}} parameter is set to {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Monitoring.MMS."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        This object contains parameters related to the Monitoring of the MMS
        API.
      </description>

      <parameter name="APIAvailable" access="readOnly">
        <description>
          Specifies whether the MMS API is currently available on this device
          (the API could be disabled or could have exhausted its resources)..
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="APIUsers" access="readOnly">
        <description>
          Specifies the current number of Applications using the MMS API.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QueueState" access="readOnly">
        <description>
          Specifies the state of the MMS API Queue.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Ready"/>
            <enumeration value="Flushed"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="QueueNum" access="readOnly">
        <description>
          Specifies the current number of requests waiting in the MMS API
          Queue.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QueueReceived" access="readOnly">
        <description>
          Specifies the number of requests in the MMS API Queue that have been
          received. The counter will be reset whenever the device reboots or
          the {{param|#.Enable}} parameter is set to {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QueueDiscarded" access="readOnly">
        <description>
          Specifies the number of requests in the MMS API Queue that have been
          discarded. The counter will be reset whenever the device reboots or
          the {{param|#.Enable}} parameter is set to {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.FAP.ApplicationPlatform.Monitoring.TerminalLocation."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        This object contains parameters related to the Monitoring of the
        TerminalLocation API.
      </description>

      <parameter name="APIAvailable" access="readOnly">
        <description>
          Specifies whether the TerminalLocation API is currently available on
          this device (the API could be disabled or could have exhausted its
          resources)..
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="APIUsers" access="readOnly">
        <description>
          Specifies the current number of Applications using the Terminal
          Location API.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QueueState" access="readOnly">
        <description>
          Specifies the state of the Terminal Location API Queue.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Ready"/>
            <enumeration value="Flushed"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="QueueNum" access="readOnly">
        <description>
          Specifies the current number of requests waiting in the Terminal
          Location API Queue.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QueueReceived" access="readOnly">
        <description>
          Specifies the number of requests in the Terminal Location API Queue
          that have been received. The counter will be reset whenever the
          device reboots or the {{param|#.Enable}} parameter is set to
          {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QueueDiscarded" access="readOnly">
        <description>
          Specifies the number of requests in the Terminal Location API Queue
          that have been discarded. The counter will be reset whenever the
          device reboots or the {{param|#.Enable}} parameter is set to
          {{true}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.BulkData." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        Bulk Data collection utilizes the IPDR solution to collect data from
        devices based on a service specification described in
        {{bibref|TR-232}}. Bulk Data Collection Profiles are measured over a
        reporting interval (which can be aligned with absolute time) and are
        made available to the collection server. This object provides bulk data
        collection capabilities and global collection settings that affect the
        entire device.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables all collection profiles. If {{false}}, bulk data
          will not be collected or reported.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Indicates the status of the Bulk Data Collection mechanism.
        </description>
        <syntax>
          <string>
            <enumeration value="Enabled">
              <description>
                Bulk Data Collection is enabled and working as intended.
              </description>
            </enumeration>
            <enumeration value="Disabled">
              <description>Bulk Data Collection is disabled.</description>
            </enumeration>
            <enumeration value="Error" optional="true">
              <description>
                Bulk Data Collection is enabled, but there is an error
                condition preventing the successful collection of bulk data.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="MinReportingInterval" access="readOnly">
        <description>
          Minimum reporting interval in {{units}} that the CPE is capable of
          supporting. A value of 0 indicates no minimum reporting interval.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Protocols" access="readOnly">
        <description>
          Represents the IPDR Protocols that this device is capable of
          supporting.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="Streaming">
              <description>
                IPDR Streaming Protocol {{bibref|IPDR-SP}}
              </description>
            </enumeration>
            <enumeration value="File">
              <description>
                IPDR File Transfer Protocol {{bibref|IPDR-FTP}}
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="EncodingTypes" access="readOnly">
        <description>
          Represents the IPDR Encoding Types that this device is capable of
          supporting.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="XML">
              <description>{{bibref|IPDR-XML}}</description>
            </enumeration>
            <enumeration value="XDR">
              <description>{{bibref|IPDR-XDR}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxNumberOfProfiles" access="readOnly">
        <description>
          The maximum number of profiles that can exist at any given time.
          Specifically, the maximum number of {{object|Profile.{i}.}} instances
          that the ACS can create. If the value of this parameter is -1, then
          it means that the CPE doesn't have a limit to the number of profiles
          that can exist.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="MaxNumberOfParameterReferences" access="readOnly">
        <description>
          The maximum number of parameters that can be referenced via the bulk
          data collection mechanism. Specifically, the maximum number of
          parameters that can be referenced via
          {{param|Profile.{i}.Parameter.{i}.Reference}} across all Profile and
          Parameter instances (including the expansion of partial paths within
          the Reference parameter). If the value of this parameter is -1, then
          it means that the CPE doesn't have a limit to the number of parameter
          that can be referenced via the bulk data collection mechanism.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
        </syntax>
      </parameter>

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

    <object name="Device.BulkData.Profile.{i}." access="readWrite"
        numEntriesParameter="ProfileNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        A set of Bulk Data Collection profiles. Each profile represents a bulk
        data report, including its own timing configuration, communications
        configuration, and set of parameters. This allows the ACS to configure
        multiple reports to be generated at different times for different sets
        of data.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this specific bulk data profile. If {{false}},
          this profile will not be collected or reported.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

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

      <parameter name="Protocol" access="readWrite">
        <description>
          The IPDR Protocol being used for this collection profile.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="#.Protocols"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EncodingType" access="readWrite">
        <description>
          The IPDR Encoding Type being used for this collection profile.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="#.EncodingTypes"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ReportingInterval" access="readWrite">
        <description>
          The reporting interval in {{units}}. Each report is generated based
          on this interval and {{param|TimeReference}}. The CPE MAY reject a
          request to set {{param}} to less than
          {{param|#.MinReportingInterval}}. Reporting intervals MUST begin
          every {{param}} {{units}}. If {{param}} is changed while collection
          is enabled, the first reporting interval begins immediately. For
          example, if {{param}} is 86400 (a day) and if {{param|TimeReference}}
          is set to UTC midnight on some day (in the past, present, or future)
          then the CPE will generate (and transmit, if the {{param|Protocol}}
          parameter is set to {{enum|Streaming|#.Protocols}}) its report at
          midnight every 24 hours.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="86400"/>
        </syntax>
      </parameter>

      <parameter name="TimeReference" access="readWrite">
        <description>
          An absolute time reference in UTC to determine when will be
          transmitted. Each reporting interval MUST complete at this reference
          time plus or minus an integer multiple of
          {{param|ReportingInterval}}, unless unable to due to higher
          prioritized operations. {{param}} is used only to set the "phase" of
          the reporting intervals. The actual value of {{param}} can be
          arbitrarily far into the past or future. If {{param}} is changed
          while collection of bulk data is enabled, the first reporting
          interval begins immediately. The Unknown Time value as 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 reporting intervals.
          If absolute time is not available to the CPE, its reporting interval
          behavior MUST be the same as if the {{param}} parameter was set to
          the Unknown Time value. For example, if {{param|ReportingInterval}}
          is 86400 (a day) and if {{param}} is set to UTC midnight on some day
          (in the past, present, or future) then the CPE will generate (and
          transmit, if in a "ITPush" mode) its report at midnight every 24
          hours. Note that, if {{param}} is set to a time other than the
          Unknown Time, the first reporting interval (which has to begin
          immediately) will almost certainly be shorter than
          {{param|ReportingInterval}}). This is why {{param}} is defined in
          terms of when reporting intervals complete rather than start.
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value="0001-01-01T00:00:00Z"/>
        </syntax>
      </parameter>

      <parameter name="StreamingHost" access="readWrite">
        <description>
          This is the host name or IP Address of the IPDR Collector to be used
          by the CPE to stream bulk data records if this collection profile is
          configured for the IPDR Streaming Protocol {{bibref|IPDR-SP}} (the
          {{param|Protocol}} parameter has a value of
          {{enum|Streaming|#.Protocols}}).
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="StreamingPort" access="readWrite">
        <description>
          This is the port number of the IPDR Collector to be used by the CPE
          to stream bulk data records if this collection profile is configured
          for the IPDR Streaming Protocol {{bibref|IPDR-SP}} (the
          {{param|Protocol}} parameter has a value of
          {{enum|Streaming|#.Protocols}}).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="4737">
            <description>
              This is the IANA default port for {{bibref|IPDR-SP}}
            </description>
          </default>
        </syntax>
      </parameter>

      <parameter name="StreamingSessionID" access="readWrite">
        <description>
          This is the unique identification of an IPDR Session to be used when
          this collection profile is configured for the IPDR Streaming Protocol
          {{bibref|IPDR-SP}} (the {{param|Protocol}} parameter has a value of
          {{enum|Streaming|#.Protocols}}). An ACS MUST NOT configure multiple
          IPDR Streaming Protocol collection profiles with the same {{param}}.
          Doing so MUST cause the CPE to fail the SetParameterValues. Within
          the IPDR Streaming Protocol specification the Session ID has a type
          of a single 'char', but we are restricting the range even further
          (ASCII values of '0' - '9' and 'A' - 'Z'.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="48" maxInclusive="57">
              <description>
                ASCII values of '0' - '9'
              </description>
            </range>
            <range minInclusive="65" maxInclusive="90">
              <description>
                ASCII values of 'A' - 'Z'
              </description>
            </range>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="FileTransferURL" access="readWrite">
        <description>
          This is the URL within the CPE that is used by an IPDR Collector to
          retrieve the IPDRDocs when this collection profile is configured for
          the IPDR File Transfer Protocol {{bibref|IPDR-FTP}} (the
          {{param|Protocol}} parameter has a value of
          {{enum|File|#.Protocols}}).
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="FileTransferUsername" access="readWrite">
        <description>
          Username used for authentication of the {{param|FileTransferURL}}.
          This is the {{param}} that the IPDR Collector uses to access the CPE
          when this collection profile is configured for the IPDR File Transfer
          Protocol {{bibref|IPDR-FTP}} (the {{param|Protocol}} parameter has a
          value of {{enum|File|#.Protocols}}).
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="FileTransferPassword" access="readWrite">
        <description>
          Password used for authentication of the {{param|FileTransferURL}}.
          This is the {{param}} that the IPDR Collector uses to access the CPE
          when this collection profile is configured for the IPDR File Transfer
          Protocol {{bibref|IPDR-FTP}} (the {{param|Protocol}} parameter has a
          value of {{enum|File|#.Protocols}}).
        </description>
        <syntax hidden="true">
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ControlFileFormat" access="readWrite">
        <description>
          If this collection profile is configured for the IPDR File Transfer
          Protocol {{bibref|IPDR-FTP}} (the {{param|Protocol}} parameter has a
          value of {{enum|File|#.Protocols}}) then the control file names will
          be of the following format:

          :
            &lt;ControlFilePrefix&gt;_&lt;ControlFilePolicy&gt;.&lt;ControlFileSuffix&gt;
            Where the following rules apply:

          * ControlFilePrefix MUST NOT contain an underscore '_' or any other
            character not suitable for a file name.

          * ControlFilePolicy MUST contain one or more 'N' characters, where
            the number of 'N' characters denotes the number of digits in the
            sequence number, including leading zeros as necessary to match the
            number of 'N' characters.

          * ControlFileSuffix is a file extension. For example,
            BulkData_NNNN.log where "BulkData" would be the prefix, "NNNN"
            would be the policy, and "log" would be the suffix. Files adhering
            to this file format would look like: BulkData_0000.log,
            BulkData_0001.log, etc.
        </description>
        <syntax>
          <string>
            <size maxLength="128"/>
          </string>
        </syntax>
      </parameter>

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

    <object name="Device.BulkData.Profile.{i}.Parameter.{i}."
        access="readWrite" numEntriesParameter="ParameterNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true">
      <description>
        Bulk data parameter table. Each entry in this table represents a
        parameter (or set of parameters if a partial path is provided) to be
        collected and reported.
      </description>

      <parameter name="Reference" access="readWrite">
        <description>
          Represents the parameter(s) that are part of this Bulk Data
          collection profile. In the case where a partial parameter path is
          specified all sub-objects and contained parameters will be part of
          the bulk data collected and reported. If the path name refers to an
          object then it MUST end with a '.'.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetType="any"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DNS." access="readOnly" minEntries="1" maxEntries="1">
      <description>
        Properties for Domain Name Service (DNS). It contains the Service
        Discovery (DNS-SD) objects.
      </description>
    </object>

    <object name="Device.DNS.SD." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object contains the DNS Service Discovery {{bibref|DNS-SD}} object
        and parameters necessary to discover services and their associated
        devices. Upon reboot the the contents of the service table are
        repopulated. When the DNS.SD service is disabled, the contents of the
        service table is implementation specific.
      </description>

      <parameter access="readWrite" name="Enable">
        <description>
          The parameter, when {{true}}, enables the discovery of DNS-SD
          services hosted by other devices.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

    <object name="Device.DNS.SD.Service.{i}." access="readOnly" minEntries="0"
        maxEntries="unbounded" numEntriesParameter="ServiceNumberOfEntries">
      <description>
        The {{object}} table contains discovered DNS-SD services. DNS.SD
        service information is provided in DNS RR SRV records
        {{bibref|RFC2782}}. The Service Instance Name {{bibref|DNS-SD|Section
        4.1 Structured Instance Names}} further specifies information about the
        service name (RFC2782 Service field) and domain name (RFC2782 Name
        field) in the form: Service Instance Name = &lt;InstanceName&gt; .
        &lt;Service&gt; . &lt;Domain&gt; &lt;Service&gt; =
        _&lt;ApplicationProtocol&gt; . _&lt;TransportProtocol&gt; RFC2782
        Service field will always be equal to &lt;InstanceName&gt;.
        &lt;Service&gt; RFC2782 Name field will always be equal to
        &lt;Domain&gt; For example, an SSH service might have:

        *{{param|InstanceName}} = "Secure Shell (SSH))"

        *{{param|ApplicationProtocol}} = "ssh"

        *{{param|TransportProtocol}} = "TCP"

        *{{param|Domain}} = "example.com"

        *{{param|Port}} = 22

        *{{param|Target}} = "ssh.example.com."
      </description>
      <uniqueKey functional="true">
        <parameter ref="InstanceName"/>
        <parameter ref="ApplicationProtocol"/>
        <parameter ref="TransportProtocol"/>
        <parameter ref="Domain"/>
      </uniqueKey>

      <parameter name="InstanceName" access="readOnly">
        <description>
          Human-readable instance name {{bibref|DNS-SD|Section 4.1.1 Instance
          Names}} (i.e. The "&lt;{{param}}&gt;" portion of the '"Service
          Instance Name'").
        </description>
        <syntax>
          <string>
            <size maxLength="63"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ApplicationProtocol" access="readOnly">
        <description>
          The Application Protocol, without the leading underscore, associated
          with the service (e.g., daap) as defined by the DNS-SD service
          {{bibref|DNS-SD|Section 7 Application Protocol Names}}.
        </description>
        <syntax>
          <string>
            <size maxLength="15"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TransportProtocol" access="readOnly">
        <description>
          The Transport Protocol associated with the service as defined by the
          DNS-SD service {{bibref|DNS-SD|Section 4.1.2 Service Names}}.
        </description>
        <syntax>
          <string>
            <enumeration value="TCP"/>
            <enumeration value="UDP"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Domain" access="readOnly">
        <description>
          The value extracted from the Name field of the DNS SRV record
          {{bibref|RFC2782}} which represents the fully qualified domain name
          (FQDN) associated with the service as defined by the DNS-SD service
          {{bibref|DNS-SD|Section 4.1.3 Domain Names}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Port" access="readOnly">
        <description>
          The value extracted from the Port field of the DNS SRV record
          {{bibref|RFC2782}} that is used to contact the service.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Target" access="readOnly">
        <description>
          The fully qualified domain name (FQDN) with the trailing dot "." of
          the target host implementing the service as in the DNS SRV record
          {{bibref|RFC2782}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of the discovered {{object}} at {{param|LastUpdate}} time.
          {{enum}} The ability to instantiate an inactive {{object}} is
          OPTIONAL. The time an inactive {{object}} remains listed in this
          table is a local matter to the device.
        </description>
        <syntax>
          <string>
            <enumeration value="LeaseActive">
              <description>
                The {{object}} has received a response record with TTL &gt; 0
                and the {{param|#.Service.{i}.TimeToLive}} has not expired yet.
                The {{object}} is considered active.
              </description>
            </enumeration>
            <enumeration value="GoodbyeReceived">
              <description>
                The device has received a response record containing TTL=0
                indicating a goodbye message and the
                {{param|#.Service.{i}.TimeToLive}} has not expired yet. The
                {{object}} is considered inactive.
              </description>
            </enumeration>
            <enumeration value="LeaseExpired">
              <description>
                The {{param|#.Service.{i}.TimeToLive}} has expired. The
                {{object}} is considered inactive
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastUpdate" access="readOnly">
        <description>
          The date and time at which the last advertisement for this {{object}}
          was received.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="Host" access="readOnly">
        <description>
          {{list}} {{reference|all Host table entries, active or inactive, that
          correspond to this discovered DNS.SD service. As such, when entries
          are added or removed from the Host tables the value of this parameter
          MUST be updated accordingly|ignore}}
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef
                refType="strong"
                targetParent="
                  .LANDevice.{i}.Hosts.Host.
                  .Hosts.Host."
                targetType="row"/>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TimeToLive" access="readOnly">
        <description>
          The value extracted from the TTL field of the DNS SRV record
          {{bibref|RFC2782}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="2147483647"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Priority" access="readOnly">
        <description>
          The value extracted from the Priority field of the DNS SRV record
          {{bibref|RFC2782}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Weight" access="readOnly">
        <description>
          A server selection mechanism. The value extracted from the Weight
          field of the DNS SRV record {{bibref|RFC2782}} that specifies the
          relative weight for entries with the same {{param|Priority}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

    <object name="Device.DNS.SD.Service.{i}.TextRecord.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="TextRecordNumberOfEntries" dmr:noUniqueKeys="true">
      <description>
        This object maintains an instance of a (key/value pairs) of the
        service. The information is extracted from DNS TXT records
        {{bibref|RFC1035}} of the discovered service. When multiple instances
        of the {{object}} table have the same value for the {{param|Key}}
        parameter, the implementation is CPE specific.
      </description>

      <parameter name="Key" access="readOnly">
        <description>
          The key that identifies the text record
        </description>
        <syntax>
          <string>
            <size maxLength="255"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Value" access="readOnly">
        <description>
          The value of the text record.
        </description>
        <syntax>
          <string>
            <size maxLength="255"/>
          </string>
        </syntax>
      </parameter>
    </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="UPnPDiscAdv:2" extends="UPnPDiscAdv:1"
        dmr:previousProfile="UPnPDiscAdv:1">
      <object ref="Device.UPnP.Discovery.Device.{i}." requirement="present">
        <parameter ref="LastUpdate" requirement="readOnly"/>
        <parameter ref="Host" requirement="readOnly"/>
      </object>
      <object ref="Device.UPnP.Discovery.Service.{i}." requirement="present">
        <parameter ref="LastUpdate" requirement="readOnly"/>
        <parameter ref="Host" requirement="readOnly"/>
        <parameter ref="ParentDevice" 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>

    <profile name="FaultMgmtSupportedAlarms:1">
      <object ref="Device.FaultMgmt." requirement="present">
        <parameter ref="SupportedAlarmNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.FaultMgmt.SupportedAlarm.{i}." requirement="present">
        <parameter ref="EventType" requirement="readOnly"/>
        <parameter ref="ProbableCause" requirement="readOnly"/>
        <parameter ref="SpecificProblem" requirement="readOnly"/>
        <parameter ref="PerceivedSeverity" requirement="readOnly"/>
        <parameter ref="ReportingMechanism" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="FaultMgmtActive:1 ">
      <object ref="Device.FaultMgmt." requirement="present">
        <parameter ref="CurrentAlarmNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.FaultMgmt.CurrentAlarm.{i}." requirement="present">
        <parameter ref="AlarmIdentifier" requirement="readOnly"/>
        <parameter ref="AlarmRaisedTime" requirement="readOnly"/>
        <parameter ref="AlarmChangedTime" requirement="readOnly"/>
        <parameter ref="EventType" requirement="readOnly"/>
        <parameter ref="ProbableCause" requirement="readOnly"/>
        <parameter ref="PerceivedSeverity" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="FaultMgmtHistory:1">
      <object ref="Device.FaultMgmt." requirement="present">
        <parameter ref="HistoryEventNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.FaultMgmt.HistoryEvent.{i}." requirement="present">
        <parameter ref="EventTime" requirement="readOnly"/>
        <parameter ref="AlarmIdentifier" requirement="readOnly"/>
        <parameter ref="NotificationType" requirement="readOnly"/>
        <parameter ref="EventType" requirement="readOnly"/>
        <parameter ref="ProbableCause" requirement="readOnly"/>
        <parameter ref="PerceivedSeverity" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="FaultMgmtExpedited:1">
      <object ref="Device.FaultMgmt." requirement="present">
        <parameter ref="ExpeditedEventNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.FaultMgmt.ExpeditedEvent.{i}." requirement="present">
        <parameter ref="EventTime" requirement="readOnly"/>
        <parameter ref="AlarmIdentifier" requirement="readOnly"/>
        <parameter ref="NotificationType" requirement="readOnly"/>
        <parameter ref="EventType" requirement="readOnly"/>
        <parameter ref="ProbableCause" requirement="readOnly"/>
        <parameter ref="PerceivedSeverity" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="FaultMgmtQueued:1">
      <object ref="Device.FaultMgmt." requirement="present">
        <parameter ref="QueuedEventNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.FaultMgmt.QueuedEvent.{i}." requirement="present">
        <parameter ref="EventTime" requirement="readOnly"/>
        <parameter ref="AlarmIdentifier" requirement="readOnly"/>
        <parameter ref="NotificationType" requirement="readOnly"/>
        <parameter ref="EventType" requirement="readOnly"/>
        <parameter ref="ProbableCause" requirement="readOnly"/>
        <parameter ref="PerceivedSeverity" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="Location:1">
      <object ref="Device.DeviceInfo." requirement="present">
        <parameter ref="LocationNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DeviceInfo.Location.{i}." requirement="createDelete">
        <parameter ref="Source" requirement="readOnly"/>
        <parameter ref="AcquiredTime" requirement="readOnly"/>
        <parameter ref="ExternalSource" requirement="readOnly"/>
        <parameter ref="ExternalProtocol" requirement="readOnly"/>
        <parameter ref="DataObject" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="FAP_GPS:1">
      <object ref="Device.FAP.GPS." requirement="present">
        <parameter ref="ScanOnBoot" requirement="readWrite"/>
        <parameter ref="ScanPeriodically" requirement="readWrite"/>
        <parameter ref="PeriodicInterval" requirement="readWrite"/>
        <parameter ref="PeriodicTime" requirement="readWrite"/>
        <parameter ref="ContinuousGPS" requirement="readWrite"/>
        <parameter ref="ScanTimeout" requirement="readWrite"/>
        <parameter ref="ScanStatus" requirement="readOnly"/>
        <parameter ref="ErrorDetails" requirement="readOnly"/>
        <parameter ref="LastScanTime" requirement="readOnly"/>
        <parameter ref="LastSuccessfulScanTime" requirement="readOnly"/>
        <parameter ref="LockedLatitude" requirement="readOnly"/>
        <parameter ref="LockedLongitude" requirement="readOnly"/>
        <parameter ref="NumberOfSatellites" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="FAP_Tunnel:1">
      <object ref="Device.FAP.Tunnel." requirement="present">
        <parameter ref="IKESANumberOfEntries" requirement="readOnly"/>
        <parameter ref="ChildSANumberOfEntries" requirement="readOnly"/>
        <parameter ref="MaxVirtualInterfaces" requirement="readOnly"/>
        <parameter ref="VirtualInterfaceNumberOfEntries"
            requirement="readOnly"/>
        <parameter ref="UseForCWMP" requirement="readWrite"/>
        <parameter ref="MaxChildSAPerIKE" requirement="readOnly"/>
        <parameter ref="MaxIKESessions" requirement="readOnly"/>
      </object>
      <object ref="Device.FAP.Tunnel.IKESA.{i}." requirement="present">
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="PeerAddress" requirement="readOnly"/>
        <parameter ref="CreationTime" requirement="readOnly"/>
        <parameter ref="IPAddress" requirement="readOnly"/>
        <parameter ref="SubnetMask" requirement="readOnly"/>
      </object>
      <object ref="Device.FAP.Tunnel.ChildSA.{i}." requirement="present">
        <parameter ref="ParentID" requirement="readOnly"/>
        <parameter ref="SPI" requirement="readOnly"/>
        <parameter ref="DirectionOutbound" requirement="readOnly"/>
        <parameter ref="CreationTime" requirement="readOnly"/>
      </object>
      <object ref="Device.FAP.Tunnel.VirtualInterface.{i}."
          requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="CryptoProfile" requirement="readWrite"/>
        <parameter ref="DSCPMarkPolicy" requirement="readWrite"/>
      </object>
      <object ref="Device.FAP.Tunnel.CryptoProfile.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="AuthMethod" requirement="readWrite"/>
        <parameter ref="MaxChildSA" requirement="readWrite"/>
        <parameter ref="IKEEncrypt" requirement="readWrite"/>
        <parameter ref="IKEPRF" requirement="readWrite"/>
        <parameter ref="IKEIntegrity" requirement="readWrite"/>
        <parameter ref="IKEDH" requirement="readWrite"/>
        <parameter ref="ESPEncrypt" requirement="readWrite"/>
        <parameter ref="ESPIntegrity" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="FAP_PerfMgmt:1">
      <object ref="Device.FAP.PerfMgmt." requirement="present">
        <parameter ref="ConfigNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.FAP.PerfMgmt.Config.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="URL" requirement="readWrite"/>
        <parameter ref="Username" requirement="readWrite"/>
        <parameter ref="Password" requirement="readWrite"/>
        <parameter ref="PeriodicUploadInterval" requirement="readWrite"/>
        <parameter ref="PeriodicUploadTime" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="FAP_ApplicationPlatform:1">
      <object ref="Device.FAP.ApplicationPlatform." requirement="present">
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="MaxNumberOfApplications" requirement="readOnly"/>
      </object>
      <object ref="Device.FAP.ApplicationPlatform.Control."
          requirement="present">
        <parameter ref="AuthenticationMethod" requirement="readWrite"/>
      </object>
      <object ref="Device.FAP.ApplicationPlatform.Control.FemtoAwareness."
          requirement="present">
        <parameter ref="APIEnable" requirement="readWrite"/>
        <parameter ref="MaxAPIUsersNumber" requirement="readWrite"/>
        <parameter ref="FemtozoneID" requirement="readWrite"/>
      </object>
      <object ref="Device.FAP.ApplicationPlatform.Control.SMS."
          requirement="present">
        <parameter ref="APIEnable" requirement="readWrite"/>
        <parameter ref="MaxAPIUsersNumber" requirement="readWrite"/>
        <parameter ref="MinSendSMSTimeInterval" requirement="readWrite"/>
      </object>
      <object ref="Device.FAP.ApplicationPlatform.Control.MMS."
          requirement="present">
        <parameter ref="APIEnable" requirement="readWrite"/>
        <parameter ref="MaxAPIUsersNumber" requirement="readWrite"/>
        <parameter ref="MinSendMMSTimeInterval" requirement="readWrite"/>
      </object>
      <object ref="Device.FAP.ApplicationPlatform.Control.TerminalLocation."
          requirement="present">
        <parameter ref="APIEnable" requirement="readWrite"/>
        <parameter ref="MaxAPIUsersNumber" requirement="readWrite"/>
        <parameter ref="QueryMobileLocationResponseAddress"
            requirement="readWrite"/>
        <parameter ref="QueryMobileLocationResponseLongitudeLatitude"
            requirement="readWrite"/>
      </object>
    </profile>

    <profile name="BulkDataColl:1">
      <object ref="Device.BulkData." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="MinReportingInterval" requirement="readOnly"/>
        <parameter ref="Protocols" requirement="readOnly"/>
        <parameter ref="EncodingTypes" requirement="readOnly"/>
        <parameter ref="ProfileNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.BulkData.Profile.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Protocol" requirement="readWrite"/>
        <parameter ref="EncodingType" requirement="readWrite"/>
        <parameter ref="ReportingInterval" requirement="readWrite"/>
        <parameter ref="TimeReference" requirement="readWrite"/>
        <parameter ref="ParameterNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.BulkData.Profile.{i}.Parameter.{i}."
          requirement="createDelete">
        <parameter ref="Reference" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="BulkDataStreaming:1" extends="BulkDataColl:1">
      <object ref="Device.BulkData.Profile.{i}." requirement="createDelete">
        <parameter ref="StreamingHost" requirement="readWrite"/>
        <parameter ref="StreamingPort" requirement="readWrite"/>
        <parameter ref="StreamingSessionID" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="BulkDataFileTransfer:1" extends="BulkDataColl:1">
      <object ref="Device.BulkData.Profile.{i}." requirement="createDelete">
        <parameter ref="FileTransferURL" requirement="readWrite"/>
        <parameter ref="FileTransferUsername" requirement="readWrite"/>
        <parameter ref="FileTransferPassword" requirement="readWrite"/>
        <parameter ref="ControlFileFormat" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="SupportedDataModel:2" extends="SupportedDataModel:1">
      <object ref="Device.DeviceInfo.SupportedDataModel.{i}."
          requirement="present">
        <parameter ref="UUID" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="DNS_SD:1">
      <object ref="Device.DNS.SD." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="ServiceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DNS.SD.Service.{i}." requirement="present">
        <parameter ref="InstanceName" requirement="readOnly"/>
        <parameter ref="ApplicationProtocol" requirement="readOnly"/>
        <parameter ref="TransportProtocol" requirement="readOnly"/>
        <parameter ref="Domain" requirement="readOnly"/>
        <parameter ref="Port" requirement="readOnly"/>
        <parameter ref="Target" requirement="readOnly"/>
        <parameter ref="Priority" requirement="readOnly"/>
        <parameter ref="Weight" requirement="readOnly"/>
        <parameter ref="TimeToLive" requirement="readOnly"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="LastUpdate" requirement="readOnly"/>
        <parameter ref="Host" requirement="readOnly"/>
        <parameter ref="TextRecordNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DNS.SD.Service.{i}.TextRecord.{i}."
          requirement="present">
        <parameter ref="Key" requirement="readOnly"/>
        <parameter ref="Value" requirement="readOnly"/>
      </object>
    </profile>
  </model>
</dm:document>
