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

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


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

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

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

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

  Vice Chair: 
    Jason Walls, UNH

  Chief Editor: 
    Michael Hanrahan, Huawei Technologies


  Version History:
    * May 2010: tr-181-2-0-0.xml, corresponds to TR-181 Issue 2.
    * November 2010: tr-181-2-1-0.xml, 
        corresponds to TR-181 Issue 2 Amendment 1.
    * March 2011: tr-181-2-2-0,
        corresponds to TR-181 Issue 2 Amendment 2.
    * July 2011: tr-181-2-3-0,
        corresponds to TR-181 Issue 2 Amendment 3.

-->

<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-2-3-0"
    file="tr-181-2-3-0.xml">
  <description>
    Device:2.3 data model
  </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="IPv4Address" base="IPAddress">
    <description>
      IPv4 address (or subnet mask).

      Can be any IPv4 address that is permitted by the ''IPAddress'' data type.
    </description>
    <size maxLength="15"/>
    <pattern value=""/>
    <pattern
        value="((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])"/>
  </dataType>

  <dataType name="IPv6Address" base="IPAddress">
    <description>
      IPv6 address.

      Can be any IPv6 address that is permitted by the ''IPAddress'' data type.
    </description>
  </dataType>

  <dataType name="IPPrefix">
    <description>
      IPv4 or IPv6 routing prefix in Classless Inter-Domain Routing (CIDR)
      notation {{bibref|RFC4632}}. This is specified as an IP address followed
      by an appended "/n" suffix, where ''n'' (the prefix size) is an integer
      in the range 0-32 (for IPv4) or 0-128 (for IPv6) that indicates the
      number of (leftmost) '1' bits of the routing prefix.

      * IPv4 example: 192.168.1.0/24

      * IPv6 example: 2001:edff:fe6a:f76::/64

      This notation can also represent individual addresses by specifying all
      bits.

      * IPv4 example: 192.168.1.1/32

      * IPv6 example: 2001:edff:fe6a:f76::1/128

      If the IP address part is unspecified or inapplicable, it MUST be
      {{empty}} unless otherwise specified by the parameter definition. In this
      case the IP prefix will be of the form "/n".

      If the entire IP prefix is unspecified or inapplicable, it MUST be
      {{empty}} unless otherwise specified by the parameter definition.
    </description>
    <string>
      <size maxLength="49"/>
    </string>
  </dataType>

  <dataType name="IPv6Prefix" base="IPPrefix">
    <description>
      IPv6 address prefix.

      Can be any IPv6 prefix that is permitted by the ''IPPrefix'' data type.
    </description>
  </dataType>

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

  <bibliography>
    <reference id="3GPP-TS.23.003">
      <name>3GPP TS 23.003</name>
      <title>Numbering, addressing and identification</title>
      <organization>3GPP CT WG4</organization>
      <hyperlink>https://www.3gpp.org/ftp/Specs/html-info/23003.htm</hyperlink>
    </reference>
    <reference id="OUI">
      <name>Organizationally Unique Identifiers (OUIs)</name>
      <hyperlink>https://standards.ieee.org/faqs/regauth</hyperlink>
    </reference>
    <reference id="IEEE_EUI64">
      <name>
        Guidelines for 64-bit Global Identifier (EUI-64) Registration Authority
      </name>
      <title>
        Guidelines for 64-bit Global Identifier (EUI-64) Registration Authority
      </title>
      <organization>IEEE</organization>
      <date>March 1997</date>
      <hyperlink>
        https://standards.ieee.org/regauth/oui/tutorials/EUI64.html
      </hyperlink>
    </reference>
    <reference id="802.1D-2004">
      <name>IEEE Std 802.1D-2004</name>
      <title>Media Access Control (MAC) Bridges</title>
      <organization>IEEE</organization>
      <date>2004</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.1D-2004.pdf
      </hyperlink>
    </reference>
    <reference id="802.1Q-2005">
      <name>IEEE Std 802.1Q-2005</name>
      <title>Virtual Bridged Local Area Networks</title>
      <organization>IEEE</organization>
      <date>2006</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.1Q-2005.pdf
      </hyperlink>
    </reference>
    <reference id="802.1x-2004">
      <name>IEEE Std 802.1x-2004</name>
      <title>
        Standards for Local and Metropolitan Area Networks: Port based Network
        Access Control
      </title>
      <organization>IEEE</organization>
      <date>2004</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.1X-2004.pdf
      </hyperlink>
    </reference>
    <reference id="802.11-2007">
      <name>IEEE Std 802.11-2007</name>
      <title>
        Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY)
        Specifications
      </title>
      <organization>IEEE</organization>
      <date>2007</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.11-2007.pdf
      </hyperlink>
    </reference>
    <reference id="802.11a-1999">
      <name>IEEE Std 802.11a-1999</name>
      <title>High-speed Physical Layer in the 5 GHz band</title>
      <organization>IEEE</organization>
      <date>1999</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.11a-1999.pdf
      </hyperlink>
    </reference>
    <reference id="802.11b-1999">
      <name>IEEE Std 802.11b-1999</name>
      <title>Higher Speed Physical Layer Extension in the 2.4 GHz band</title>
      <organization>IEEE</organization>
      <date>1999</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.11b-1999.pdf
      </hyperlink>
    </reference>
    <reference id="802.11g-2003">
      <name>IEEE Std 802.11g-2003</name>
      <title>Further Higher Data Rate Extension in the 2.4 GHz Band</title>
      <organization>IEEE</organization>
      <date>2003</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.11g-2003.pdf
      </hyperlink>
    </reference>
    <reference id="802.11h-2003">
      <name>IEEE Std 802.11h-2003</name>
      <title>Spectrum and Transmit Power Management Extensions</title>
      <organization>IEEE</organization>
      <date>2003</date>
      <hyperlink>
        https://standards.ieee.org/getieee802/download/802.11h-2003.pdf
      </hyperlink>
    </reference>
    <reference id="802.11n-2009">
      <name>IEEE Std 802.11n-2009</name>
      <title>Amendment 5: Enhancements for Higher Throughput</title>
      <organization>IEEE</organization>
      <date>2009</date>
      <hyperlink>
        https://ieeexplore.ieee.org/xpl/freeabs_all.jsp?reload=true&amp;arnumber=5307322
      </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="G.993.1">
      <name>G.993.1</name>
      <title>Very high speed digital subscriber line transceivers</title>
      <organization>ITU-T</organization>
      <hyperlink>https://www.itu.int/rec/T-REC-G.993.1</hyperlink>
    </reference>
    <reference id="G.997.1">
      <name>G.997.1</name>
      <title>
        Physical layer management for digital subscriber line (DSL)
        transceivers
      </title>
      <organization>ITU-T</organization>
      <hyperlink>https://www.itu.int/rec/T-REC-G.997.1</hyperlink>
    </reference>
    <reference id="G.998.1">
      <name>G.998.1</name>
      <title>ATM-based Multi-Pair Bonding</title>
      <organization>ITU-T</organization>
      <date>2005</date>
      <hyperlink>https://www.itu.int/rec/T-REC-G.998.1</hyperlink>
    </reference>
    <reference id="G.998.2">
      <name>G.998.2</name>
      <title>Ethernet-based Multi-Pair Bonding</title>
      <organization>ITU-T</organization>
      <date>2005</date>
      <hyperlink>https://www.itu.int/rec/T-REC-G.998.2</hyperlink>
    </reference>
    <reference id="G.998.3">
      <name>G.998.3</name>
      <title>
        Multi-Pair Bonding Using Time-Division Inverse Multiplexing
      </title>
      <organization>ITU-T</organization>
      <date>2005</date>
      <hyperlink>https://www.itu.int/rec/T-REC-G.998.2</hyperlink>
    </reference>
    <reference id="G.9954">
      <name>G.9954</name>
      <title>
        Phoneline networking transceivers - Enhanced physical, media access,
        and link layer specifications (HPNA 3.0 and 3.1)
      </title>
      <organization>ITU-T</organization>
      <date>2007</date>
      <hyperlink>https://www.itu.int/rec/T-REC-G.9954/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="ISO3166-1">
      <name>ISO 3166-1</name>
      <title>
        Codes for the representation of names of countries and their
        subdivisions - Part 1: Country codes
      </title>
      <organization>ISO</organization>
      <date>2006</date>
      <hyperlink>https://www.iso.org/iso/country_codes.htm</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/rfc959</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="RFC1332">
      <name>RFC 1332</name>
      <title>The PPP Internet Protocol Control Protocol (IPCP)</title>
      <organization>IETF</organization>
      <date>1992</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc1332</hyperlink>
    </reference>
    <reference id="RFC1378">
      <name>RFC 1378</name>
      <title>The PPP AppleTalk Control Protocol (ATCP)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>1992</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc1378</hyperlink>
    </reference>
    <reference id="RFC1552">
      <name>RFC 1552</name>
      <title>
        The PPP Internetwork Packet Exchange Control Protocol (IPXCP)
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>1993</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc1552</hyperlink>
    </reference>
    <reference id="RFC1661">
      <name>RFC 1661</name>
      <title>The Point-to-Point Protocol (PPP)</title>
      <organization>IETF</organization>
      <date>1994</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc1661</hyperlink>
    </reference>
    <reference id="RFC1877">
      <name>RFC 1877</name>
      <title>
        PPP Internet Protocol Control Protocol Extensions for Name Server
        Addresses
      </title>
      <organization>IETF</organization>
      <date>1995</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc1877</hyperlink>
    </reference>
    <reference id="RFC1974">
      <name>RFC 1974</name>
      <title>PPP Stac LZS Compression Protocol</title>
      <organization>IETF</organization>
      <date>1996</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc1974</hyperlink>
    </reference>
    <reference id="RFC2080">
      <name>RFC 2080</name>
      <title>RIPng for IPv6</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>1997</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2080</hyperlink>
    </reference>
    <reference id="RFC2097">
      <name>RFC 2097</name>
      <title>The PPP NetBIOS Frames Control Protocol (NBFCP)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>1997</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2097</hyperlink>
    </reference>
    <reference id="RFC2131">
      <name>RFC 2131</name>
      <title>Dynamic Host Configuration Protocol</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2131</hyperlink>
    </reference>
    <reference id="RFC2132">
      <name>RFC 2132</name>
      <title>DHCP Options and BOOTP Vendor Extensions</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2132</hyperlink>
    </reference>
    <reference id="RFC2225">
      <name>RFC 2225</name>
      <title>Classical IP and ARP over ATM</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2225</hyperlink>
    </reference>
    <reference id="RFC2364">
      <name>RFC 2364</name>
      <title>PPP Over AAL5</title>
      <organization>IETF</organization>
      <date>1998</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2364</hyperlink>
    </reference>
    <reference id="RFC2474">
      <name>RFC 2474</name>
      <title>
        Definition of the Differentiated Services Field (DS Field) in the IPv4
        and IPv6 Headers
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2474</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="RFC2684">
      <name>RFC 2684</name>
      <title>Multiprotocol Encapsulation over ATM Adaptation Layer 5</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2684</hyperlink>
    </reference>
    <reference id="RFC2697">
      <name>RFC 2697</name>
      <title>A Single Rate Three Color Marker</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2697</hyperlink>
    </reference>
    <reference id="RFC2698">
      <name>RFC 2698</name>
      <title>A Two Rate Three Color Marker</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2698</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="RFC2863">
      <name>RFC 2863</name>
      <title>The Interfaces Group MIB</title>
      <organization>IETF</organization>
      <date>2000</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2863</hyperlink>
    </reference>
    <reference id="RFC2865">
      <name>RFC 2865</name>
      <title>Remote Authentication Dial In User Service (RADIUS)</title>
      <organization>IETF</organization>
      <date>2000</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2865</hyperlink>
    </reference>
    <reference id="RFC2898">
      <name>RFC 2898</name>
      <title>
        PKCS #5: Password-Based Cryptography Specification Version 2.0
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc2898</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="RFC3004">
      <name>RFC 3004</name>
      <title>The User Class Option for DHCP</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3004</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="RFC3232">
      <name>RFC 3232</name>
      <title>
        "Assigned Numbers: RFC 1700 is Replaced by an On-line Database"
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2002</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3232</hyperlink>
    </reference>
    <reference id="RFC3315">
      <name>RFC 3315</name>
      <title>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2003</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3315</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="RFC3596">
      <name>RFC 3596</name>
      <title>DDNS Extensions to Support IP Version 6</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2003</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3596</hyperlink>
    </reference>
    <reference id="RFC3633">
      <name>RFC 3633</name>
      <title>
        IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP)
        version 6
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2003</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3633</hyperlink>
    </reference>
    <reference id="RFC3646">
      <name>RFC 3646</name>
      <title>
        DNS Configuration options for Dynamic Host Configuration Protocol for
        IPv6 (DHCPv6)
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2003</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3646</hyperlink>
    </reference>
    <reference id="RFC3775">
      <name>RFC 3775</name>
      <title>Mobility Support in IPv6</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2004</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3775</hyperlink>
    </reference>
    <reference id="RFC3925">
      <name>RFC 3925</name>
      <title>
        Vendor-Identifying Vendor Options for Dynamic Host Configuration
        Protocol version 4 (DHCPv4)
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3925</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="RFC3927">
      <name>RFC 3927</name>
      <title>Dynamic Configuration of IPv4 Link-Local Addresses</title>
      <organization>IETF</organization>
      <date>2005</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc3927</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="RFC4191">
      <name>RFC 4191</name>
      <title>Default Router Preferences and More-Specific Routes</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2005</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4191</hyperlink>
    </reference>
    <reference id="RFC4193">
      <name>RFC 4193</name>
      <title>Unique Local IPv6 Unicast Addresses</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2005</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4193</hyperlink>
    </reference>
    <reference id="RFC4242">
      <name>RFC 4242</name>
      <title>
        Information Refresh Time Option for Dynamic Host Configuration Protocol
        for IPv6 (DHCPv6)
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2005</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4242</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="RFC4292">
      <name>RFC 4292</name>
      <title>IP Forwarding Table MIB</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2006</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4292</hyperlink>
    </reference>
    <reference id="RFC4293">
      <name>RFC 4293</name>
      <title>Management Information Base for the Internet Protocol (IP)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2006</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4293</hyperlink>
    </reference>
    <reference id="RFC4389">
      <name>RFC 4389</name>
      <title>Neighbor Discovery Proxies (ND Proxy)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2006</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4389</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="RFC4861">
      <name>RFC 4861</name>
      <title>Neighbor Discovery for IP version 6 (IPv6)</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2007</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4861</hyperlink>
    </reference>
    <reference id="RFC4862">
      <name>RFC 4862</name>
      <title>IPv6 Stateless Address Autoconfiguration</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2007</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc4862</hyperlink>
    </reference>
    <reference id="RFC5072">
      <name>RFC 5072</name>
      <title>IP Version 6 over PPP</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2007</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc5072</hyperlink>
    </reference>
    <reference id="RFC5625">
      <name>RFC 5625</name>
      <title>DNS Proxy Implementation Guidelines</title>
      <organization>IETF</organization>
      <date>2009</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc5625</hyperlink>
    </reference>
    <reference id="RFC5969">
      <name>RFC 5969</name>
      <title>
        IPv6 Rapid Deployment on IPv4 Infrastructures (6rd) - Protocol
        Specification
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2010</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc5969</hyperlink>
    </reference>
    <reference id="RFC6106">
      <name>RFC 6106</name>
      <title>IPv6 Router Advertisement Option for DNS Configuration</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2010</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc6106</hyperlink>
    </reference>
    <reference id="DSLite">
      <name>RFC 6333</name>
      <title>
        Dual-Stack Lite Broadband Deployments Following IPv4 Exhaustion
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2011</date>
    </reference>
    <reference id="DSLite-options">
      <name>RFC 6334</name>
      <title>
        Dynamic Host Configuation Protocol for IPv6 (DHCPv6) Option for
        Dual-Stack Lite
      </title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>2011</date>
    </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="RFC8089">
      <name>RFC 8089</name>
      <title>The "file" URI Scheme</title>
      <organization>IETF</organization>
      <category>RFC</category>
      <date>February 2017</date>
      <hyperlink>https://www.rfc-editor.org/rfc/rfc8089</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-064">
      <name>TR-064 Corrigendum 1</name>
      <title>LAN-Side DSL CPE Configuration Specification</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>August 2015</date>
    </reference>
    <reference id="TR-069a2">
      <name>TR-069 Amendment 2</name>
      <title>CPE WAN Management Protocol</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>December 2007</date>
    </reference>
    <reference id="TR-069a3">
      <name>TR-069 Amendment 3</name>
      <title>CPE WAN Management Protocol</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>November 2010</date>
    </reference>
    <reference id="TR-069a4">
      <name>TR-069 Amendment 4</name>
      <title>CPE WAN Management Protocol</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>July 2011</date>
    </reference>
    <reference id="TR-069">
      <name>TR-069 Amendment 6</name>
      <title>CPE WAN Management Protocol</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>April 2018</date>
    </reference>
    <reference id="TR-106a2">
      <name>TR-106 Amendment 2</name>
      <title>Data Model Template for TR-069-Enabled Devices</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>November 2008</date>
    </reference>
    <reference id="TR-106a3">
      <name>TR-106 Amendment 3</name>
      <title>Data Model Template for TR-069-Enabled Devices</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>September 2009</date>
    </reference>
    <reference id="TR-106a4">
      <name>TR-106 Amendment 4</name>
      <title>Data Model Template for TR-069-Enabled Devices</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>February 2010</date>
      <hyperlink>
        http://www.broadband-forum.org/technical/download/TR-106_Amendment-4.pdf
      </hyperlink>
    </reference>
    <reference id="TR-106a6">
      <name>TR-106 Amendment 6</name>
      <title>Data Model Template for TR-069-Enabled Devices</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>July 2011</date>
    </reference>
    <reference id="TR-143">
      <name>TR-143 Amendment 1 Corrigendum 1</name>
      <title>
        Enabling Network Throughput Performance Tests and Statistical
        Monitoring
      </title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>August 2015</date>
    </reference>
    <reference id="TR-157a3">
      <name>TR-157 Amendment 3</name>
      <title>Component Objects for CWMP</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>November 2010</date>
      <hyperlink>
        http://www.broadband-forum.org/technical/download/TR-106_Amendment-4.pdf
      </hyperlink>
    </reference>
    <reference id="TR-157">
      <name>TR-157 Amendment 10</name>
      <title>Component Objects for CWMP</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>November 2015</date>
    </reference>
    <reference id="TR-159">
      <name>TR-159</name>
      <title>Management Framework for xDSL Bonding</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>December 2008</date>
    </reference>
    <reference id="TR-181i2a2">
      <name>TR-181 Issue 2 Amendment 2</name>
      <title>Device Data Model for TR-069</title>
      <organization>Broadband Forum</organization>
      <category>TR</category>
      <date>February 2011</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="WPSv1.0">
      <name>Wi-Fi Protected Setup Specification Version 1.0h</name>
      <title>Wi-Fi Alliance</title>
      <date>2006</date>
      <hyperlink>
        https://www.wi-fi.org/discover-wi-fi/specifications
      </hyperlink>
    </reference>
    <reference id="BLUE">
      <name>Blue</name>
      <title>A New Class of Active Queue Management Algorithms</title>
      <hyperlink>
        https://en.wikipedia.org/wiki/Blue_(queue_management_algorithm)
      </hyperlink>
    </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="HPAV1.1">
      <name>HomePlug™ AV Specification</name>
      <title>Version 1.1</title>
      <organization>HomePlug Alliance</organization>
      <date>2007</date>
      <hyperlink>https://en.wikipedia.org/wiki/HomePlug</hyperlink>
    </reference>
    <reference id="HTML4.01">
      <name>HTML 4.01 Specification</name>
      <organization>W3C</organization>
      <hyperlink>https://www.w3.org/TR/html4</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="MoCAv1.0">
      <name>MoCA v1.0</name>
      <title>MoCA MAC/PHY Specification v1.0</title>
      <organization>MoCA Alliance</organization>
      <date>2009</date>
      <hyperlink>https://www.mocalliance.org</hyperlink>
    </reference>
    <reference id="MoCAv1.1">
      <name>MoCA v1.1</name>
      <title>MoCA MAC/PHY Specification v1.1 Extensions</title>
      <organization>MoCA Alliance</organization>
      <date>2009</date>
      <hyperlink>https://www.mocalliance.org</hyperlink>
    </reference>
    <reference id="MOCA11-MIB">
      <name>MOCA11-MIB</name>
      <title>Remote Management of MoCA Interfaces using SNMP MIB</title>
      <organization>MoCA Alliance</organization>
      <date>2009</date>
      <hyperlink>https://www.mocalliance.org</hyperlink>
    </reference>
    <reference id="RED">
      <name>References on RED (Random Early Detection) Queue Management</name>
      <hyperlink>http://www.icir.org/floyd/red.html</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="UPA-PLC">
      <name>Universal Powerline Association</name>
      <organization>UPA</organization>
      <hyperlink>https://www.upaplc.org</hyperlink>
    </reference>
    <reference id="UPnP-DAv1">
      <name>UPnP Device Architecture</name>
      <title>UPnP Device Architecture 1.0</title>
      <organization>UPnP Forum</organization>
      <date>April 2008</date>
      <hyperlink>
        http://www.upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.0-20080424.pdf
      </hyperlink>
      <hyperlink>
        http://www.upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.0-20080424.pdf
      </hyperlink>
    </reference>
    <reference id="UPnP-DM:1">
      <name>UPnP Device Management:1</name>
      <title>UPnP Device Management v1</title>
      <hyperlink>
        https://openconnectivity.org/developer/specifications/upnp-resources/upnp/device-management1-2
      </hyperlink>
    </reference>
    <reference id="UPnP-IGD:1">
      <name>UPnP InternetGatewayDevice:1</name>
      <title>InternetGatewayDevice:1 Device Template Version 1.01</title>
      <organization>UPnP</organization>
      <category>SDCP</category>
      <date>2001</date>
      <hyperlink>
        http://upnp.org/specs/gw/UPnP-gw-InternetGatewayDevice-v1-Device.pdf
      </hyperlink>
    </reference>
    <reference id="UPnP-IGD:2">
      <name>UPnP InternetGatewayDevice:2</name>
      <title>InternetGatewayDevice:2 Device Template Version 1.01</title>
      <organization>UPnP</organization>
      <category>SDCP</category>
      <date>2010</date>
      <hyperlink>
        http://upnp.org/specs/gw/UPnP-gw-InternetGatewayDevice-v2-Device.pdf
      </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:2.3">

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

      <parameter name="InterfaceStackNumberOfEntries" 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.ManagementServer." access="readOnly" minEntries="1"
        maxEntries="1" dmr:version="1.0">
      <description>
        This object contains parameters relating to the CPE's association with
        an ACS.
      </description>

      <parameter name="EnableCWMP" access="readWrite">
        <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. 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 {{units}} 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"/>
            <units value="seconds"/>
          </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" activeNotify="forceDefaultEnabled">
        <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.

          Note: If the ''host'' portion of the URL is a literal IPv6 address
          then it MUST be enclosed in square brackets (see
          {{bibref|RFC3986|Section 3.2.2}}).
        </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.
        </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">
        <description>
          This parameter is used to control throttling of active notifications
          sent by the CPE to the ACS. It defines the minimum number of
          {{units}} 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>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="CWMPRetryMinimumWaitInterval" access="readWrite">
        <description>
          Configures the first session retry wait interval, in {{units}}, 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"/>
            <units value="seconds"/>
          </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="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''.

          Note: If the ''host'' portion of the URL is a literal IPv6 address
          then it MUST be enclosed in square brackets (see
          {{bibref|RFC3986|Section 3.2.2}}).
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </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).
        </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 {{units}}, 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"/>
            <units value="seconds"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="STUNMinimumKeepAlivePeriod" access="readWrite">
        <description>
          If STUN Is enabled, the minimum period, in {{units}}, 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>
            <units value="seconds"/>
          </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="ManageableDeviceNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

      <parameter name="VirtualDeviceNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <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.ManageableDevice.{i}."
        access="readOnly" numEntriesParameter="ManageableDeviceNumberOfEntries"
        minEntries="0" maxEntries="unbounded">
      <description>
        Each entry in this table corresponds to a distinct LAN Device that
        supports Device-Gateway Association according to
        {{bibref|TR-069a2|Annex F}} as indicated by the presence of the DHCP
        option specified in that Annex.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="ManufacturerOUI"/>
        <parameter ref="SerialNumber"/>
        <parameter ref="ProductClass"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" status="deprecated">
        <description>
          A non-volatile handle used to reference this instance. {{param}}
          provides a mechanism for an ACS to label this instance for future
          reference. An initial unique value MUST be assigned when the CPE
          creates an instance of this object.

          This parameter is DEPRECATED because {{object}} is a transient
          object.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ManufacturerOUI" access="readOnly"
          activeNotify="canDeny">
        <description>
          Organizationally unique identifier of the Device manufacturer as
          provided to the Gateway by the Device. 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="SerialNumber" access="readOnly" activeNotify="canDeny">
        <description>
          Serial number of the Device as provided to the Gateway by the Device.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProductClass" access="readOnly" activeNotify="canDeny">
        <description>
          Identifier of the class of product for which the Device's serial
          number applies as provided to the Gateway by the Device. If the
          Device does not provide a Product Class, then this parameter MUST be
          {{empty}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Host" access="readOnly">
        <description>
          {{list}} {{reference}} References all the {{object|.Hosts.Host}}
          table entries, whether active or inactive, that correspond to this
          physical LAN device. There can be multiple such entries if the device
          has more than one network interface. For example:
          ''Device.Hosts.Host.1,Device.Hosts.Host.5''
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetParent=".Hosts.Host."
                targetType="row"/>
          </string>
        </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.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.ManagementServer.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.ManagementServer.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.ManagementServer.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.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.ManagementServer.EmbeddedDevice.{i}."
        access="readOnly" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="EmbeddedDeviceNumberOfEntries">
      <description>
        Each entry in this table represents a distinct Proxied Device that
        utilizes the Embedded Object Mechanism {{bibref|TR-069a4|Annex J.1.2}}
        for proxying devices.
      </description>
      <uniqueKey>
        <parameter ref="ControllerID"/>
        <parameter ref="ProxiedDeviceID"/>
      </uniqueKey>

      <parameter name="ControllerID" access="readOnly">
        <description>
          Identifier of the controller that is responsible for a sub-network of
          Proxied Devices within the LAN. {{empty}} indicates that this Proxied
          Device either:

          * Isn't part of a sub-network, within the LAN, with a controller
            entity.

          * Doesn't need a {{param}} to ensure its {{param|ProxiedDeviceID}} is
            unique throughout the LAN.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ProxiedDeviceID" access="readOnly">
        <description>
          Idenitfier of the Proxied Device. This is an opaque string that is
          unique to the Proxied Device within a specific sub-network within the
          LAN (identified by the {{param|ControllerID}}). If the
          {{param|ControllerID}} is {{empty}} this {{param}} is unique across
          the LAN.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Reference" access="readOnly">
        <description>
          {{noreference}}The value MUST be the path name of a table row. If the
          referenced object is deleted, this {{object}} instance MUST also be
          removed. Represents the instance of a multi-instanced object that is
          directly controlled by, and has come into existence because of, this
          Proxied Device that utilizes the Embedded Object Mechanism
          {{bibref|TR-069a4|Annex J.1.2}}.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SupportedDataModel" access="readOnly">
        <description>
          Represents the CWMP-DT schema instance(s) that this Proxied Device is
          utilizing. The CWMP-DT schema instance is also the one being utilized
          by the object referenced within {{param|Reference}}.
        </description>
        <syntax>
          <list/>
          <string>
            <pathRef targetParent=".DeviceInfo.SupportedDataModel."
                refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Host" access="readOnly">
        <description>
          References the {{object|.Hosts.Host}} table entry(s), whether active
          or inactive, that corresponds to this proxied LAN device.
        </description>
        <syntax>
          <list maxItems="32"/>
          <string>
            <pathRef refType="strong" targetParent=".Hosts.Host."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="CommandProcessed" access="readOnly">
        <description>
          Whether or not the CPE Proxier has successfully communicated all
          pending configuration commands down to the Proxied Device.
        </description>
        <syntax>
          <string>
            <enumeration value="Pending"/>
            <enumeration value="Retrying"/>
            <enumeration value="Success"/>
            <enumeration value="Error"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="CommandProcessingErrMsg" access="readOnly">
        <description>
          Detailed {{param|CommandProcessed}} error description (vendor
          specific).
        </description>
        <syntax>
          <string>
            <size maxLength="1024"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastSyncTime" access="readOnly">
        <description>
          The last time that the CPE Proxier synchronized the state of the
          Proxied Device. This parameter MUST be updated when a proxy command
          is executed successfully on the Proxied Device. The Unknown Time
          value, as defined in {{bibref|TR-106a6}}, indicates that the Proxied
          Device's state has not been synchronized since the CPE Proxier was
          last rebooted.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ManagementServer.VirtualDevice.{i}."
        access="readOnly" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="VirtualDeviceNumberOfEntries">
      <description>
        Each entry in this table represents a distinct Proxied Device that
        utilizes the Virtual CWMP Device Mechanism {{bibref|TR-069a4|Annex
        I.1.1}} for proxying devices.
      </description>
      <uniqueKey>
        <parameter ref="ManufacturerOUI"/>
        <parameter ref="ProductClass"/>
        <parameter ref="SerialNumber"/>
      </uniqueKey>

      <parameter name="ManufacturerOUI" access="readOnly">
        <description>
          Organizationally unique identifier of the associated Proxied Device.
          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 Proxied Device
          for which the serial number applies.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="Host" access="readOnly">
        <description>
          {{list}} {{reference}} References all the {{object|.Hosts.Host}}
          table entries, whether active or inactive, that correspond to this
          proxied LAN device. There can be multiple such entries if the Proxied
          Device has more than one network interface.
        </description>
        <syntax>
          <list maxItems="32"/>
          <string>
            <pathRef refType="strong" targetParent=".Hosts.Host."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

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

    <object name="Device.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. {{pattern}} {{empty}} indicates that there is no associated
          Internet Gateway Device that has been detected.
        </description>
        <syntax>
          <string>
            <size maxLength="6"/>
            <pattern value=""/>
            <pattern value="[0-9A-F]{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.InterfaceStack.{i}." access="readOnly"
        numEntriesParameter="InterfaceStackNumberOfEntries" minEntries="0"
        maxEntries="unbounded">
      <description>
        This table contains information about the relationships between the
        multiple layers of interface objects ({{bibref|TR-181i2|Section 4.3}}).
        In particular, it contains information on which interfaces run ''on top
        of'' which other interfaces. This table is auto-generated by the CPE
        based on the ''LowerLayers'' parameters on individual interface
        objects. Each table row represents a "link" between two interface
        objects, a higher-layer interface object (referenced by
        {{param|HigherLayer}}) and a lower-layer interface object (referenced
        by {{param|LowerLayer}}). Consequently, if a referenced interface
        object is deleted, the CPE MUST delete the corresponding {{object}}
        row(s) that had referenced it.
      </description>
      <uniqueKey>
        <parameter ref="HigherLayer"/>
        <parameter ref="LowerLayer"/>
      </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="HigherLayer" access="readOnly">
        <description>
          {{noreference}}A reference to the interface object corresponding to
          the higher layer of the relationship, i.e. the interface which runs
          on ''top'' of the interface identified by the corresponding instance
          of {{param|LowerLayer}}. When the referenced higher layer interface
          is deleted, the CPE MUST delete the table row.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LowerLayer" access="readOnly">
        <description>
          {{noreference}}A reference to the interface object corresponding to
          the lower layer of the relationship, i.e. the interface which runs
          ''below'' the interface identified by the corresponding instance of
          {{param|HigherLayer}}. When the referenced lower layer interface is
          deleted, the CPE MUST delete the table row.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="HigherAlias" access="readOnly">
        <description>
          The value of the ''Alias'' parameter for the interface object
          referenced by {{param|HigherLayer}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LowerAlias" access="readOnly">
        <description>
          The value of the ''Alias'' parameter for the interface object
          referenced by {{param|LowerLayer}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL." access="readOnly" minEntries="1" maxEntries="1">
      <description>
        This object models DSL lines, DSL channels, DSL bonding, and DSL
        diagnostics. The specific interface objects defined here are
        {{object|Line}}, {{object|Channel}}, and {{object|BondingGroup}}. Each
        {{object|Line}} models a layer 1 DSL Line interface, and each
        {{object|Channel}} models a layer 1 DSL Channel interface where
        multiple channels can run over a DSL line. In the case where bonding is
        configured, it is expected that {{object|BondingGroup}} is stacked
        above the {{object|Channel}} instances within its group.
      </description>

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

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

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

    <object name="Device.DSL.Line.{i}." access="readOnly"
        numEntriesParameter="LineNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true">
      <description>
        DSL Line table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). This table models physical DSL lines.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the DSL line. This parameter is based on
          ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the DSL line (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}} When {{param|Enable}} is
          {{false}} then {{param}} SHOULD normally be {{enum|Down}} (or
          {{enum|NotPresent}} or {{enum|Error}} if there is a fault condition
          on the interface). When {{param|Enable}} is changed to {{true}} then
          {{param}} SHOULD change to {{enum|Up}} if and only if the interface
          is able to transmit and receive network traffic; it SHOULD change to
          {{enum|Dormant}} if and only if the interface is operable but is
          waiting for external actions before it can transmit and receive
          network traffic (and subsequently change to {{enum|Up}} if still
          operable when the expected actions have completed); it SHOULD change
          to {{enum|LowerLayerDown}} if and only if the interface is prevented
          from entering the {{enum|Up}} state because one or more of the
          interfaces beneath it is down; it SHOULD remain in the {{enum|Error}}
          state if there is an error or other fault condition detected on the
          interface; it SHOULD remain in the {{enum|NotPresent}} state if the
          interface has missing (typically hardware) components; it SHOULD
          change to {{enum|Unknown}} if the state of the interface can not be
          determined for some reason. This parameter is based on
          ''ifOperStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent"/>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </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 textual name of the DSL line as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the DSL line entered its
          current operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowerLayers" access="readWrite">
        <description>
          {{list}} {{reference|an interface object that is stacked immediately
          below this interface object}} See {{bibref|TR-181i2|Section 4.2.1}}.
          Note: Since {{object}} is a layer 1 interface, it is expected that
          {{param}} will not be used.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Upstream" access="readOnly">
        <description>
          Indicates whether the interface points towards the Internet
          ({{true}}) or towards End Devices ({{false}}). For example:

          * For an Internet Gateway Device, {{param}} will be {{true}} for all
            WAN interfaces and {{false}} for all LAN interfaces.

          * For a standalone WiFi Access Point that is connected via Ethernet
            to an Internet Gateway Device, {{param}} will be {{true}} for the
            Ethernet interface and {{false}} for the WiFi Radio interface.

          * For an End Device, {{param}} will be {{true}} for all interfaces.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="FirmwareVersion" access="readOnly">
        <description>
          A string identifying the version of the modem firmware currently
          installed for this interface. This is applicable only when the modem
          firmware is separable from the overall CPE software.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LinkStatus" access="readOnly">
        <description>
          Status of the DSL physical link. {{enum}} When {{param}} is
          {{enum|Up}}, {{param|Status}} is expected to be {{enum|Up|Status}}.
          When {{param}} is {{enum|Initializing}} or {{enum|EstablishingLink}}
          or {{enum|NoSignal}} or {{enum|Disabled}}, {{param|Status}} is
          expected to be {{enum|Down|Status}}. The {{enum|Error}} value MAY be
          used by the CPE to indicate a locally defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Initializing"/>
            <enumeration value="EstablishingLink"/>
            <enumeration value="NoSignal"/>
            <enumeration value="Disabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="StandardsSupported" access="readOnly">
        <description>
          {{list}} List items indicate which DSL standards and recommendations
          are supported by the {{object}} instance. {{enum}} Note: In G.997.1,
          this parameter is called "xDSL Transmission system capabilities". See
          ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="G.992.1_Annex_A"/>
            <enumeration value="G.992.1_Annex_B"/>
            <enumeration value="G.992.1_Annex_C"/>
            <enumeration value="T1.413"/>
            <enumeration value="T1.413i2"/>
            <enumeration value="ETSI_101_388"/>
            <enumeration value="G.992.2"/>
            <enumeration value="G.992.3_Annex_A"/>
            <enumeration value="G.992.3_Annex_B"/>
            <enumeration value="G.992.3_Annex_C"/>
            <enumeration value="G.992.3_Annex_I"/>
            <enumeration value="G.992.3_Annex_J"/>
            <enumeration value="G.992.3_Annex_L"/>
            <enumeration value="G.992.3_Annex_M"/>
            <enumeration value="G.992.4"/>
            <enumeration value="G.992.5_Annex_A"/>
            <enumeration value="G.992.5_Annex_B"/>
            <enumeration value="G.992.5_Annex_C"/>
            <enumeration value="G.992.5_Annex_I"/>
            <enumeration value="G.992.5_Annex_J"/>
            <enumeration value="G.992.5_Annex_M"/>
            <enumeration value="G.993.1"/>
            <enumeration value="G.993.1_Annex_A"/>
            <enumeration value="G.993.2_Annex_A"/>
            <enumeration value="G.993.2_Annex_B"/>
            <enumeration value="G.993.2_Annex_C"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="StandardUsed" access="readOnly">
        <description>
          Indicates the standard that the {{object}} instance is using for the
          connection. Note: In G.997.1, this parameter is called "xDSL
          Transmission system". See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="StandardsSupported"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LineEncoding" access="readOnly">
        <description>
          The line encoding method used in establishing the Layer 1 DSL
          connection between the CPE and the DSLAM. {{enum}} Note: Generally
          speaking, this variable does not change after provisioning.
        </description>
        <syntax>
          <string>
            <enumeration value="DMT"/>
            <enumeration value="CAP"/>
            <enumeration value="2B1Q"/>
            <enumeration value="43BT"/>
            <enumeration value="PAM"/>
            <enumeration value="QAM"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AllowedProfiles" access="readOnly">
        <description>
          {{list}} List items indicate which VDSL2 profiles are allowed on the
          line. {{enum}} Note: In G.997.1, this parameter is called PROFILES.
          See ITU-T Recommendation {{bibref|G.997.1}}. Note: This parameter is
          OPTIONAL at the G and S/T interfaces in G.997.1 Amendment 1. If the
          parameter is implemented but no value is available, its value MUST be
          {{empty}}.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="8a"/>
            <enumeration value="8b"/>
            <enumeration value="8c"/>
            <enumeration value="8d"/>
            <enumeration value="12a"/>
            <enumeration value="12b"/>
            <enumeration value="17a"/>
            <enumeration value="17b"/>
            <enumeration value="30a"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="CurrentProfile" access="readOnly">
        <description>
          Indicates which VDSL2 profile is currently in use on the line. Note:
          This parameter is OPTIONAL at the G and S/T interfaces in G.997.1
          Amendment 1. If the parameter is implemented but no value is
          available, its value MUST be {{empty}}.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="AllowedProfiles" nullValue=""/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PowerManagementState" access="readOnly">
        <description>
          The power management state of the line. {{enum}} Note: See ITU-T
          Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <string>
            <enumeration value="L0"/>
            <enumeration value="L1"/>
            <enumeration value="L2"/>
            <enumeration value="L3"/>
            <enumeration value="L4"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SuccessFailureCause" access="readOnly">
        <description>
          The success failure cause of the initialization. An enumeration of
          the following integer values:

          * 0: Successful

          * 1: Configuration error. This error occurs with inconsistencies in
            configuration parameters, e.g. when the line is initialized in an
            xDSL Transmission system where an xTU does not support the
            configured Maximum Delay or the configured Minimum or Maximum Data
            Rate for one or more bearer channels.

          * 2: Configuration not feasible on the line. This error occurs if the
            Minimum Data Rate cannot be reached on the line with the Minimum
            Noise Margin, Maximum PSD level, Maximum Delay and Maximum Bit
            Error Ratio for one or more bearer channels.

          * 3: Communication problem. This error occurs, for example, due to
            corrupted messages or bad syntax messages or if no common mode can
            be selected in the G.994.1 handshaking procedure or due to a
            timeout.

          * 4: No peer xTU detected. This error occurs if the peer xTU is not
            powered or not connected or if the line is too long to allow
            detection of a peer xTU.

          * 5: Any other or unknown Initialization Failure cause. Note: In
            G.997.1, this parameter is called "Initialization success/failure
            cause". See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="5"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LastStateTransmittedDownstream" access="readOnly">
        <description>
          This parameter represents the last successful transmitted
          initialization state in the downstream direction in the last full
          initialization performed on the line. Initialization states are
          defined in the individual xDSL Recommendations and are counted from 0
          (if G.994.1 is used) or 1 (if G.994.1 is not used) up to Showtime.
          This parameter needs to be interpreted along with the xDSL
          Transmission System. This parameter is available only when, after a
          failed full initialization, the line diagnostics procedures are
          activated on the line. Note: See ITU-T Recommendation
          {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LastStateTransmittedUpstream" access="readOnly">
        <description>
          This parameter represents the last successful transmitted
          initialization state in the upstream direction in the last full
          initialization performed on the line. Initialization states are
          defined in the individual xDSL Recommendations and are counted from 0
          (if G.994.1 is used) or 1 (if G.994.1 is not used) up to Showtime.
          This parameter needs to be interpreted along with the xDSL
          Transmission System. This parameter is available only when, after a
          failed full initialization, the line diagnostics procedures are
          activated on the line. Note: See ITU-T Recommendation
          {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UPBOKLE" access="readOnly">
        <description>
          This parameter contains the estimated electrical loop length
          expressed in {{units}} at 1MHz (see O-UPDATE in section
          12.2.4.2.1.2/G.993.2). The value SHALL be coded as an unsigned 16 bit
          number in the range 0 (coded as 0) to 128 dB (coded as 1280) in steps
          of 0.1 dB. Note: See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="1280"/>
            <units value="0.1dB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MREFPSDds" access="readOnly">
        <description>
          This parameter SHALL contain the set of breakpoints exchanged in the
          MREFPSDds fields of the O-PRM message of G.993.2. Base64 encoded of
          the binary representation defined in Table 12-19/G.993.2 (maximum
          length is 145 octets, which requires 196 bytes for Base64 encoding).
          Note: See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <base64>
            <size minLength="0" maxLength="145"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="MREFPSDus" access="readOnly">
        <description>
          This parameter SHALL contain the set of breakpoints exchanged in the
          MREFPSDus fields of the R-PRM message of G.993.2. Base64 encoded of
          the binary representation defined in Table 12-19/G.993.2 (maximum
          length is 145 octets, which requires 196 bytes for Base64 encoding).
          Note: See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <base64>
            <size minLength="0" maxLength="145"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="LIMITMASK" access="readOnly">
        <description>
          Indicates the enabled VDSL2 Limit PSD mask of the selected PSD mask
          class. Bit mask as specified in ITU-T Recommendation G.997.1. Note:
          For a VDSL2-capable multimode device operating in a mode other than
          VDSL2, the value of this parameter SHOULD be set to 0. Note: See
          ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="US0MASK" access="readOnly">
        <description>
          Indicates the allowed VDSL2 US0 PSD masks for Annex A operation. Bit
          mask as specified in see ITU-T Recommendation G.997.1. Note: For a
          VDSL2-capable multimode device operating in a mode other than VDSL2,
          the value of this parameter SHOULD be set to 0. Note: See ITU-T
          Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TRELLISds" access="readOnly">
        <description>
          Reports whether trellis coding is enabled in the downstream
          direction. A value of 1 indicates that trellis coding is in use, and
          a value of 0 indicates that the trellis is disabled. Note: See ITU-T
          Recommendation {{bibref|G.997.1}}. For a multimode device operating
          in a mode in which this parameter does not apply, the value of this
          parameter SHOULD be set to -1.
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>

      <parameter name="TRELLISus" access="readOnly">
        <description>
          Reports whether trellis coding is enabled in the upstream direction.
          A value of 1 indicates that trellis coding is in use, and a value of
          0 indicates that the trellis is disabled. Note: See ITU-T
          Recommendation {{bibref|G.997.1}}. For a multimode device operating
          in a mode in which this parameter does not apply, the value of this
          parameter SHOULD be set to -1.
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>

      <parameter name="ACTSNRMODEds" access="readOnly">
        <description>
          Reports whether the OPTIONAL virtual noise mechanism is in use in the
          downstream direction. A value of 1 indicates the virtual noise
          mechanism is not in use, and a value of 2 indicates the virtual noise
          mechanism is in use. Note: See ITU-T Recommendation
          {{bibref|G.997.1}}. For a multimode device operating in a mode in
          which this parameter does not apply, the value of this parameter
          SHOULD be set to 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ACTSNRMODEus" access="readOnly">
        <description>
          Reports whether the OPTIONAL virtual noise mechanism is in use in the
          upstream direction. A value of 1 indicates the virtual noise
          mechanism is not in use, and a value of 2 indicates the virtual noise
          mechanism is in use. Note: See ITU-T Recommendation
          {{bibref|G.997.1}}. For a multimode device operating in a mode in
          which this parameter does not apply, the value of this parameter
          SHOULD be set to 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="VirtualNoisePSDds" access="readOnly">
        <description>
          Reports the virtual noise PSD for the downstream direction. Base64
          encoded of the binary representation defined in G.997.1 by the
          parameter called TXREFVNds (maximum length is 97 octets, which
          requires 132 bytes for Base64 encoding). See ITU-T Recommendation
          {{bibref|G.997.1}}. For a multimode device operating in a mode in
          which this parameter does not apply, the value of this parameter
          SHOULD be set to {{empty}}.
        </description>
        <syntax>
          <base64>
            <size minLength="0" maxLength="97"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="VirtualNoisePSDus" access="readOnly">
        <description>
          Reports the virtual noise PSD for the upstream direction. Base64
          encoded of the binary representation defined in G.997.1by the
          parameter called TXREFVNus (maximum length is 49 octets, which
          requires 68 bytes for Base64 encoding). See ITU-T Recommendation
          {{bibref|G.997.1}}. For a multimode device operating in a mode in
          which this parameter does not apply, the value of this parameter
          SHOULD be set to {{empty}}.
        </description>
        <syntax>
          <base64>
            <size minLength="0" maxLength="49"/>
          </base64>
        </syntax>
      </parameter>

      <parameter name="ACTUALCE" access="readOnly">
        <description>
          Reports the actual cyclic extension, as the value of m, in use for
          the connection. Note: See ITU-T Recommendation {{bibref|G.997.1}}.
          For a multimode device operating in a mode in which this parameter
          does not apply, the value of this parameter SHOULD be set to 99.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LineNumber" access="readOnly">
        <description>
          Signifies the line pair that the modem is using to connection.
          {{param}} = 1 is the innermost pair.
        </description>
        <syntax>
          <int>
            <range minInclusive="1"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="UpstreamMaxBitRate" access="readOnly"
          activeNotify="canDeny">
        <description>
          The current maximum attainable data rate upstream (expressed in
          {{units}}). Note: This parameter is related to the G.997.1 parameter
          ATTNDRus, which is measured in bits/s. See ITU-T Recommendation
          {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DownstreamMaxBitRate" access="readOnly"
          activeNotify="canDeny">
        <description>
          The current maximum attainable data rate downstream (expressed in
          {{units}}). Note: This parameter is related to the G.997.1 parameter
          ATTNDRds, which is measured in bits/s. See ITU-T Recommendation
          {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UpstreamNoiseMargin" access="readOnly"
          activeNotify="canDeny">
        <description>
          The current signal-to-noise ratio margin (expressed in {{units}}) in
          the upstream direction. Note: In G.997.1, this parameter is called
          SNRMus. See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <int>
            <units value="0.1dB"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="DownstreamNoiseMargin" access="readOnly"
          activeNotify="canDeny">
        <description>
          The current signal-to-noise ratio margin (expressed in {{units}}) in
          the downstream direction. Note: In G.997.1, this parameter is called
          SNRMds. See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <int>
            <units value="0.1dB"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="SNRMpbus" access="readOnly">
        <description>
          {{list}} Indicates the current signal-to-noise ratio margin of each
          upstream band. Interpretation of the values is as defined in ITU-T
          Rec. G.997.1. Note: See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="24"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SNRMpbds" access="readOnly">
        <description>
          {{list}} Indicates the current signal-to-noise ratio margin of each
          band. Interpretation of the values is as defined in ITU-T Rec.
          G.997.1. Note: See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="24"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="INMIATOds" access="readOnly">
        <description>
          The Impulse Noise Monitoring (INM) Inter Arrival Time (IAT) Offset,
          measured in DMT symbols, that the xTU receiver uses to determine in
          which bin of the IAT histogram the IAT is reported. Note: In G.997.1,
          this parameter is called INMIATO. See ITU-T Recommendation
          {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="3" maxInclusive="511"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="INMIATSds" access="readOnly">
        <description>
          The Impulse Noise Monitoring (INM) Inter Arrival Time (IAT) Step that
          the xTU receiver uses to determine in which bin of the IAT histogram
          the IAT is reported. Note: In G.997.1, this parameter is called
          INMIATS. See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="7"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="INMCCds" access="readOnly">
        <description>
          The Impulse Noise Monitoring (INM) Cluster Continuation value,
          measured in DMT symbols, that the xTU receiver uses in the cluster
          indication process. Note: In G.997.1, this parameter is called INMCC.
          See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="64"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="INMINPEQMODEds" access="readOnly">
        <description>
          The Impulse Noise Monitoring (INM) Equivalent Impulse Noise
          Protection (INP) Mode that the xTU receiver uses in the computation
          of the Equivalent INP. Note: In G.997.1, this parameter is called
          INM_INPEQ_MODE. See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="3"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UpstreamAttenuation" access="readOnly"
          activeNotify="canDeny">
        <description>
          The current upstream signal loss (expressed in {{units}}).
        </description>
        <syntax>
          <int>
            <units value="0.1dB"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="DownstreamAttenuation" access="readOnly"
          activeNotify="canDeny">
        <description>
          The current downstream signal loss (expressed in {{units}}).
        </description>
        <syntax>
          <int>
            <units value="0.1dB"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="UpstreamPower" access="readOnly" activeNotify="canDeny">
        <description>
          The current output power at the CPE's DSL line (expressed in
          {{units}}).
        </description>
        <syntax>
          <int>
            <units value="0.1dBmV"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="DownstreamPower" access="readOnly"
          activeNotify="canDeny">
        <description>
          The current received power at the CPE's DSL line (expressed in
          {{units}}).
        </description>
        <syntax>
          <int>
            <units value="0.1dBmV"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="XTURVendor" access="readOnly">
        <description>
          xTU-R vendor identifier as defined in G.994.1 and T1.413. In the case
          of G.994.1 this corresponds to the four-octet provider code, which
          MUST be represented as eight hexadecimal digits. Note: This parameter
          is OPTIONAL at the G and S/T interfaces in G.997.1 Amendment 1. If
          the parameter is implemented but no value is available, it MUST have
          the value "00000000". Note: In G.997.1, this parameter is called
          "xTU-R G.994.1 Vendor ID". See ITU-T Recommendation
          {{bibref|G.997.1}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="4" maxLength="4"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="XTURCountry" access="readOnly">
        <description>
          T.35 country code of the xTU-R vendor as defined in G.994.1, where
          the two-octet value defined in G.994.1 MUST be represented as four
          hexadecimal digits. Note: This parameter is OPTIONAL at the G and S/T
          interfaces in G.997.1 Amendment 1. If the parameter is implemented
          but no value is available, it MUST have the value "0000". Note: In
          G.997.1, this parameter is called "xTU-R G.994.1 Vendor ID". See
          ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="2" maxLength="2"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="XTURANSIStd" access="readOnly">
        <description>
          xTU-R T1.413 Revision Number as defined in T1.413 Issue 2. When
          T1.413 modulation is not in use, the parameter value SHOULD be 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTURANSIRev" access="readOnly">
        <description>
          xTU-R Vendor Revision Number as defined in T1.413 Issue 2. When
          T1.413 modulation is not in use, the parameter value SHOULD be 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTUCVendor" access="readOnly">
        <description>
          xTU-C vendor identifier as defined in G.994.1 and T1.413. In the case
          of G.994.1 this corresponds to the four-octet provider code, which
          MUST be represented as eight hexadecimal digits. Note: This parameter
          is OPTIONAL at the G and S/T interfaces in G.997.1 Amendment 1. If
          the parameter is implemented but no value is available, it MUST have
          the value "00000000".
        </description>
        <syntax>
          <hexBinary>
            <size minLength="4" maxLength="4"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="XTUCCountry" access="readOnly">
        <description>
          T.35 country code of the xTU-C vendor as defined in G.994.1, where
          the two-octet value defined in G.994.1 MUST be represented as four
          hexadecimal digits. Note: This parameter is OPTIONAL at the G and S/T
          interfaces in G.997.1 Amendment 1. If the parameter is implemented
          but no value is available, it MUST have the value "0000".
        </description>
        <syntax>
          <hexBinary>
            <size minLength="2" maxLength="2"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="XTUCANSIStd" access="readOnly">
        <description>
          xTU-C T1.413 Revision Number as defined in T1.413 Issue 2. When
          T1.413 modulation is not in use, the parameter value SHOULD be 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTUCANSIRev" access="readOnly">
        <description>
          xTU-C Vendor Revision Number as defined in T1.413 Issue 2. When
          T1.413 modulation is not in use, the parameter value SHOULD be 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Line.{i}.Stats." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        Throughput statistics for this interface. The CPE MUST reset the
        interface's Stats parameters (unless otherwise stated in individual
        object or parameter descriptions) either when the interface becomes
        operationally down due to a previous administrative down (i.e. the
        interface's {{param|#.Status}} parameter transitions to a down state
        after the interface is disabled) or when the interface becomes
        administratively up (i.e. the interface's {{param|#.Enable}} parameter
        transitions from {{false}} to {{true}}). Administrative and operational
        interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>

      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes received on the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets transmitted out of the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received on the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets that contained errors preventing
          them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of outbound packets which were chosen to be
          discarded even though no errors had been detected to prevent their
          being transmitted. One possible reason for discarding such a packet
          could be to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets which were chosen to be discarded
          even though no errors had been detected to prevent their being
          delivered. One possible reason for discarding such a packet could be
          to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TotalStart" access="readOnly" activeNotify="canDeny">
        <description>
          DSL-specific statistic. The Number of {{units}} since the beginning
          of the period used for collection of {{object|Total}} statistics.
          Statistics SHOULD continue to be accumulated across CPE reboots,
          though this might not always be possible. Note: {{param}} SHOULD NOT
          be reset when the interface statistics are reset via an interface
          disable / enable cycle.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ShowtimeStart" access="readOnly" activeNotify="canDeny">
        <description>
          DSL-specific statistic. The Number of {{units}} since the most recent
          DSL Showtime - the beginning of the period used for collection of
          {{object|Showtime}} statistics. Showtime is defined as successful
          completion of the DSL link establishment process. The ''Showtime''
          statistics are those collected since the most recent establishment of
          the DSL link. Note: {{param}} SHOULD NOT be reset when the interface
          statistics are reset via an interface disable / enable cycle.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LastShowtimeStart" access="readOnly"
          activeNotify="canDeny">
        <description>
          DSL-specific statistic. The Number of {{units}} since the second most
          recent DSL Showtime-the beginning of the period used for collection
          of {{object|LastShowtime}} statistics. If the CPE has not retained
          information about the second most recent Showtime (e.g., on reboot),
          the start of ''LastShowtime'' statistics MAY temporarily coincide
          with the start of ''Showtime'' statistics. Note: {{param}} SHOULD NOT
          be reset when the interface statistics are reset via an interface
          disable / enable cycle.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="CurrentDayStart" access="readOnly"
          activeNotify="canDeny">
        <description>
          DSL-specific statistic. The Number of {{units}} since the beginning
          of the period used for collection of {{object|CurrentDay}}
          statistics. The CPE MAY align the beginning of each ''CurrentDay''
          interval with days in the UTC time zone, but is not required to do
          so. Statistics SHOULD continue to be accumulated across CPE reboots,
          though this might not always be possible. Note: {{param}} SHOULD NOT
          be reset when the interface statistics are reset via an interface
          disable / enable cycle.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QuarterHourStart" access="readOnly"
          activeNotify="canDeny">
        <description>
          DSL-specific statistic. The Number of {{units}} since the beginning
          of the period used for collection of {{object|QuarterHour}}
          statistics. The CPE MAY align the beginning of each ''QuarterHour''
          interval with real-time quarter-hour intervals, but is not required
          to do so. Statistics SHOULD continue to be accumulated across CPE
          reboots, though this might not always be possible. Note: {{param}}
          SHOULD NOT be reset when the interface statistics are reset via an
          interface disable / enable cycle.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Line.{i}.Stats.Total." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object contains DSL line total statistics. See
        {{bibref|G.997.1|Chapter 7.2.6}}. Note: The {{object}} parameters
        SHOULD NOT be reset when the interface statistics are reset via an
        interface disable / enable cycle.
      </description>

      <parameter name="ErroredSecs" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of errored seconds (ES-L as defined in ITU-T Rec.
          {{bibref|G.997.1}}). Note: This parameter is OPTIONAL at the G and
          S/T interfaces in G.997.1 Amendment 1. If the parameter is
          implemented but no value is available, its value MUST be 4294967295
          (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SeverelyErroredSecs" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of severely errored seconds (SES-L as defined in ITU-T
          Rec. {{bibref|G.997.1}}). Note: This parameter is OPTIONAL at the G
          and S/T interfaces in G.997.1 Amendment 1. If the parameter is
          implemented but no value is available, its value MUST be 4294967295
          (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Line.{i}.Stats.Showtime." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object contains DSL line statistics accumulated since the most
        recent DSL Showtime. See {{bibref|G.997.1|Chapter 7.2.6}}. Note: The
        {{object}} parameters SHOULD NOT be reset when the interface statistics
        are reset via an interface disable / enable cycle.
      </description>

      <parameter name="ErroredSecs" access="readOnly" activeNotify="canDeny">
        <description>
          Number of errored seconds since the most recent DSL Showtime (ES-L as
          defined in ITU-T Rec. {{bibref|G.997.1}}). Note: This parameter is
          OPTIONAL at the G and S/T interfaces in G.997.1 Amendment 1. If the
          parameter is implemented but no value is available, its value MUST be
          4294967295 (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SeverelyErroredSecs" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of severely errored seconds since the most recent DSL Showtime
          (SES-L as defined in ITU-T Rec. {{bibref|G.997.1}}). Note: This
          parameter is OPTIONAL at the G and S/T interfaces in G.997.1
          Amendment 1. If the parameter is implemented but no value is
          available, its value MUST be 4294967295 (the maximum for its data
          type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Line.{i}.Stats.LastShowtime." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object contains DSL line statistics accumulated since the second
        most recent DSL Showtime. See {{bibref|G.997.1|Chapter 7.2.6}}. Note:
        The {{object}} parameters SHOULD NOT be reset when the interface
        statistics are reset via an interface disable / enable cycle.
      </description>

      <parameter name="ErroredSecs" access="readOnly" activeNotify="canDeny">
        <description>
          Number of errored seconds since the second most recent DSL Showtime
          (ES-L as defined in ITU-T Rec. {{bibref|G.997.1}}). Note: This
          parameter is OPTIONAL at the G and S/T interfaces in G.997.1
          Amendment 1. If the parameter is implemented but no value is
          available, its value MUST be 4294967295 (the maximum for its data
          type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SeverelyErroredSecs" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of severely errored seconds since the second most recent DSL
          Showtime (SES-L as defined in ITU-T Rec. {{bibref|G.997.1}}). Note:
          This parameter is OPTIONAL at the G and S/T interfaces in G.997.1
          Amendment 1. If the parameter is implemented but no value is
          available, its value MUST be 4294967295 (the maximum for its data
          type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Line.{i}.Stats.CurrentDay." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object contains DSL line statistics accumulated during the current
        day. See {{bibref|G.997.1|Chapter 7.2.6}}. Note: The {{object}}
        parameters SHOULD NOT be reset when the interface statistics are reset
        via an interface disable / enable cycle.
      </description>

      <parameter name="ErroredSecs" access="readOnly" activeNotify="canDeny">
        <description>
          Number of errored seconds since the second most recent DSL Showtime
          (ES-L as defined in ITU-T Rec. {{bibref|G.997.1}}). Note: This
          parameter is OPTIONAL at the G and S/T interfaces in G.997.1
          Amendment 1. If the parameter is implemented but no value is
          available, its value MUST be 4294967295 (the maximum for its data
          type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SeverelyErroredSecs" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of severely errored seconds since the second most recent DSL
          Showtime (SES-L as defined in ITU-T Rec. {{bibref|G.997.1}}). Note:
          This parameter is OPTIONAL at the G and S/T interfaces in G.997.1
          Amendment 1. If the parameter is implemented but no value is
          available, its value MUST be 4294967295 (the maximum for its data
          type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Line.{i}.Stats.QuarterHour." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object contains DSL line statistics accumulated during the current
        quarter hour. See {{bibref|G.997.1|Chapter 7.2.6}}. Note: The
        {{object}} parameters SHOULD NOT be reset when the interface statistics
        are reset via an interface disable / enable cycle.
      </description>

      <parameter name="ErroredSecs" access="readOnly" activeNotify="canDeny">
        <description>
          Number of errored seconds since the second most recent DSL Showtime
          (ES-L as defined in ITU-T Rec. {{bibref|G.997.1}}). Note: This
          parameter is OPTIONAL at the G and S/T interfaces in G.997.1
          Amendment 1. If the parameter is implemented but no value is
          available, its value MUST be 4294967295 (the maximum for its data
          type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SeverelyErroredSecs" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of severely errored seconds since the second most recent DSL
          Showtime (SES-L as defined in ITU-T Rec. {{bibref|G.997.1}}). Note:
          This parameter is OPTIONAL at the G and S/T interfaces in G.997.1
          Amendment 1. If the parameter is implemented but no value is
          available, its value MUST be 4294967295 (the maximum for its data
          type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Line.{i}.TestParams." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object contains the DSL line test parameters that are available
        during the L0 (i.e., Showtime) state.
      </description>

      <parameter name="HLOGGds" access="readOnly" activeNotify="canDeny">
        <description>
          Number of sub-carriers per sub-carrier group in the downstream
          direction for {{param|HLOGpsds}}. Valid values are 1, 2, 4, and 8.
          Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a multimode
          device operating in a mode in which this parameter does not apply,
          the value of this parameter SHOULD be set to 1.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="HLOGGus" access="readOnly" activeNotify="canDeny">
        <description>
          Number of sub-carriers per sub-carrier group in the upstream
          direction for {{param|HLOGpsus}}. Valid values are 1, 2, 4, and 8.
          Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a multimode
          device operating in a mode in which this parameter does not apply,
          the value of this parameter SHOULD be set to 1.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="HLOGpsds" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Indicates the downstream logarithmic line characteristics
          per sub-carrier group. The maximum number of elements is 256 for
          G.992.3, and 512 for G.992.5. For G.993.2, the number of elements
          will depend on the value of {{param|HLOGGds}} but will not exceed
          512. Interpretation of the values is as defined in ITU-T Rec.
          G.997.1. Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a
          multimode device operating in a mode in which this parameter does not
          apply, the value of this parameter SHOULD be set to ''None''. Note:
          {{param}} is measured during initialization and is not updated during
          Showtime.
        </description>
        <syntax>
          <list>
            <size maxLength="2559"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="HLOGpsus" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Indicates the upstream logarithmic line characteristics per
          sub-carrier group. The maximum number of elements is 64 for G.992.3
          and G.992.5. For G.993.2, the number of elements will depend on the
          value of {{param|HLOGGus}} but will not exceed 512. Interpretation of
          the values is as defined in ITU-T Rec. G.997.1. Note: See ITU-T
          Recommendation {{bibref|G.997.1}}. For a multimode device operating
          in a mode in which this parameter does not apply, the value of this
          parameter SHOULD be set to ''None''. Note: {{param}} is measured
          during initialization and is not updated during Showtime.
        </description>
        <syntax>
          <list>
            <size maxLength="2559"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="HLOGMTds" access="readOnly" activeNotify="canDeny">
        <description>
          Indicates the number of symbols over which {{param|HLOGpsds}} was
          measured. Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a
          multimode device operating in a mode in which this parameter does not
          apply, the value of this parameter SHOULD be set to 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="HLOGMTus" access="readOnly" activeNotify="canDeny">
        <description>
          Indicates the number of symbols over which {{param|HLOGpsus}} was
          measured. Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a
          multimode device operating in a mode in which this parameter does not
          apply, the value of this parameter SHOULD be set to 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QLNGds" access="readOnly" activeNotify="canDeny">
        <description>
          Number of sub-carriers per sub-carrier group in the downstream
          direction for {{param|QLNpsds}}. Valid values are 1, 2, 4, and 8.
          Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a multimode
          device operating in a mode in which this parameter does not apply,
          the value of this parameter SHOULD be set to 1.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QLNGus" access="readOnly" activeNotify="canDeny">
        <description>
          Number of sub-carriers per sub-carrier group in the upstream
          direction for {{param|QLNpsus}}. Valid values are 1, 2, 4, and 8.
          Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a multimode
          device operating in a mode in which this parameter does not apply,
          the value of this parameter SHOULD be set to 1.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QLNpsds" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Indicates the downstream quiet line noise per subcarrier
          group. The maximum number of elements is 256 for G.992.3 and G.992.5.
          For G.993.2, the number of elements will depend on the value of
          {{param|QLNGds}} but will not exceed 512. Interpretation of the
          values is as defined in ITU-T Rec. G.997.1. Note: See ITU-T
          Recommendation {{bibref|G.997.1}}. For a multimode device operating
          in a mode in which this parameter does not apply, the value of this
          parameter SHOULD be set to ''None''. Note: {{param}} is measured
          during initialization and is not updated during Showtime.
        </description>
        <syntax>
          <list>
            <size maxLength="2047"/>
          </list>
          <int/>
        </syntax>
      </parameter>

      <parameter name="QLNpsus" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Indicates the upstream quiet line noise per subcarrier
          group. The maximum number of elements is 64 for G.992.3 and G.992.5.
          For G.993.2, the number of elements will depend on the value of
          {{param|QLNGus}} but will not exceed 512. Interpretation of the
          values is as defined in ITU-T Rec. G.997.1. Note: See ITU-T
          Recommendation {{bibref|G.997.1}}. For a multimode device operating
          in a mode in which this parameter does not apply, the value of this
          parameter SHOULD be set to ''None''. Note: {{param}} is measured
          during initialization and is not updated during Showtime.
        </description>
        <syntax>
          <list>
            <size maxLength="2047"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="QLNMTds" access="readOnly" activeNotify="canDeny">
        <description>
          Indicates the number of symbols over which {{param|QLNpsds}} was
          measured. Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a
          multimode device operating in a mode in which this parameter does not
          apply, the value of this parameter SHOULD be set to 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QLNMTus" access="readOnly" activeNotify="canDeny">
        <description>
          Indicates the number of symbols over which {{param|QLNpsus}} was
          measured. Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a
          multimode device operating in a mode in which this parameter does not
          apply, the value of this parameter SHOULD be set to 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SNRGds" access="readOnly" activeNotify="canDeny">
        <description>
          Number of sub-carriers per sub-carrier group in the downstream
          direction for {{param|SNRpsds}}. Valid values are 1, 2, 4, and 8.
          Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a multimode
          device operating in a mode in which this parameter does not apply,
          the value of this parameter SHOULD be set to 1.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SNRGus" access="readOnly" activeNotify="canDeny">
        <description>
          Number of sub-carriers per sub-carrier group in the upstream
          direction for {{param|SNRpsus}}. Valid values are 1, 2, 4, and 8.
          Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a multimode
          device operating in a mode in which this parameter does not apply,
          the value of this parameter SHOULD be set to 1.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SNRpsds" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Indicates the downstream SNR per subcarrier group. The
          maximum number of elements is 256 for G.992.3, and 512 for G.992.5.
          For G.993.2, the number of elements will depend on the value of
          {{param|SNRGds}} but will not exceed 512. Interpretation of the
          values is as defined in ITU-T Rec. G.997.1. Note: See ITU-T
          Recommendation {{bibref|G.997.1}}. For a multimode device operating
          in a mode in which this parameter does not apply, the value of this
          parameter SHOULD be set to ''None''. Note: {{param}} is first
          measured during initialization and is updated during Showtime.
        </description>
        <syntax>
          <list>
            <size maxLength="2047"/>
          </list>
          <int/>
        </syntax>
      </parameter>

      <parameter name="SNRpsus" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Indicates the upstream SNR per subcarrier group. The maximum
          number of elements is 64 for G.992.3 and G.992.5. For G.993.2, the
          number of elements will depend on the value of {{param|SNRGus}} but
          will not exceed 512. Interpretation of the values is as defined in
          ITU-T Rec. G.997.1. Note: See ITU-T Recommendation
          {{bibref|G.997.1}}. For a multimode device operating in a mode in
          which this parameter does not apply, the value of this parameter
          SHOULD be set to ''None''. Note: {{param}} is first measured during
          initialization and is updated during Showtime.
        </description>
        <syntax>
          <list>
            <size maxLength="2047"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SNRMTds" access="readOnly" activeNotify="canDeny">
        <description>
          Indicates the number of symbols over which {{param|SNRpsds}} was
          measured. Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a
          multimode device operating in a mode in which this parameter does not
          apply, the value of this parameter SHOULD be set to 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SNRMTus" access="readOnly" activeNotify="canDeny">
        <description>
          Indicates the number of symbols over which {{param|SNRpsus}} was
          measured. Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a
          multimode device operating in a mode in which this parameter does not
          apply, the value of this parameter SHOULD be set to 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LATNds" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Indicates the downstream line attenuation per usable band,
          as computed during initialization. Number of elements is dependent on
          the number of downstream bands but will exceed one only for G.993.2.
          Interpretation of {{param}} is as defined in ITU-T Rec. G.997.1.
          Note: See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="24"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="LATNus" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Indicates the upstream line attenuation per usable band, as
          computed during initialization. Number of elements is dependent on
          the number of upstream bands but will exceed one only for G.993.2.
          Interpretation of {{param}} is as defined in ITU-T Rec. G.997.1.
          Note: See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="24"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SATNds" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Indicates the downstream signal attenuation per usable band,
          as computed during the L0 (i.e., Showtime) state. Number of elements
          is dependent on the number of downstream bands but will exceed one
          only for G.993.2. Interpretation of {{param}} is as defined in ITU-T
          Rec. G.997.1. Note: See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="24"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SATNus" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Indicates the upstream signal attenuation per usable band,
          as computed during the L0 (i.e., Showtime) state. Number of elements
          is dependent on the number of downstream bands but will exceed one
          only for G.993.2. Interpretation of {{param}} is as defined in ITU-T
          Rec. G.997.1. Note: See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="24"/>
          </list>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Channel.{i}." access="readOnly"
        numEntriesParameter="ChannelNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true">
      <description>
        DSL Channel table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). This table models DSL channel(s) on
        top of physical DSL lines.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the channel. This parameter is based on
          ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the channel (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}} When {{param|Enable}} is
          {{false}} then {{param}} SHOULD normally be {{enum|Down}} (or
          {{enum|NotPresent}} or {{enum|Error}} if there is a fault condition
          on the interface). When {{param|Enable}} is changed to {{true}} then
          {{param}} SHOULD change to {{enum|Up}} if and only if the interface
          is able to transmit and receive network traffic; it SHOULD change to
          {{enum|Dormant}} if and only if the interface is operable but is
          waiting for external actions before it can transmit and receive
          network traffic (and subsequently change to {{enum|Up}} if still
          operable when the expected actions have completed); it SHOULD change
          to {{enum|LowerLayerDown}} if and only if the interface is prevented
          from entering the {{enum|Up}} state because one or more of the
          interfaces beneath it is down; it SHOULD remain in the {{enum|Error}}
          state if there is an error or other fault condition detected on the
          interface; it SHOULD remain in the {{enum|NotPresent}} state if the
          interface has missing (typically hardware) components; it SHOULD
          change to {{enum|Unknown}} if the state of the interface can not be
          determined for some reason. This parameter is based on
          ''ifOperStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent"/>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </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 textual name of the channel as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the channel entered its
          current operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowerLayers" access="readOnly">
        <description>
          {{list}} {{reference|an interface object that is stacked immediately
          below this interface object}} See {{bibref|TR-181i2|Section 4.2.1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LinkEncapsulationSupported" access="readOnly">
        <description>
          {{list}} List items indicate which link encapsulation standards and
          recommendations are supported by the {{object}} instance.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="G.992.3_Annex_K_ATM"/>
            <enumeration value="G.992.3_Annex_K_PTM"/>
            <enumeration value="G.993.2_Annex_K_ATM"/>
            <enumeration value="G.993.2_Annex_K_PTM"/>
            <enumeration value="G.994.1">
              <description>Auto</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="LinkEncapsulationUsed" access="readOnly">
        <description>
          Indicates the link encapsulation standard that the {{object}}
          instance is using for the connection. {{enum}} When ATM encapsulation
          is identified then an upper-layer {{object|.ATM.Link}} interface MUST
          be used. When PTM encapsulation is identified then an upper-layer
          {{object|.PTM.Link}} interface MUST be used.
        </description>
        <syntax>
          <string>
            <enumeration value="G.992.3_Annex_K_ATM"/>
            <enumeration value="G.992.3_Annex_K_PTM"/>
            <enumeration value="G.993.2_Annex_K_ATM"/>
            <enumeration value="G.993.2_Annex_K_PTM"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LPATH" access="readOnly">
        <description>
          Reports the index of the latency path supporting the bearer channel.
          Note: See ITU-T Recommendation {{bibref|G.997.1|Section 7.5.2.7}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="3"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="INTLVDEPTH" access="readOnly">
        <description>
          Reports the interleaver depth D for the latency path indicated in
          {{param|LPATH}}. Note: See ITU-T Recommendation {{bibref|G.997.1}}.
          For a multimode device operating in a mode in which this parameter
          does not apply, the value of this parameter SHOULD be set to 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="INTLVBLOCK" access="readOnly">
        <description>
          Reports the interleaver block length in use on the latency path
          indicated in {{param|LPATH}}. Note: See ITU-T Recommendation
          {{bibref|G.997.1}}. For a multimode device operating in a mode in
          which this parameter does not apply, the value of this parameter
          SHOULD be set to -1.
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>

      <parameter name="ActualInterleavingDelay" access="readOnly">
        <description>
          Reports the actual delay, in {{units}}, of the latency path due to
          interleaving. Note: In G.997.1, this parameter is called "Actual
          Interleaving Delay." See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ACTINP" access="readOnly">
        <description>
          Reports the actual impulse noise protection (INP) provided by the
          latency path indicated in {{param|LPATH}}. The value is the actual
          INP in the L0 (i.e., Showtime) state. Note: See ITU-T Recommendation
          {{bibref|G.997.1}}. For a multimode device operating in a mode in
          which this parameter does not apply, the value of this parameter
          SHOULD be set to -1.
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>

      <parameter name="INPREPORT" access="readOnly">
        <description>
          Reports whether the value reported in ACTINP was computed assuming
          the receiver does not use erasure decoding. Valid values are 0
          (computed per the formula assuming no erasure decoding) and 1
          (computed by taking into account erasure decoding capabilities of
          receiver). Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a
          multimode device operating in a mode in which this parameter does not
          apply, the value of this parameter SHOULD be set to {{false}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="NFEC" access="readOnly">
        <description>
          Reports the size, in {{units}}, of the Reed-Solomon codeword in use
          on the latency path indicated in {{param|LPATH}}. Note: See ITU-T
          Recommendation {{bibref|G.997.1}}. For a multimode device operating
          in a mode in which this parameter does not apply, the value of this
          parameter SHOULD be set to -1.
        </description>
        <syntax>
          <int>
            <units value="octets"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="RFEC" access="readOnly">
        <description>
          Reports the number of redundancy bytes per Reed-Solomon codeword on
          the latency path indicated in {{param|LPATH}}. Note: See ITU-T
          Recommendation {{bibref|G.997.1}}. For a multimode device operating
          in a mode in which this parameter does not apply, the value of this
          parameter SHOULD be set to -1.
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>

      <parameter name="LSYMB" access="readOnly">
        <description>
          Reports the number of bits per symbol assigned to the latency path
          indicated in {{param|LPATH}}. This value does not include overhead
          due to trellis coding. Note: See ITU-T Recommendation
          {{bibref|G.997.1}}. For a multimode device operating in a mode in
          which this parameter does not apply, the value of this parameter
          SHOULD be set to -1.
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>

      <parameter name="UpstreamCurrRate" access="readOnly"
          activeNotify="canDeny">
        <description>
          The current physical layer aggregate data rate (expressed in
          {{units}}) of the upstream DSL connection. Note: If the parameter is
          implemented but no value is available, it MUST have the value
          4294967295 (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DownstreamCurrRate" access="readOnly"
          activeNotify="canDeny">
        <description>
          The current physical layer aggregate data rate (expressed in
          {{units}}) of the downstream DSL connection. Note: If the parameter
          is implemented but no value is available, it MUST have the value
          4294967295 (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Channel.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Throughput statistics for this interface. The CPE MUST reset the
        interface's Stats parameters (unless otherwise stated in individual
        object or parameter descriptions) either when the interface becomes
        operationally down due to a previous administrative down (i.e. the
        interface's {{param|#.Status}} parameter transitions to a down state
        after the interface is disabled) or when the interface becomes
        administratively up (i.e. the interface's {{param|#.Enable}} parameter
        transitions from {{false}} to {{true}}). Administrative and operational
        interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>

      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes received on the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets transmitted out of the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received on the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets that contained errors preventing
          them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of outbound packets which were chosen to be
          discarded even though no errors had been detected to prevent their
          being transmitted. One possible reason for discarding such a packet
          could be to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets which were chosen to be discarded
          even though no errors had been detected to prevent their being
          delivered. One possible reason for discarding such a packet could be
          to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TotalStart" access="readOnly" activeNotify="canDeny">
        <description>
          DSL-specific statistic. The Number of {{units}} since the beginning
          of the period used for collection of {{object|Total}} statistics.
          Statistics SHOULD continue to be accumulated across CPE reboots,
          though this might not always be possible. Note: {{param}} SHOULD NOT
          be reset when the interface statistics are reset via an interface
          disable / enable cycle.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ShowtimeStart" access="readOnly" activeNotify="canDeny">
        <description>
          DSL-specific statistic. The Number of {{units}} since the most recent
          DSL Showtime - the beginning of the period used for collection of
          {{object|Showtime}} statistics. Showtime is defined as successful
          completion of the DSL link establishment process. The ''Showtime''
          statistics are those collected since the most recent establishment of
          the DSL link. Note: {{param}} SHOULD NOT be reset when the interface
          statistics are reset via an interface disable / enable cycle.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LastShowtimeStart" access="readOnly"
          activeNotify="canDeny">
        <description>
          DSL-specific statistic. The Number of {{units}} since the second most
          recent DSL Showtime-the beginning of the period used for collection
          of {{object|LastShowtime}} statistics. If the CPE has not retained
          information about the second most recent Showtime (e.g., on reboot),
          the start of ''LastShowtime'' statistics MAY temporarily coincide
          with the start of ''Showtime'' statistics. Note: {{param}} SHOULD NOT
          be reset when the interface statistics are reset via an interface
          disable / enable cycle.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="CurrentDayStart" access="readOnly"
          activeNotify="canDeny">
        <description>
          DSL-specific statistic. The Number of {{units}} since the beginning
          of the period used for collection of {{object|CurrentDay}}
          statistics. The CPE MAY align the beginning of each ''CurrentDay''
          interval with days in the UTC time zone, but is not required to do
          so. Statistics SHOULD continue to be accumulated across CPE reboots,
          though this might not always be possible. Note: {{param}} SHOULD NOT
          be reset when the interface statistics are reset via an interface
          disable / enable cycle.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QuarterHourStart" access="readOnly"
          activeNotify="canDeny">
        <description>
          DSL-specific statistic. The Number of {{units}} since the beginning
          of the period used for collection of {{object|QuarterHour}}
          statistics. The CPE MAY align the beginning of each ''QuarterHour''
          interval with real-time quarter-hour intervals, but is not required
          to do so. Statistics SHOULD continue to be accumulated across CPE
          reboots, though this might not always be possible. Note: {{param}}
          SHOULD NOT be reset when the interface statistics are reset via an
          interface disable / enable cycle.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Channel.{i}.Stats.Total." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object contains DSL channel total statistics {{bibref|G.997.1}}.
        Note: The {{object}} parameters SHOULD NOT be reset when the interface
        statistics are reset via an interface disable / enable cycle.
      </description>

      <parameter name="XTURFECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of FEC errors detected (FEC-C as defined in ITU-T Rec.
          {{bibref|G.997.1}}). Note: If the parameter is implemented but no
          value is available, its value MUST be 4294967295 (the maximum for its
          data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTUCFECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of FEC errors detected by the ATU-C (FEC-CFE as defined
          in ITU-T Rec. {{bibref|G.997.1}}). Note: If the parameter is
          implemented but no value is available, its value MUST be 4294967295
          (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTURHECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of HEC errors detected (HEC-P as defined in ITU-T Rec.
          {{bibref|G.997.1}}). Note: If the parameter is implemented but no
          value is available, its value MUST be 4294967295 (the maximum for its
          data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTUCHECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of HEC errors detected by the ATU-C (HEC-PFE as defined
          in ITU-T Rec. {{bibref|G.997.1}}). Note: If the parameter is
          implemented but no value is available, its value MUST be 4294967295
          (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTURCRCErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of CRC errors detected (CV-C as defined in ITU-T Rec.
          {{bibref|G.997.1}}). Note: If the parameter is implemented but no
          value is available, its value MUST be 4294967295 (the maximum for its
          data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTUCCRCErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Total number of CRC errors detected by the ATU-C (CV-CFE as defined
          in ITU-T Rec. {{bibref|G.997.1}}). Note: If the parameter is
          implemented but no value is available, its value MUST be 4294967295
          (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Channel.{i}.Stats.Showtime." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object contains DSL channel statistics accumulated since the most
        recent DSL Showtime {{bibref|G.997.1}}. Note: The {{object}} parameters
        SHOULD NOT be reset when the interface statistics are reset via an
        interface disable / enable cycle.
      </description>

      <parameter name="XTURFECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of FEC errors detected since the most recent DSL Showtime
          (FEC-C as defined in ITU-T Rec. {{bibref|G.997.1}}). Note: If the
          parameter is implemented but no value is available, its value MUST be
          4294967295 (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTUCFECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of FEC errors detected by the ATU-C since the most recent DSL
          Showtime (FEC-CFE as defined in ITU-T Rec. {{bibref|G.997.1}}). Note:
          If the parameter is implemented but no value is available, its value
          MUST be 4294967295 (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTURHECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of HEC errors detected since the most recent DSL Showtime
          (HEC-P as defined in ITU-T Rec. {{bibref|G.997.1}}). Note: If the
          parameter is implemented but no value is available, its value MUST be
          4294967295 (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTUCHECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of HEC errors detected by the ATU-C since the most recent DSL
          Showtime (HEC-PFE as defined in ITU-T Rec. {{bibref|G.997.1}}). Note:
          If the parameter is implemented but no value is available, its value
          MUST be 4294967295 (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTURCRCErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of CRC errors detected since the most recent DSL Showtime
          (CV-C as defined in ITU-T Rec. {{bibref|G.997.1}}). Note: If the
          parameter is implemented but no value is available, its value MUST be
          4294967295 (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTUCCRCErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of CRC errors detected by the ATU-C since the most recent DSL
          Showtime (CV-CFE as defined in ITU-T Rec. {{bibref|G.997.1}}). Note:
          If the parameter is implemented but no value is available, its value
          MUST be 4294967295 (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Channel.{i}.Stats.LastShowtime."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        This object contains DSL channel statistics accumulated since the
        second most recent DSL Showtime {{bibref|G.997.1}}. Note: The
        {{object}} parameters SHOULD NOT be reset when the interface statistics
        are reset via an interface disable / enable cycle.
      </description>

      <parameter name="XTURFECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of FEC errors detected since the second most recent DSL
          Showtime (FEC-C as defined in ITU-T Rec. {{bibref|G.997.1}}). Note:
          If the parameter is implemented but no value is available, its value
          MUST be 4294967295 (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTUCFECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of FEC errors detected by the ATU-C since the second most
          recent DSL Showtime (FEC-CFE as defined in ITU-T Rec.
          {{bibref|G.997.1}}). Note: If the parameter is implemented but no
          value is available, its value MUST be 4294967295 (the maximum for its
          data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTURHECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of HEC errors detected since the second most recent DSL
          Showtime (HEC-P as defined in ITU-T Rec. {{bibref|G.997.1}}). Note:
          If the parameter is implemented but no value is available, its value
          MUST be 4294967295 (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTUCHECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of HEC errors detected by the ATU-C since the second most
          recent DSL Showtime (HEC-PFE as defined in ITU-T Rec.
          {{bibref|G.997.1}}). Note: If the parameter is implemented but no
          value is available, its value MUST be 4294967295 (the maximum for its
          data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTURCRCErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of CRC errors detected since the second most recent DSL
          Showtime (CV-C as defined in ITU-T Rec. {{bibref|G.997.1}}). Note: If
          the parameter is implemented but no value is available, its value
          MUST be 4294967295 (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTUCCRCErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of CRC errors detected by the ATU-C since the second most
          recent DSL Showtime (CV-CFE as defined in ITU-T Rec.
          {{bibref|G.997.1}}). Note: If the parameter is implemented but no
          value is available, its value MUST be 4294967295 (the maximum for its
          data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Channel.{i}.Stats.CurrentDay." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object contains DSL channel statistics accumulated during the
        current day {{bibref|G.997.1}}. Note: The {{object}} parameters SHOULD
        NOT be reset when the interface statistics are reset via an interface
        disable / enable cycle.
      </description>

      <parameter name="XTURFECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of FEC errors detected since the second most recent DSL
          Showtime (FEC-C as defined in ITU-T Rec. {{bibref|G.997.1}}). Note:
          If the parameter is implemented but no value is available, its value
          MUST be 4294967295 (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTUCFECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of FEC errors detected by the ATU-C since the second most
          recent DSL Showtime (FEC-CFE as defined in ITU-T Rec.
          {{bibref|G.997.1}}). Note: If the parameter is implemented but no
          value is available, its value MUST be 4294967295 (the maximum for its
          data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTURHECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of HEC errors detected since the second most recent DSL
          Showtime (HEC-P as defined in ITU-T Rec. {{bibref|G.997.1}}). Note:
          If the parameter is implemented but no value is available, its value
          MUST be 4294967295 (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTUCHECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of HEC errors detected by the ATU-C since the second most
          recent DSL Showtime (HEC-PFE as defined in ITU-T Rec.
          {{bibref|G.997.1}}). Note: If the parameter is implemented but no
          value is available, its value MUST be 4294967295 (the maximum for its
          data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTURCRCErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of CRC errors detected since the second most recent DSL
          Showtime (CV-C as defined in ITU-T Rec. {{bibref|G.997.1}}). Note: If
          the parameter is implemented but no value is available, its value
          MUST be 4294967295 (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTUCCRCErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of CRC errors detected by the ATU-C since the second most
          recent DSL Showtime (CV-CFE as defined in ITU-T Rec.
          {{bibref|G.997.1}}). Note: If the parameter is implemented but no
          value is available, its value MUST be 4294967295 (the maximum for its
          data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Channel.{i}.Stats.QuarterHour." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object contains DSL channel statistics accumulated during the
        current quarter hour {{bibref|G.997.1}}. Note: The {{object}}
        parameters SHOULD NOT be reset when the interface statistics are reset
        via an interface disable / enable cycle.
      </description>

      <parameter name="XTURFECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of FEC errors detected since the second most recent DSL
          Showtime (FEC-C as defined in ITU-T Rec. {{bibref|G.997.1}}). Note:
          If the parameter is implemented but no value is available, its value
          MUST be 4294967295 (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTUCFECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of FEC errors detected by the ATU-C since the second most
          recent DSL Showtime (FEC-CFE as defined in ITU-T Rec.
          {{bibref|G.997.1}}). Note: If the parameter is implemented but no
          value is available, its value MUST be 4294967295 (the maximum for its
          data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTURHECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of HEC errors detected since the second most recent DSL
          Showtime (HEC-P as defined in ITU-T Rec. {{bibref|G.997.1}}). Note:
          If the parameter is implemented but no value is available, its value
          MUST be 4294967295 (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTUCHECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of HEC errors detected by the ATU-C since the second most
          recent DSL Showtime (HEC-PFE as defined in ITU-T Rec.
          {{bibref|G.997.1}}). Note: If the parameter is implemented but no
          value is available, its value MUST be 4294967295 (the maximum for its
          data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTURCRCErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of CRC errors detected since the second most recent DSL
          Showtime (CV-C as defined in ITU-T Rec. {{bibref|G.997.1}}). Note: If
          the parameter is implemented but no value is available, its value
          MUST be 4294967295 (the maximum for its data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="XTUCCRCErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Number of CRC errors detected by the ATU-C since the second most
          recent DSL Showtime (CV-CFE as defined in ITU-T Rec.
          {{bibref|G.997.1}}). Note: If the parameter is implemented but no
          value is available, its value MUST be 4294967295 (the maximum for its
          data type).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.BondingGroup.{i}." access="readOnly"
        numEntriesParameter="BondingGroupNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true">
      <description>
        DSL bonding group table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). Each instance is a bonding group, and
        is expected to be stacked above a {{object|#.Channel}} instance for
        each bonded channel in the group. Many of the parameters within this
        object, including {{param|LowerLayers}}, are read-only because bonding
        is not expected to be configured via {{bibref|TR-069}}. The DSL bonding
        data model is closely aligned with {{bibref|TR-159}}. Corresponds to
        {{bibref|TR-159}} ''oBondingGroup''.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="GroupID"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the bonding group. This parameter is based on
          ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the bonding group (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}} When {{param|Enable}} is
          {{false}} then {{param}} SHOULD normally be {{enum|Down}} (or
          {{enum|NotPresent}} or {{enum|Error}} if there is a fault condition
          on the interface). When {{param|Enable}} is changed to {{true}} then
          {{param}} SHOULD change to {{enum|Up}} if and only if the interface
          is able to transmit and receive network traffic; it SHOULD change to
          {{enum|Dormant}} if and only if the interface is operable but is
          waiting for external actions before it can transmit and receive
          network traffic (and subsequently change to {{enum|Up}} if still
          operable when the expected actions have completed); it SHOULD change
          to {{enum|LowerLayerDown}} if and only if the interface is prevented
          from entering the {{enum|Up}} state because one or more of the
          interfaces beneath it is down; it SHOULD remain in the {{enum|Error}}
          state if there is an error or other fault condition detected on the
          interface; it SHOULD remain in the {{enum|NotPresent}} state if the
          interface has missing (typically hardware) components; it SHOULD
          change to {{enum|Unknown}} if the state of the interface can not be
          determined for some reason. This parameter is based on
          ''ifOperStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent"/>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </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 textual name of the bonding group as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the bonding group entered its
          current operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowerLayers" access="readOnly">
        <description>
          {{list}} {{reference|an interface object that is stacked immediately
          below this interface object}} See {{bibref|TR-181i2|Section 4.2.1}}.
          {{param}} is read-only for this object because bonding is expected to
          be configured by the CPE, not by the ACS.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="GroupStatus" access="readOnly">
        <description>
          {{list}} Indicates the current fault status of the DSL bonding group.
          {{enum}} Corresponds to {{bibref|TR-159}}
          ''oBondingGroup.aGroupStatus''.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="NoPeer">
              <description>Peer physical layer is unreachable</description>
            </enumeration>
            <enumeration value="PeerPowerLoss">
              <description>
                Local device received a "dying gasp" message (preceding a
                loss-of-power) from the peer device
              </description>
            </enumeration>
            <enumeration value="PeerBondSchemeMismatch">
              <description>
                Operating bonding scheme of the peer port is different from the
                local one
              </description>
            </enumeration>
            <enumeration value="LowRate">
              <description>
                Upstream or downstream data rate is at or below threshold
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="GroupID" access="readOnly">
        <description>
          DSL bonding group ID. Corresponds to {{bibref|TR-159}}
          ''oBondingGroup.aGroupID''.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="BondSchemesSupported" access="readOnly">
        <description>
          {{list}} Supported DSL bonding schemes. {{enum}} Corresponds to
          {{bibref|TR-159}} ''oBondingGroup.aGroupBondSchemesSupported''.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="ATM">
              <description>{{bibref|G.998.1}} ATM-based bonding</description>
            </enumeration>
            <enumeration value="Ethernet">
              <description>
                {{bibref|G.998.2}} Ethernet-based bonding
              </description>
            </enumeration>
            <enumeration value="TDIM">
              <description>{{bibref|G.998.3}} TDIM-based bonding</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="BondScheme" access="readOnly">
        <description>
          Currently operating bonding scheme. Corresponds to {{bibref|TR-159}}
          ''aGroupOperBondScheme''.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="BondSchemesSupported"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="GroupCapacity" access="readOnly">
        <description>
          DSL bonding group capacity, i.e. the maximum number of channels that
          can be bonded in this group. Corresponds to {{bibref|TR-159}}
          ''oBondingGroup.aGroupCapacity''.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="32"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RunningTime" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} for which this bonding group has
          been operationally up. Corresponds to {{bibref|G.998.1|section
          11.4.2}} ''Group Running Time''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TargetUpRate" access="readOnly">
        <description>
          Desired upstream data rate in {{units}} for this DSL bonding group
          (zero indicates best effort). Corresponds to {{bibref|TR-159}}
          ''oBondingGroup.aGroupTargetUpRate''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bits per second"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TargetDownRate" access="readOnly">
        <description>
          Desired downstream data rate in {{units}} for DSL bonding group (zero
          indicates best effort). Corresponds to {{bibref|TR-159}}
          ''oBondingGroup.aGroupTargetDownRate''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bits per second"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ThreshLowUpRate" access="readOnly">
        <description>
          Threshold upstream data rate in {{units}} for this DSL bonding group.
          {{param|GroupStatus}} will include {{enum|LowRate|GroupStatus}}
          whenever the upstream rate is less than this threshold. Corresponds
          to {{bibref|TR-159}} ''oBondingGroup.aGroupThreshLowUpRate''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bits per second"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ThreshLowDownRate" access="readOnly">
        <description>
          Threshold downstream data rate in {{units}} for this DSL bonding
          group. {{param|GroupStatus}} will include
          {{enum|LowRate|GroupStatus}} whenever the downstream rate is less
          than this threshold. Corresponds to {{bibref|TR-159}}
          ''oBondingGroup.aGroupThreshLowDownRate''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bits per second"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UpstreamDifferentialDelayTolerance" access="readOnly">
        <description>
          The maximum upstream differential delay in {{units}} among member
          links in a bonding group. Corresponds to {{bibref|G.998.1|section
          11.4.1}} ''Differential Delay Tolerance''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DownstreamDifferentialDelayTolerance" access="readOnly">
        <description>
          The maximum downstream differential delay in {{units}} among member
          links in a bonding group. Corresponds to {{bibref|G.998.1|section
          11.4.1}} ''Differential Delay Tolerance''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="BondedChannelNumberOfEntries" access="readOnly">
        <description>
          {{numentries}} Corresponds to {{bibref|TR-159}}
          ''oBondingGroup.aGroupNumChannels''.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="32"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.BondingGroup.{i}.BondedChannel.{i}."
        access="readOnly" numEntriesParameter="BondedChannelNumberOfEntries"
        minEntries="0" maxEntries="unbounded">
      <description>
        DSL bonded channel table. Each table entry represents a bonded channel
        within the bonding group, and is associated with exactly one
        {{object|##.Channel}} instance. There MUST be an instance of {{object}}
        for each DSL channel that is bonded. When a {{object|##.Channel}} is no
        longer bonded, then the CPE MUST delete the corresponding {{object}}
        instance. However, when a bonded {{object|##.Channel}} becomes
        disabled, the channel remains bonded and so the corresponding
        {{object}} instance MUST NOT be deleted.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="Channel"/>
      </uniqueKey>

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

      <parameter name="Channel" access="readOnly">
        <description>
          {{reference}}This is the channel that is being bonded. This is
          read-only because bonding is expected to be configured by the CPE,
          not by the ACS.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".DSL.Channel."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        Per-channel {{bibref|G.998.2}} Ethernet-based bonding parameters. This
        object MUST be present if, and only if, {{param|##.BondScheme}} is
        {{enum|Ethernet|##.BondScheme}}.
      </description>
    </object>

    <object
        name="Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        Per-channel {{bibref|G.998.2}} Ethernet-based bonding statistics. These
        relate to the {{bibref|G.998.2}} PME (Physical Medium Entity)
        Aggregation Function (PAF) lower layer (per-channel) interfaces. The
        CPE MUST reset the Stats parameters either when the interface becomes
        operationally down due to a previous administrative down (i.e. the
        interface's {{param|###.Status}} parameter transitions to a down state
        after the interface is disabled) or when the interface becomes
        administratively up (i.e. the interface's {{param|###.Enable}}
        parameter transitions from {{false}} to {{true}}). Administrative and
        operational interface status is discussed in {{bibref|TR-181i2|section
        4.2.2}}.
      </description>

      <parameter name="UnderflowErrorsSent" access="readOnly">
        <description>
          Number of underflow errors sent, i.e. on the transmit side of the
          interface.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="CRCErrorsReceived" access="readOnly">
        <description>
          Number of CRC errors received, i.e. on the receive side of the
          interface.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AlignmentErrorsReceived" access="readOnly">
        <description>
          Number of alignment errors received, i.e. on the receive side of the
          interface.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ShortPacketsReceived" access="readOnly">
        <description>
          Number of short packets received, i.e. on the receive side of the
          interface.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LongPacketsReceived" access="readOnly">
        <description>
          Number of long packets received, i.e. on the receive side of the
          interface.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="OverflowErrorsReceived" access="readOnly">
        <description>
          Number of overflow errors received, i.e. on the receive side of the
          interface.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PauseFramesReceived" access="readOnly">
        <description>
          Number of pause frames received, i.e. on the receive side of the
          interface.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="FramesDropped" access="readOnly">
        <description>
          Number of frames dropped, e.g. because the receive queue is full.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.BondingGroup.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Throughput statistics for this interface. The CPE MUST reset the
        interface's Stats parameters (unless otherwise stated in individual
        object or parameter descriptions) either when the interface becomes
        operationally down due to a previous administrative down (i.e. the
        interface's {{param|#.Status}} parameter transitions to a down state
        after the interface is disabled) or when the interface becomes
        administratively up (i.e. the interface's {{param|#.Enable}} parameter
        transitions from {{false}} to {{true}}). Administrative and operational
        interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>

      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes received on the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets transmitted out of the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received on the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets that contained errors preventing
          them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets requested for transmission which were not
          addressed to a multicast or broadcast address at this layer,
          including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of outbound packets which were chosen to be
          discarded even though no errors had been detected to prevent their
          being transmitted. One possible reason for discarding such a packet
          could be to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets which were chosen to be discarded
          even though no errors had been detected to prevent their being
          delivered. One possible reason for discarding such a packet could be
          to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a multicast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a broadcast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TotalStart" access="readOnly" activeNotify="canDeny">
        <description>
          DSL-specific statistic. The Number of {{units}} since the beginning
          of the period used for collection of {{object|Total}} statistics.
          Statistics SHOULD continue to be accumulated across CPE reboots,
          though this might not always be possible. Note: {{param}} SHOULD NOT
          be reset when the interface statistics are reset via an interface
          disable / enable cycle.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="CurrentDayStart" access="readOnly"
          activeNotify="canDeny">
        <description>
          DSL-specific statistic. The Number of {{units}} since the beginning
          of the period used for collection of {{object|CurrentDay}}
          statistics. The CPE MAY align the beginning of each CurrentDay
          interval with days in the UTC time zone, but is not required to do
          so. Statistics SHOULD continue to be accumulated across CPE reboots,
          though this might not always be possible. Note: {{param}} SHOULD NOT
          be reset when the interface statistics are reset via an interface
          disable / enable cycle.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QuarterHourStart" access="readOnly"
          activeNotify="canDeny">
        <description>
          DSL-specific statistic. The Number of {{units}} since the beginning
          of the period used for collection of {{object|QuarterHour}}
          statistics. The CPE MAY align the beginning of each QuarterHour
          interval with real-time quarter-hour intervals, but is not required
          to do so. Statistics SHOULD continue to be accumulated across CPE
          reboots, though this might not always be possible. Note: {{param}}
          SHOULD NOT be reset when the interface statistics are reset via an
          interface disable / enable cycle.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.BondingGroup.{i}.Stats.Total." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Total statistics for this bonding group. Note: The {{object}}
        parameters SHOULD NOT be reset when the interface statistics are reset
        via an interface disable / enable cycle.
      </description>

      <parameter name="FailureReasons" access="readOnly">
        <description>
          {{list}} Indicates the failure conditions that have occurred during
          the accumulation period. {{enum}} Corresponds to
          {{bibref|G.998.1|section 11.4.3}} ''Current Group Failure Reason''.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="LowRate">
              <description>Minimum data rate not met</description>
            </enumeration>
            <enumeration value="ExcessiveDelay">
              <description>Differential delay tolerance exceeded</description>
            </enumeration>
            <enumeration value="InsufficientBuffers">
              <description>Insufficient buffers on receiver</description>
            </enumeration>
            <enumeration value="Other">
              <description>Other failure occurred</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="UpstreamRate" access="readOnly">
        <description>
          The achieved upstream data rate in {{units}} (which might change
          subject to dynamic link usage conditions). Corresponds to
          {{bibref|G.998.1|section 11.4.2}} ''Achieved Aggregate Data Rate''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bits per second"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DownstreamRate" access="readOnly">
        <description>
          The achieved downstream data rate in {{units}} (which might change
          subject to dynamic link usage conditions). Corresponds to
          {{bibref|G.998.1|section 11.4.2}} ''Achieved Aggregate Data Rate''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bits per second"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UpstreamPacketLoss" access="readOnly">
        <description>
          The total number of upstream packets that were lost at aggregation
          output from a bonding group during the accumulation period.
          Corresponds to {{bibref|G.998.1|section 11.4.2}} ''Group Rx Cell Loss
          Count''.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DownstreamPacketLoss" access="readOnly">
        <description>
          The total number of downstream packets that were lost at aggregation
          output from a bonding group during the accumulation period.
          Corresponds to {{bibref|G.998.1|section 11.4.2}} ''Group Rx Cell Loss
          Count''.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UpstreamDifferentialDelay" access="readOnly">
        <description>
          The achieved upstream differential delay in {{units}} (which might
          change subject to dynamic link usage conditions).
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DownstreamDifferentialDelay" access="readOnly">
        <description>
          The achieved downstream differential delay in {{units}} (which might
          change subject to dynamic link usage conditions).
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="FailureCount" access="readOnly">
        <description>
          The number of times that the group was declared ''Unavailable''
          during the accumulation period. Corresponds to
          {{bibref|G.998.1|Section 11.4.3}} ''Group Failure Count''.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErroredSeconds" access="readOnly">
        <description>
          The time in {{units}} during which the group was declared ''Errored''
          during the accumulation period. Corresponds to {{bibref|TR-159}}
          ''oBondingGroup.aGroupPerf**ES''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SeverelyErroredSeconds" access="readOnly">
        <description>
          The time in {{units}} during which the group was declared
          ''SeverelyErrored'' during the accumulation period. Corresponds to
          {{bibref|TR-159}} ''oBondingGroup.aGroupPerf**SES''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UnavailableSeconds" access="readOnly">
        <description>
          The time in {{units}} during which the group was declared
          ''Unavailable'' during the accumulation period. Corresponds to
          {{bibref|TR-159}} ''oBondingGroup.aGroupPerf**UAS''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.BondingGroup.{i}.Stats.CurrentDay."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        Current day statistics for this bonding group. Note: The {{object}}
        parameters SHOULD NOT be reset when the interface statistics are reset
        via an interface disable / enable cycle.
      </description>

      <parameter name="FailureReasons" access="readOnly">
        <description>
          {{list}} Indicates the failure conditions that have occurred during
          the accumulation period. {{enum}} Corresponds to
          {{bibref|G.998.1|section 11.4.3}} ''Current Group Failure Reason''.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="LowRate">
              <description>Minimum data rate not met</description>
            </enumeration>
            <enumeration value="ExcessiveDelay">
              <description>Differential delay tolerance exceeded</description>
            </enumeration>
            <enumeration value="InsufficientBuffers">
              <description>Insufficient buffers on receiver</description>
            </enumeration>
            <enumeration value="Other">
              <description>Other failure occurred</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="UpstreamRate" access="readOnly">
        <description>
          The achieved upstream data rate in {{units}} (which might change
          subject to dynamic link usage conditions). Corresponds to
          {{bibref|G.998.1|section 11.4.2}} ''Achieved Aggregate Data Rate''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bits per second"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DownstreamRate" access="readOnly">
        <description>
          The achieved downstream data rate in {{units}} (which might change
          subject to dynamic link usage conditions). Corresponds to
          {{bibref|G.998.1|section 11.4.2}} ''Achieved Aggregate Data Rate''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bits per second"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UpstreamPacketLoss" access="readOnly">
        <description>
          The total number of upstream packets that were lost at aggregation
          output from a bonding group during the accumulation period.
          Corresponds to {{bibref|G.998.1|section 11.4.2}} ''Group Rx Cell Loss
          Count''.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DownstreamPacketLoss" access="readOnly">
        <description>
          The total number of downstream packets that were lost at aggregation
          output from a bonding group during the accumulation period.
          Corresponds to {{bibref|G.998.1|section 11.4.2}} ''Group Rx Cell Loss
          Count''.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UpstreamDifferentialDelay" access="readOnly">
        <description>
          The achieved upstream differential delay in {{units}} (which might
          change subject to dynamic link usage conditions).
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DownstreamDifferentialDelay" access="readOnly">
        <description>
          The achieved downstream differential delay in {{units}} (which might
          change subject to dynamic link usage conditions).
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="FailureCount" access="readOnly">
        <description>
          The number of times that the group was declared ''Unavailable''
          during the accumulation period. Corresponds to
          {{bibref|G.998.1|Section 11.4.3}} ''Group Failure Count''.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErroredSeconds" access="readOnly">
        <description>
          The time in {{units}} during which the group was declared ''Errored''
          during the accumulation period. Corresponds to {{bibref|TR-159}}
          ''oBondingGroup.aGroupPerf**ES''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SeverelyErroredSeconds" access="readOnly">
        <description>
          The time in {{units}} during which the group was declared
          ''SeverelyErrored'' during the accumulation period. Corresponds to
          {{bibref|TR-159}} ''oBondingGroup.aGroupPerf**SES''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UnavailableSeconds" access="readOnly">
        <description>
          The time in {{units}} during which the group was declared
          ''Unavailable'' during the accumulation period. Corresponds to
          {{bibref|TR-159}} ''oBondingGroup.aGroupPerf**UAS''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.BondingGroup.{i}.Stats.QuarterHour."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        Current quarter hour statistics for this bonding group. Note: The
        {{object}} parameters SHOULD NOT be reset when the interface statistics
        are reset via an interface disable / enable cycle.
      </description>

      <parameter name="FailureReasons" access="readOnly">
        <description>
          {{list}} Indicates the failure conditions that have occurred during
          the accumulation period. {{enum}} Corresponds to
          {{bibref|G.998.1|section 11.4.3}} ''Current Group Failure Reason''.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="LowRate">
              <description>Minimum data rate not met</description>
            </enumeration>
            <enumeration value="ExcessiveDelay">
              <description>Differential delay tolerance exceeded</description>
            </enumeration>
            <enumeration value="InsufficientBuffers">
              <description>Insufficient buffers on receiver</description>
            </enumeration>
            <enumeration value="Other">
              <description>Other failure occurred</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="UpstreamRate" access="readOnly">
        <description>
          The achieved upstream data rate in {{units}} (which might change
          subject to dynamic link usage conditions). Corresponds to
          {{bibref|G.998.1|section 11.4.2}} ''Achieved Aggregate Data Rate''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bits per second"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DownstreamRate" access="readOnly">
        <description>
          The achieved downstream data rate in {{units}} (which might change
          subject to dynamic link usage conditions). Corresponds to
          {{bibref|G.998.1|section 11.4.2}} ''Achieved Aggregate Data Rate''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bits per second"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UpstreamPacketLoss" access="readOnly">
        <description>
          The total number of upstream packets that were lost at aggregation
          output from a bonding group during the accumulation period.
          Corresponds to {{bibref|G.998.1|section 11.4.2}} ''Group Rx Cell Loss
          Count''.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DownstreamPacketLoss" access="readOnly">
        <description>
          The total number of downstream packets that were lost at aggregation
          output from a bonding group during the accumulation period.
          Corresponds to {{bibref|G.998.1|section 11.4.2}} ''Group Rx Cell Loss
          Count''.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UpstreamDifferentialDelay" access="readOnly">
        <description>
          The achieved upstream differential delay in {{units}} (which might
          change subject to dynamic link usage conditions).
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DownstreamDifferentialDelay" access="readOnly">
        <description>
          The achieved downstream differential delay in {{units}} (which might
          change subject to dynamic link usage conditions).
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="FailureCount" access="readOnly">
        <description>
          The number of times that the group was declared ''Unavailable''
          during the accumulation period. Corresponds to
          {{bibref|G.998.1|Section 11.4.3}} ''Group Failure Count''.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErroredSeconds" access="readOnly">
        <description>
          The time in {{units}} during which the group was declared ''Errored''
          during the accumulation period. Corresponds to {{bibref|TR-159}}
          ''oBondingGroup.aGroupPerf**ES''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SeverelyErroredSeconds" access="readOnly">
        <description>
          The time in {{units}} during which the group was declared
          ''SeverelyErrored'' during the accumulation period. Corresponds to
          {{bibref|TR-159}} ''oBondingGroup.aGroupPerf**SES''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="UnavailableSeconds" access="readOnly">
        <description>
          The time in {{units}} during which the group was declared
          ''Unavailable'' during the accumulation period. Corresponds to
          {{bibref|TR-159}} ''oBondingGroup.aGroupPerf**UAS''.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.BondingGroup.{i}.Ethernet." access="readOnly"
        minEntries="0" maxEntries="1">
      <description>
        Ethernet-based bonding parameters {{bibref|G.998.2}}. This object MUST
        be present if, and only if, {{param|#.BondScheme}} is
        {{enum|Ethernet|#.BondScheme}}.
      </description>
    </object>

    <object name="Device.DSL.BondingGroup.{i}.Ethernet.Stats."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        {{bibref|G.998.2}} Ethernet-based bonding statistics. These relate to
        the {{bibref|G.998.2}} PME (Physical Medium Entity) Aggregation
        Function (PAF) and to its upper layer interface. PAF lower layer
        interface statistics are in the
        {{object|##.BondedChannel.{i}.Ethernet.Stats}} objects. The CPE MUST
        reset the Stats parameters either when the interface becomes
        operationally down due to a previous administrative down (i.e. the
        interface's {{param|##.Status}} parameter transitions to a down state
        after the interface is disabled) or when the interface becomes
        administratively up (i.e. the interface's {{param|##.Enable}} parameter
        transitions from {{false}} to {{true}}). Administrative and operational
        interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>

      <parameter name="PAFErrors" access="readOnly">
        <description>
          Number of PAF errors. Corresponds to {{bibref|TR-159}}
          ''oBondETH.aEthRxErrors''.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PAFSmallFragments" access="readOnly">
        <description>
          Number of PAF Small Fragment events. Corresponds to {{bibref|TR-159}}
          ''oBondETH.aEthRxSmallFragments''.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PAFLargeFragments" access="readOnly">
        <description>
          Number of PAF Large Fragment events. Corresponds to {{bibref|TR-159}}
          ''oBondETH.aEthRxLargeFragments''.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PAFBadFragments" access="readOnly">
        <description>
          Number of PAF Bad Fragment events. Corresponds to {{bibref|TR-159}}
          ''oBondETH.aEthRxBadFragments''.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PAFLostFragments" access="readOnly">
        <description>
          Number of PAF Lost Fragment events. Corresponds to {{bibref|TR-159}}
          ''oBondETH.aEthRxLostFragments''.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PAFLateFragments" access="readOnly">
        <description>
          Number of PAF Late Fragment events.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PAFLostStarts" access="readOnly">
        <description>
          Number of PAF Lost Start events. Corresponds to {{bibref|TR-159}}
          ''oBondETH.aEthRxLostStarts''.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PAFLostEnds" access="readOnly">
        <description>
          Number of PAF Lost End events. Corresponds to {{bibref|TR-159}}
          ''oBondETH.aEthRxLostEnds''.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PAFOverflows" access="readOnly">
        <description>
          Number of PAF Overflow events. Corresponds to {{bibref|TR-159}}
          ''oBondETH.aEthRxOverflows''.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PauseFramesSent" access="readOnly">
        <description>
          Number of pause frames sent, i.e. on the transmit side of the
          interface.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="CRCErrorsReceived" access="readOnly">
        <description>
          Number of CRC errors received, i.e. on the receive side of the
          interface.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AlignmentErrorsReceived" access="readOnly">
        <description>
          Number of alignment errors received, i.e. on the receive side of the
          interface.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ShortPacketsReceived" access="readOnly">
        <description>
          Number of short packets received, i.e. on the receive side of the
          interface.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LongPacketsReceived" access="readOnly">
        <description>
          Number of long packets received, i.e. on the receive side of the
          interface.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="OverflowErrorsReceived" access="readOnly">
        <description>
          Number of overflow errors received, i.e. on the receive side of the
          interface.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="FramesDropped" access="readOnly">
        <description>
          Number of frames dropped, e.g. because the receive queue is full.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSL.Diagnostics." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        The DSL Diagnostics object.
      </description>
    </object>

    <object name="Device.DSL.Diagnostics.ADSLLineTest." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object is to provide diagnostic information for a CPE with an
        ADSL2 or ADSL2+ modem WAN interface, but MAY also be used for ADSL.
      </description>

      <parameter name="DiagnosticsState" access="readWrite">
        <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, which brings down the DSL
          connection while the test is operating. When writing, the only
          allowed value is {{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, the CPE MUST establish a new connection to the ACS to
          allow the ACS to view the results, indicating the corresponding
          reason in the Inform message. After the diagnostic is complete, the
          value of all result parameters (all read-only parameters in this
          object instance) 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}}.
        </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="Interface" access="readWrite">
        <description>
          {{reference}} This is the interface over which the test is to be
          performed.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetParent=".DSL.Channel."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ACTPSDds" access="readOnly" activeNotify="canDeny">
        <description>
          Downstream actual power spectral density. Interpretation of the value
          is as defined in ITU-T Rec. G.997.1. Note: See ITU-T Recommendation
          {{bibref|G.997.1}}.
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>

      <parameter name="ACTPSDus" access="readOnly" activeNotify="canDeny">
        <description>
          Upstream actual power spectral density. Interpretation of the value
          is as defined in ITU-T Rec. G.997.1. Note: See ITU-T Recommendation
          {{bibref|G.997.1}}.
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>

      <parameter name="ACTATPds" access="readOnly" activeNotify="canDeny">
        <description>
          Downstream actual aggregate transmitter power. Interpretation of the
          value is as defined in ITU-T Rec. G.997.1. Note: See ITU-T
          Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>

      <parameter name="ACTATPus" access="readOnly" activeNotify="canDeny">
        <description>
          Upstream actual aggregate transmitter power. Interpretation of the
          value is as defined in ITU-T Rec. G.997.1. Note: See ITU-T
          Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>

      <parameter name="HLINSCds" access="readOnly" activeNotify="canDeny">
        <description>
          Downstream linear representation scale. Interpretation of the value
          is as defined in ITU-T Rec. G.997.1. Note: See ITU-T Recommendation
          {{bibref|G.997.1}}. For a multimode device operating in a mode in
          which this parameter does not apply, the value of this parameter
          SHOULD be set to 0.
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>

      <parameter name="HLINSCus" access="readOnly" activeNotify="canDeny">
        <description>
          Scaling used to represent the upstream linear channel
          characteristics. Interpretation of the value is as defined in ITU-T
          Rec. G.997.1. Note: See ITU-T Recommendation {{bibref|G.997.1}}. For
          a multimode device operating in a mode in which this parameter does
          not apply, the value of this parameter SHOULD be set to 0.
        </description>
        <syntax>
          <int/>
        </syntax>
      </parameter>

      <parameter name="HLINGds" access="readOnly" activeNotify="canDeny">
        <description>
          Number of sub-carriers per sub-carrier group in the downstream
          direction for {{param|HLINpsds}}. Valid values are 1, 2, 4, and 8.
          Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a multimode
          device operating in a mode in which this parameter does not apply,
          the value of this parameter SHOULD be set to 1.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="HLINGus" access="readOnly" activeNotify="canDeny">
        <description>
          Number of sub-carriers per sub-carrier group in the downstream
          direction for {{param|HLINpsus}}. Valid values are 1, 2, 4, and 8.
          Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a multimode
          device operating in a mode in which this parameter does not apply,
          the value of this parameter SHOULD be set to 1.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="HLOGGds" access="readOnly" activeNotify="canDeny">
        <description>
          Number of sub-carriers per sub-carrier group in the downstream
          direction for {{param|HLOGpsds}}. Valid values are 1, 2, 4, and 8.
          Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a multimode
          device operating in a mode in which this parameter does not apply,
          the value of this parameter SHOULD be set to 1.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="HLOGGus" access="readOnly" activeNotify="canDeny">
        <description>
          Number of sub-carriers per sub-carrier group in the upstream
          direction for {{param|HLOGpsus}}. Valid values are 1, 2, 4, and 8.
          Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a multimode
          device operating in a mode in which this parameter does not apply,
          the value of this parameter SHOULD be set to 1.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="HLOGpsds" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} List items represent downstream logarithmic channel
          characteristics per sub-carrier group. The maximum number of elements
          is 256 for G.992.3, and 512 for G.992.5. For G.993.2, the number of
          elements will depend on the value of {{param|HLOGGds}} but will not
          exceed 512. Interpretation of the values is as defined in ITU-T Rec.
          G.997.1. Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a
          multimode device operating in a mode in which this parameter does not
          apply, the value of this parameter SHOULD be set to ''None''. Note:
          {{param}} is measured during initialization and is not updated during
          Showtime.
        </description>
        <syntax>
          <list>
            <size maxLength="2559"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="HLOGpsus" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} List items represent upstream logarithmic channel
          characteristics per sub-carrier group. The maximum number of elements
          is 64 for G.992.3 and G.992.5. For G.993.2, the number of elements
          will depend on the value of {{param|HLOGGus}} but will not exceed
          512. Interpretation of the values is as defined in ITU-T Rec.
          G.997.1. Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a
          multimode device operating in a mode in which this parameter does not
          apply, the value of this parameter SHOULD be set to ''None''. Note:
          {{param}} is measured during initialization and is not updated during
          Showtime.
        </description>
        <syntax>
          <list>
            <size maxLength="2559"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="HLOGMTds" access="readOnly" activeNotify="canDeny">
        <description>
          Indicates the number of symbols over which {{param|HLOGpsds}} was
          measured. Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a
          multimode device operating in a mode in which this parameter does not
          apply, the value of this parameter SHOULD be set to 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="HLOGMTus" access="readOnly" activeNotify="canDeny">
        <description>
          Indicates the number of symbols over which {{param|HLOGpsus}} was
          measured. Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a
          multimode device operating in a mode in which this parameter does not
          apply, the value of this parameter SHOULD be set to 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LATNpbds" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} List items represent downstream line attenuation per usable
          band, as computed during initialization. Number of elements is
          dependent on the number of downstream bands but will exceed one only
          for G.993.2. Interpretation of {{param}} is as defined in ITU-T Rec.
          G.997.1. Note: See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="24"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="LATNpbus" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} List items represent upstream line attenuation per usable
          band, as computed during initialization. Number of elements is
          dependent on the number of upstream bands but will exceed one only
          for G.993.2. Interpretation of {{param}} is as defined in ITU-T Rec.
          G.997.1. Note: See ITU-T Recommendation {{bibref|G.997.1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="24"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SATNds" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} List items represent downstream signal attenuation per
          usable band, as computed during the L0 (i.e., Showtime) state. Number
          of elements is dependent on the number of downstream bands but will
          exceed one only for G.993.2. Interpretation of {{param}} is as
          defined in ITU-T Rec. G.997.1. Note: See ITU-T Recommendation
          {{bibref|G.997.1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="24"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SATNus" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} List items represent upstream signal attenuation per usable
          band, as computed during the L0 (i.e., Showtime) state. Number of
          elements is dependent on the number of downstream bands but will
          exceed one only for G.993.2. Interpretation of {{param}} is as
          defined in ITU-T Rec. G.997.1. Note: See ITU-T Recommendation
          {{bibref|G.997.1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="24"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="HLINpsds" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} List items represent downstream linear channel
          characteristics per subcarrier group. Maximum number of complex pairs
          is 256 for G.992.3, and 512 for G.992.5. For G.993.2, the number of
          pairs will depend on the value of {{param|HLINGds}} but will not
          exceed 512. Interpretation of the value is as defined in ITU-T Rec.
          G.997.1. Note: HLIN is not applicable in PLOAM for G.992.1 or
          G.992.2. Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a
          multimode device operating in a mode in which this parameter does not
          apply, the value of this parameter SHOULD be set to ''None''.
        </description>
        <syntax>
          <list>
            <size maxLength="61430"/>
          </list>
          <int/>
        </syntax>
      </parameter>

      <parameter name="HLINpsus" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} List items represent upstream linear channel characteristics
          per sub-carrier group. Maximum number of complex pairs is 64 for
          G.992.3, and G.992.5. For G.993.2, the number of pairs will depend on
          the value of {{param|HLINGus}} but will not exceed 512.
          Interpretation of the values is as defined in ITU-T Rec. G.997.1.
          Note: HLIN is not applicable in PLOAM for G.992.1 or G.992.2. Note:
          See ITU-T Recommendation {{bibref|G.997.1}}. For a multimode device
          operating in a mode in which this parameter does not apply, the value
          of this parameter SHOULD be set to ''None''.
        </description>
        <syntax>
          <list>
            <size maxLength="61430"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="QLNGds" access="readOnly" activeNotify="canDeny">
        <description>
          Number of sub-carriers per sub-carrier group in the downstream
          direction for {{param|QLNpsds}}. Valid values are 1, 2, 4, and 8.
          Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a multimode
          device operating in a mode in which this parameter does not apply,
          the value of this parameter SHOULD be set to 1.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QLNGus" access="readOnly" activeNotify="canDeny">
        <description>
          Number of sub-carriers per sub-carrier group in the upstream
          direction for {{param|QLNpsus}}. Valid values are 1, 2, 4, and 8.
          Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a multimode
          device operating in a mode in which this parameter does not apply,
          the value of this parameter SHOULD be set to 1.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QLNpsds" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} List items represent downstream quiet line noise per
          subcarrier group. Maximum number of elements is 256 for G.992.3, 512
          for G.992.5. For G.993.2, the number of elements will depend on the
          value of {{param|QLNGds}} but will not exceed 512. Interpretation of
          the value is as defined in ITU-T Rec. G.997.1. Note: QLN is not
          applicable in PLOAM for G.992.1 or G.992.2. Note: See ITU-T
          Recommendation {{bibref|G.997.1}}. For a multimode device operating
          in a mode in which this parameter does not apply, the value of this
          parameter SHOULD be set to ''None''.
        </description>
        <syntax>
          <list>
            <size maxLength="61430"/>
          </list>
          <int/>
        </syntax>
      </parameter>

      <parameter name="QLNpsus" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} List items represent upstream quiet line noise per
          subcarrier group. The maximum number of elements is 64 for G.992.3,
          and G.992.5. For G.993.2, the number of elements will depend on the
          value of {{param|QLNGus}} but will not exceed 512. Interpretation of
          the values is as defined in ITU-T Rec. G.997.1. Note: QLN is not
          applicable in PLOAM for G.992.1 or G.992.2. Note: See ITU-T
          Recommendation {{bibref|G.997.1}}. For a multimode device operating
          in a mode in which this parameter does not apply, the value of this
          parameter SHOULD be set to ''None''.
        </description>
        <syntax>
          <list>
            <size maxLength="61430"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="QLNMTds" access="readOnly" activeNotify="canDeny">
        <description>
          Indicates the number of symbols over which {{param|QLNpsds}} was
          measured. Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a
          multimode device operating in a mode in which this parameter does not
          apply, the value of this parameter SHOULD be set to 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QLNMTus" access="readOnly" activeNotify="canDeny">
        <description>
          Indicates the number of symbols over which {{param|QLNpsus}} was
          measured. Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a
          multimode device operating in a mode in which this parameter does not
          apply, the value of this parameter SHOULD be set to 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SNRGds" access="readOnly" activeNotify="canDeny">
        <description>
          Number of sub-carriers per sub-carrier group in the downstream
          direction for {{param|SNRpsds}}. Valid values are 1, 2, 4, and 8.
          Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a multimode
          device operating in a mode in which this parameter does not apply,
          the value of this parameter SHOULD be set to 1.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SNRGus" access="readOnly" activeNotify="canDeny">
        <description>
          Number of sub-carriers per sub-carrier group in the upstream
          direction for {{param|SNRpsus}}. Valid values are 1, 2, 4, and 8.
          Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a multimode
          device operating in a mode in which this parameter does not apply,
          the value of this parameter SHOULD be set to 1.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SNRpsds" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} List items represent downstream SNR per subcarrier group.
          Maximum number of elements is 256 for G.992.3, 512 for G.992.5. For
          G.993.2, the number of elements will depend on the value of
          {{param|SNRGds}} but will not exceed 512. Interpretation of the value
          is as defined in ITU-T Rec. G.997.1. Interpretation of the value is
          as defined in ITU-T Rec. G.997.1. Note: SNRps is not applicable in
          PLOAM for G.992.1 or G.992.2. Note: See ITU-T Recommendation
          {{bibref|G.997.1}}. For a multimode device operating in a mode in
          which this parameter does not apply, the value of this parameter
          SHOULD be set to ''None''.
        </description>
        <syntax>
          <list>
            <size maxLength="61430"/>
          </list>
          <int/>
        </syntax>
      </parameter>

      <parameter name="SNRpsus" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} List items represent upstream SNR per subcarrier group. The
          maximum number of elements is 64 for G.992.3, and G.992.5. For
          G.993.2, the number of elements will depend on the value of
          {{param|SNRGus}} but will not exceed 512. Interpretation of the
          values is as defined in ITU-T Rec. G.997.1. Note: SNRps is not
          applicable in PLOAM for G.992.1 or G.992.2. Note: See ITU-T
          Recommendation {{bibref|G.997.1}}. For a multimode device operating
          in a mode in which this parameter does not apply, the value of this
          parameter SHOULD be set to ''None''.
        </description>
        <syntax>
          <list>
            <size maxLength="61430"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="SNRMTds" access="readOnly" activeNotify="canDeny">
        <description>
          Indicates the number of symbols over which {{param|SNRpsds}} was
          measured. Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a
          multimode device operating in a mode in which this parameter does not
          apply, the value of this parameter SHOULD be set to 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="SNRMTus" access="readOnly" activeNotify="canDeny">
        <description>
          Indicates the number of symbols over which {{param|SNRpsus}} was
          measured. Note: See ITU-T Recommendation {{bibref|G.997.1}}. For a
          multimode device operating in a mode in which this parameter does not
          apply, the value of this parameter SHOULD be set to 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="BITSpsds" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} List items represent downstream bit allocation per
          subcarrier group. Maximum number of elements is 256 for G.992.3, 512
          for G.992.5. Interpretation of the value is as defined in ITU-T Rec.
          {{bibref|G.997.1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="61430"/>
          </list>
          <int/>
        </syntax>
      </parameter>

      <parameter name="BITSpsus" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} List items represent upstream bit allocation per subcarrier
          group. Maximum number of elements is 256 for G.992.3, 512 for
          G.992.5. Interpretation of the value is as defined in ITU-T Rec.
          {{bibref|G.997.1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="61430"/>
          </list>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ATM." access="readOnly" minEntries="1" maxEntries="1">
      <description>
        Asynchronous Transfer Mode (ATM) object that contains the
        {{object|Link}} interface and {{object|Diagnostics.F5Loopback}}
        diagnostics.
      </description>

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

    <object name="Device.ATM.Link.{i}." access="readWrite"
        numEntriesParameter="LinkNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        ATM link-layer table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). Models an ATM PVC virtual circuit and
        the ATM Adaption Layer (AAL). An ATM Link entry is typically stacked on
        top of either a {{object|.DSL.Channel.}} or a
        {{object|.DSL.BondingGroup.}} object. When an ''ATM Link'' interface is
        used, a lower-layer {{object|.DSL.Channel}} interface MUST be
        configured with ATM encapsulation (see
        {{param|.DSL.Channel.{i}.LinkEncapsulationUsed}}).
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the link. This parameter is based on
          ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the link (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}} When {{param|Enable}} is
          {{false}} then {{param}} SHOULD normally be {{enum|Down}} (or
          {{enum|NotPresent}} or {{enum|Error}} if there is a fault condition
          on the interface). When {{param|Enable}} is changed to {{true}} then
          {{param}} SHOULD change to {{enum|Up}} if and only if the interface
          is able to transmit and receive network traffic; it SHOULD change to
          {{enum|Dormant}} if and only if the interface is operable but is
          waiting for external actions before it can transmit and receive
          network traffic (and subsequently change to {{enum|Up}} if still
          operable when the expected actions have completed); it SHOULD change
          to {{enum|LowerLayerDown}} if and only if the interface is prevented
          from entering the {{enum|Up}} state because one or more of the
          interfaces beneath it is down; it SHOULD remain in the {{enum|Error}}
          state if there is an error or other fault condition detected on the
          interface; it SHOULD remain in the {{enum|NotPresent}} state if the
          interface has missing (typically hardware) components; it SHOULD
          change to {{enum|Unknown}} if the state of the interface can not be
          determined for some reason. This parameter is based on
          ''ifOperStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent"/>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Down"/>
        </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 textual name of the link as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the link entered its current
          operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowerLayers" access="readWrite">
        <description>
          {{list}} {{reference|an interface object that is stacked immediately
          below this interface object}} See {{bibref|TR-181i2|Section 4.2.1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="LinkType" access="readWrite">
        <description>
          Indicates the type of connection and refers to the complete stack of
          protocol used for this connection.
        </description>
        <syntax>
          <string>
            <enumeration value="EoA">
              <description>
                {{bibref|RFC2684}} bridged Ethernet over ATM
              </description>
            </enumeration>
            <enumeration value="IPoA">
              <description>{{bibref|RFC2684}} routed IP over ATM</description>
            </enumeration>
            <enumeration value="PPPoA">
              <description>{{bibref|RFC2364}} PPP over ATM</description>
            </enumeration>
            <enumeration value="CIP">
              <description>
                {{bibref|RFC2225}} Classical IP over ATM
              </description>
            </enumeration>
            <enumeration value="Unconfigured"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AutoConfig" access="readOnly">
        <description>
          Indicates if the CPE is currently using some auto configuration
          mechanisms for this connection. If this variable is {{true}}, all
          writable variables in this connection instance become read-only. Any
          attempt to change one of these variables SHOULD fail and an error
          SHOULD be returned.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="DestinationAddress" access="readWrite">
        <description>
          Destination address of this link, in the form "VPI/VCI" (e.g. "8/23"
          or "0/35").
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pattern value="\d+/\d+"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Encapsulation" access="readWrite">
        <description>
          Identifies the connection encapsulation that will be used.
        </description>
        <syntax>
          <string>
            <enumeration value="LLC"/>
            <enumeration value="VCMUX"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="FCSPreserved" access="readWrite">
        <description>
          This flag tells if a checksum SHOULD be added in the ATM payload. It
          does not refer to the checksum of one of the ATM cells or AALX
          packets. In case of LLC or VCMUX encapsulation, this ATM checksum is
          the FCS field described in {{bibref|RFC2684}}. It is only applicable
          in the upstream direction.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="VCSearchList" access="readWrite">
        <description>
          {{list}} Ordered list of VPI/VCI pairs to search if a link using the
          {{param|DestinationAddress}} cannot be established. In the form
          "VPI1/VCI1, VPI2/VCI2, ...". {{pattern}} Example:

          : ''0/35, 8/35, 1/35''
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <string>
            <pattern value="\d+/\d+"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AAL" access="readOnly">
        <description>
          Describes the ATM Adaptation Layer (AAL) currently in use on the PVC.
        </description>
        <syntax>
          <string>
            <enumeration value="AAL1"/>
            <enumeration value="AAL2"/>
            <enumeration value="AAL3"/>
            <enumeration value="AAL4"/>
            <enumeration value="AAL5"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ATM.Link.{i}.Stats." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        Throughput statistics for this interface. The CPE MUST reset the
        interface's Stats parameters (unless otherwise stated in individual
        object or parameter descriptions) either when the interface becomes
        operationally down due to a previous administrative down (i.e. the
        interface's {{param|#.Status}} parameter transitions to a down state
        after the interface is disabled) or when the interface becomes
        administratively up (i.e. the interface's {{param|#.Enable}} parameter
        transitions from {{false}} to {{true}}). Administrative and operational
        interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>

      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes received on the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets transmitted out of the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received on the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets that contained errors preventing
          them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets requested for transmission which were not
          addressed to a multicast or broadcast address at this layer,
          including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of outbound packets which were chosen to be
          discarded even though no errors had been detected to prevent their
          being transmitted. One possible reason for discarding such a packet
          could be to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets which were chosen to be discarded
          even though no errors had been detected to prevent their being
          delivered. One possible reason for discarding such a packet could be
          to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a multicast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a broadcast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TransmittedBlocks" access="readOnly"
          activeNotify="canDeny">
        <description>
          The current count of successfully transmitted cells.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ReceivedBlocks" access="readOnly"
          activeNotify="canDeny">
        <description>
          The current count of successfully received cells.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="CRCErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Count of the ATM layer cyclic redundancy check (CRC) errors. This
          refers to CRC errors at the ATM adaptation layer (AAL). The AAL in
          use is indicated by the {{param|#.AAL}} parameter. The value of the
          {{param}} parameter MUST be 0 for AAL types that have no CRCs.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="HECErrors" access="readOnly" activeNotify="canDeny">
        <description>
          Count of the number of Header Error Check related errors at the ATM
          layer.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ATM.Link.{i}.QoS." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        The ATM Link QoS object.
      </description>

      <parameter name="QoSClass" access="readWrite">
        <description>
          Describes the ATM Quality Of Service (QoS) being used on the VC.
        </description>
        <syntax>
          <string>
            <enumeration value="UBR"/>
            <enumeration value="CBR"/>
            <enumeration value="GFR"/>
            <enumeration value="VBR-nrt"/>
            <enumeration value="VBR-rt"/>
            <enumeration value="UBR+"/>
            <enumeration value="ABR"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PeakCellRate" access="readWrite">
        <description>
          Specifies the upstream peak cell rate in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="cells per second"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaximumBurstSize" access="readWrite">
        <description>
          Specifies the upstream maximum burst size in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="cells"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SustainableCellRate" access="readWrite">
        <description>
          Specifies the upstream sustainable cell rate, in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="cells per second"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.ATM.Diagnostics." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        The ATM Diagnostics object.
      </description>
    </object>

    <object name="Device.ATM.Diagnostics.F5Loopback." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object provides access to an ATM-layer F5 OAM loopback test.
      </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 instance)
          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="Interface" access="readWrite">
        <description>
          {{reference}} This is the interface over which the test is to be
          performed.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetParent=".ATM.Link." targetType="row"/>
          </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 {{units}} for the ping test.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="milliseconds"/>
          </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 {{units}}
          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>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MinimumResponseTime" access="readOnly"
          activeNotify="canDeny">
        <description>
          Result parameter indicating the minimum response time in {{units}}
          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>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaximumResponseTime" access="readOnly"
          activeNotify="canDeny">
        <description>
          Result parameter indicating the maximum response time in {{units}}
          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>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PTM." access="readOnly" minEntries="1" maxEntries="1">
      <description>
        Packet Transfer Mode ({{bibref|G.993.1|Annex H}}). This object contains
        the {{object|Link}} interface.
      </description>

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

    <object name="Device.PTM.Link.{i}." access="readWrite"
        numEntriesParameter="LinkNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        PTM link-layer table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). Models a layer 2 variable-sized
        packet interface. A PTM Link entry is typically stacked on top of
        either a {{object|.DSL.Channel.}} or a {{object|.DSL.BondingGroup.}}
        object. When a ''PTM Link'' interface is used, a lower-layer
        {{object|.DSL.Channel}} interface MUST be configured with PTM
        encapsulation (see {{param|.DSL.Channel.{i}.LinkEncapsulationUsed}}).
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the link. This parameter is based on
          ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the link (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}} When {{param|Enable}} is
          {{false}} then {{param}} SHOULD normally be {{enum|Down}} (or
          {{enum|NotPresent}} or {{enum|Error}} if there is a fault condition
          on the interface). When {{param|Enable}} is changed to {{true}} then
          {{param}} SHOULD change to {{enum|Up}} if and only if the interface
          is able to transmit and receive network traffic; it SHOULD change to
          {{enum|Dormant}} if and only if the interface is operable but is
          waiting for external actions before it can transmit and receive
          network traffic (and subsequently change to {{enum|Up}} if still
          operable when the expected actions have completed); it SHOULD change
          to {{enum|LowerLayerDown}} if and only if the interface is prevented
          from entering the {{enum|Up}} state because one or more of the
          interfaces beneath it is down; it SHOULD remain in the {{enum|Error}}
          state if there is an error or other fault condition detected on the
          interface; it SHOULD remain in the {{enum|NotPresent}} state if the
          interface has missing (typically hardware) components; it SHOULD
          change to {{enum|Unknown}} if the state of the interface can not be
          determined for some reason. This parameter is based on
          ''ifOperStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent"/>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Down"/>
        </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 textual name of the link as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the link entered its current
          operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowerLayers" access="readWrite">
        <description>
          {{list}} {{reference|an interface object that is stacked immediately
          below this interface object}} See {{bibref|TR-181i2|Section 4.2.1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readOnly">
        <description>
          The MAC Address of the interface. Note: This is not necessarily the
          same as the Ethernet header source or destination MAC address, which
          is associated with the IP interface and is modeled via the
          {{param|.Ethernet.Link.{i}.MACAddress}} parameter.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PTM.Link.{i}.Stats." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        Throughput statistics for this interface. The CPE MUST reset the
        interface's Stats parameters (unless otherwise stated in individual
        object or parameter descriptions) either when the interface becomes
        operationally down due to a previous administrative down (i.e. the
        interface's {{param|#.Status}} parameter transitions to a down state
        after the interface is disabled) or when the interface becomes
        administratively up (i.e. the interface's {{param|#.Enable}} parameter
        transitions from {{false}} to {{true}}). Administrative and operational
        interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>

      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes received on the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets transmitted out of the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received on the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets that contained errors preventing
          them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets requested for transmission which were not
          addressed to a multicast or broadcast address at this layer,
          including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of outbound packets which were chosen to be
          discarded even though no errors had been detected to prevent their
          being transmitted. One possible reason for discarding such a packet
          could be to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets which were chosen to be discarded
          even though no errors had been detected to prevent their being
          delivered. One possible reason for discarding such a packet could be
          to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a multicast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a broadcast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ethernet." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        Ethernet object. This object models several Ethernet interface objects,
        each representing a different stack layer, including:
        {{object|Interface}}, {{object|Link}}, and {{object|VLANTermination}}.
        {{object|Interface}} is media-specific and models a port, the PHY
        layer, and the MAC layer. {{object|Link}} is media-independent and
        models the Logical Link Control (LLC) layer. A
        {{object|VLANTermination}}, when present, is expected to be stacked on
        top of {{object|Link}} objects to receive and send frames with a
        configured VLANID.
      </description>

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

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

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

    <object name="Device.Ethernet.Interface.{i}." access="readOnly"
        numEntriesParameter="InterfaceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true">
      <description>
        Ethernet interface table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). This table models physical Ethernet
        ports, but in terms of the interface stack it also models the PHY and
        MAC level Ethernet interface.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the interface. This parameter is based on
          ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the interface (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}} When {{param|Enable}} is
          {{false}} then {{param}} SHOULD normally be {{enum|Down}} (or
          {{enum|NotPresent}} or {{enum|Error}} if there is a fault condition
          on the interface). When {{param|Enable}} is changed to {{true}} then
          {{param}} SHOULD change to {{enum|Up}} if and only if the interface
          is able to transmit and receive network traffic; it SHOULD change to
          {{enum|Dormant}} if and only if the interface is operable but is
          waiting for external actions before it can transmit and receive
          network traffic (and subsequently change to {{enum|Up}} if still
          operable when the expected actions have completed); it SHOULD change
          to {{enum|LowerLayerDown}} if and only if the interface is prevented
          from entering the {{enum|Up}} state because one or more of the
          interfaces beneath it is down; it SHOULD remain in the {{enum|Error}}
          state if there is an error or other fault condition detected on the
          interface; it SHOULD remain in the {{enum|NotPresent}} state if the
          interface has missing (typically hardware) components; it SHOULD
          change to {{enum|Unknown}} if the state of the interface can not be
          determined for some reason. This parameter is based on
          ''ifOperStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent"/>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </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 textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the interface entered its
          current operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowerLayers" access="readWrite">
        <description>
          {{list}} {{reference|an interface object that is stacked immediately
          below this interface object}} See {{bibref|TR-181i2|Section 4.2.1}}.
          Note: Since {{object}} is a layer 1 interface, it is expected that
          {{param}} will not be used.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Upstream" access="readOnly">
        <description>
          Indicates whether the interface points towards the Internet
          ({{true}}) or towards End Devices ({{false}}). For example:

          * For an Internet Gateway Device, {{param}} will be {{true}} for all
            WAN interfaces and {{false}} for all LAN interfaces.

          * For a standalone WiFi Access Point that is connected via Ethernet
            to an Internet Gateway Device, {{param}} will be {{true}} for the
            Ethernet interface and {{false}} for the WiFi Radio interface.

          * For an End Device, {{param}} will be {{true}} for all interfaces.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readOnly">
        <description>
          The MAC Address of the interface. Note: This is not necessarily the
          same as the Ethernet header source or destination MAC address, which
          is associated with the IP interface and is modeled via the
          {{param|.Ethernet.Link.{i}.MACAddress}} parameter.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="MaxBitRate" access="readWrite">
        <description>
          The maximum upstream and downstream PHY bit rate supported by this
          interface (expressed in {{units}}). A value of -1 indicates automatic
          selection of the maximum bit rate.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="Mbps"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="DuplexMode" access="readWrite">
        <description>
          The duplex mode available to this connection.
        </description>
        <syntax>
          <string>
            <enumeration value="Half"/>
            <enumeration value="Full"/>
            <enumeration value="Auto"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ethernet.Interface.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Throughput statistics for this interface. The CPE MUST reset the
        interface's Stats parameters (unless otherwise stated in individual
        object or parameter descriptions) either when the interface becomes
        operationally down due to a previous administrative down (i.e. the
        interface's {{param|#.Status}} parameter transitions to a down state
        after the interface is disabled) or when the interface becomes
        administratively up (i.e. the interface's {{param|#.Enable}} parameter
        transitions from {{false}} to {{true}}). Administrative and operational
        interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>

      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes received on the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets transmitted out of the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received on the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets that contained errors preventing
          them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets requested for transmission which were not
          addressed to a multicast or broadcast address at this layer,
          including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of outbound packets which were chosen to be
          discarded even though no errors had been detected to prevent their
          being transmitted. One possible reason for discarding such a packet
          could be to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets which were chosen to be discarded
          even though no errors had been detected to prevent their being
          delivered. One possible reason for discarding such a packet could be
          to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a multicast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a broadcast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ethernet.Link.{i}." access="readWrite"
        numEntriesParameter="LinkNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        Ethernet link layer table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). Table entries model the Logical Link
        Control (LLC) layer. It is expected that an ''Ethernet Link'' interface
        can be stacked above any lower-layer interface object capable of
        carrying Ethernet frames.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="MACAddress"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the link. This parameter is based on
          ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the link (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}} When {{param|Enable}} is
          {{false}} then {{param}} SHOULD normally be {{enum|Down}} (or
          {{enum|NotPresent}} or {{enum|Error}} if there is a fault condition
          on the interface). When {{param|Enable}} is changed to {{true}} then
          {{param}} SHOULD change to {{enum|Up}} if and only if the interface
          is able to transmit and receive network traffic; it SHOULD change to
          {{enum|Dormant}} if and only if the interface is operable but is
          waiting for external actions before it can transmit and receive
          network traffic (and subsequently change to {{enum|Up}} if still
          operable when the expected actions have completed); it SHOULD change
          to {{enum|LowerLayerDown}} if and only if the interface is prevented
          from entering the {{enum|Up}} state because one or more of the
          interfaces beneath it is down; it SHOULD remain in the {{enum|Error}}
          state if there is an error or other fault condition detected on the
          interface; it SHOULD remain in the {{enum|NotPresent}} state if the
          interface has missing (typically hardware) components; it SHOULD
          change to {{enum|Unknown}} if the state of the interface can not be
          determined for some reason. This parameter is based on
          ''ifOperStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent"/>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Down"/>
        </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 textual name of the link as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the link entered its current
          operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowerLayers" access="readWrite">
        <description>
          {{list}} {{reference|an interface object that is stacked immediately
          below this interface object}} See {{bibref|TR-181i2|Section 4.2.1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readOnly">
        <description>
          The MAC address used for packets sent via this interface. Provides
          the source MAC address for outgoing traffic and the destination MAC
          address for incoming traffic.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="PriorityTagging" access="readWrite">
        <description>
          Enables or disables priority tagging on this Ethernet Link. When
          {{true}}, egress frames leaving this interface will be priority
          tagged with the frame's associated priority value, which will either
          be derived directly from the ingress frame or else set via
          {{param|.QoS.Classification.{i}.EthernetPriorityMark}}. When
          {{false}}, egress frames leaving this interface will be untagged. The
          parameter does not affect reception of ingress frames.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ethernet.Link.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Throughput statistics for this interface. The CPE MUST reset the
        interface's Stats parameters (unless otherwise stated in individual
        object or parameter descriptions) either when the interface becomes
        operationally down due to a previous administrative down (i.e. the
        interface's {{param|#.Status}} parameter transitions to a down state
        after the interface is disabled) or when the interface becomes
        administratively up (i.e. the interface's {{param|#.Enable}} parameter
        transitions from {{false}} to {{true}}). Administrative and operational
        interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>

      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes received on the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets transmitted out of the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received on the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets that contained errors preventing
          them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets requested for transmission which were not
          addressed to a multicast or broadcast address at this layer,
          including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of outbound packets which were chosen to be
          discarded even though no errors had been detected to prevent their
          being transmitted. One possible reason for discarding such a packet
          could be to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets which were chosen to be discarded
          even though no errors had been detected to prevent their being
          delivered. One possible reason for discarding such a packet could be
          to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a multicast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a broadcast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ethernet.VLANTermination.{i}." access="readWrite"
        numEntriesParameter="VLANTerminationNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        VLAN Termination table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). A VLAN Termination entry is typically
        stacked on top of a {{object|#.Link}} object to receive and send frames
        with the configured {{param|VLANID}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the VLANTermination entry. This parameter is
          based on ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the VLANTermination entry (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}} When {{param|Enable}} is
          {{false}} then {{param}} SHOULD normally be {{enum|Down}} (or
          {{enum|NotPresent}} or {{enum|Error}} if there is a fault condition
          on the interface). When {{param|Enable}} is changed to {{true}} then
          {{param}} SHOULD change to {{enum|Up}} if and only if the interface
          is able to transmit and receive network traffic; it SHOULD change to
          {{enum|Dormant}} if and only if the interface is operable but is
          waiting for external actions before it can transmit and receive
          network traffic (and subsequently change to {{enum|Up}} if still
          operable when the expected actions have completed); it SHOULD change
          to {{enum|LowerLayerDown}} if and only if the interface is prevented
          from entering the {{enum|Up}} state because one or more of the
          interfaces beneath it is down; it SHOULD remain in the {{enum|Error}}
          state if there is an error or other fault condition detected on the
          interface; it SHOULD remain in the {{enum|NotPresent}} state if the
          interface has missing (typically hardware) components; it SHOULD
          change to {{enum|Unknown}} if the state of the interface can not be
          determined for some reason. This parameter is based on
          ''ifOperStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent"/>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Down"/>
        </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 textual name of the VLANTermination entry as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the VLANTermination entered
          its current operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowerLayers" access="readWrite">
        <description>
          {{list}} {{reference|an interface object that is stacked immediately
          below this interface object}} See {{bibref|TR-181i2|Section 4.2.1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="VLANID" access="readWrite">
        <description>
          The VLAN ID for this {{object}} entry (as defined in
          {{bibref|802.1Q-2005}}). Only ingress frames with this VLAN ID will
          be passed to higher protocol layers; frames sent from higher protocol
          layers will be tagged with this VLAN ID.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="4094"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Ethernet.VLANTermination.{i}.Stats."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        Throughput statistics for this interface. The CPE MUST reset the
        interface's Stats parameters (unless otherwise stated in individual
        object or parameter descriptions) either when the interface becomes
        operationally down due to a previous administrative down (i.e. the
        interface's {{param|#.Status}} parameter transitions to a down state
        after the interface is disabled) or when the interface becomes
        administratively up (i.e. the interface's {{param|#.Enable}} parameter
        transitions from {{false}} to {{true}}). Administrative and operational
        interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>

      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes received on the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets transmitted out of the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received on the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets that contained errors preventing
          them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets requested for transmission which were not
          addressed to a multicast or broadcast address at this layer,
          including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of outbound packets which were chosen to be
          discarded even though no errors had been detected to prevent their
          being transmitted. One possible reason for discarding such a packet
          could be to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets which were chosen to be discarded
          even though no errors had been detected to prevent their being
          delivered. One possible reason for discarding such a packet could be
          to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a multicast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a broadcast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USB." access="readOnly" minEntries="1" maxEntries="1">
      <description>
        Universal Serial Bus ({{bibref|USB1.0}}, {{bibref|USB2.0}},
        {{bibref|USB3.0}}). This object contains the {{object|Interface}},
        {{object|Port}}, and {{object|USBHosts}} objects.
      </description>

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

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

    <object name="Device.USB.Interface.{i}." access="readOnly"
        numEntriesParameter="InterfaceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true">
      <description>
        USB interface table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). This table models master and slave
        USB physical interfaces that support carrying Ethernet frames, e.g. via
        the USB Communication Device Class.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the interface. This parameter is based on
          ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the interface (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}} When {{param|Enable}} is
          {{false}} then {{param}} SHOULD normally be {{enum|Down}} (or
          {{enum|NotPresent}} or {{enum|Error}} if there is a fault condition
          on the interface). When {{param|Enable}} is changed to {{true}} then
          {{param}} SHOULD change to {{enum|Up}} if and only if the interface
          is able to transmit and receive network traffic; it SHOULD change to
          {{enum|Dormant}} if and only if the interface is operable but is
          waiting for external actions before it can transmit and receive
          network traffic (and subsequently change to {{enum|Up}} if still
          operable when the expected actions have completed); it SHOULD change
          to {{enum|LowerLayerDown}} if and only if the interface is prevented
          from entering the {{enum|Up}} state because one or more of the
          interfaces beneath it is down; it SHOULD remain in the {{enum|Error}}
          state if there is an error or other fault condition detected on the
          interface; it SHOULD remain in the {{enum|NotPresent}} state if the
          interface has missing (typically hardware) components; it SHOULD
          change to {{enum|Unknown}} if the state of the interface can not be
          determined for some reason. This parameter is based on
          ''ifOperStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent"/>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </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 textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the interface entered its
          current operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowerLayers" access="readWrite">
        <description>
          {{list}} {{reference|an interface object that is stacked immediately
          below this interface object}} See {{bibref|TR-181i2|Section 4.2.1}}.
          Note: Since {{object}} is a layer 1 interface, it is expected that
          {{param}} will not be used.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Upstream" access="readOnly">
        <description>
          Indicates whether the interface points towards the Internet
          ({{true}}) or towards End Devices ({{false}}). For example:

          * For an Internet Gateway Device, {{param}} will be {{true}} for all
            WAN interfaces and {{false}} for all LAN interfaces.

          * For a standalone WiFi Access Point that is connected via Ethernet
            to an Internet Gateway Device, {{param}} will be {{true}} for the
            Ethernet interface and {{false}} for the WiFi Radio interface.

          * For an End Device, {{param}} will be {{true}} for all interfaces.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readOnly">
        <description>
          The MAC Address of the interface. Note: This is not necessarily the
          same as the Ethernet header source or destination MAC address, which
          is associated with the IP interface and is modeled via the
          {{param|.Ethernet.Link.{i}.MACAddress}} parameter.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="MaxBitRate" access="readOnly">
        <description>
          The maximum PHY bit rate supported by this interface (expressed in
          {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Port" access="readOnly">
        <description>
          {{reference}} This is the USB port associated with this interface
          object.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.Port." targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USB.Interface.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Throughput statistics for this interface. The CPE MUST reset the
        interface's Stats parameters (unless otherwise stated in individual
        object or parameter descriptions) either when the interface becomes
        operationally down due to a previous administrative down (i.e. the
        interface's {{param|#.Status}} parameter transitions to a down state
        after the interface is disabled) or when the interface becomes
        administratively up (i.e. the interface's {{param|#.Enable}} parameter
        transitions from {{false}} to {{true}}). Administrative and operational
        interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>

      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes received on the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets transmitted out of the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received on the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets that contained errors preventing
          them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets requested for transmission which were not
          addressed to a multicast or broadcast address at this layer,
          including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of outbound packets which were chosen to be
          discarded even though no errors had been detected to prevent their
          being transmitted. One possible reason for discarding such a packet
          could be to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets which were chosen to be discarded
          even though no errors had been detected to prevent their being
          delivered. One possible reason for discarding such a packet could be
          to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a multicast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a broadcast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USB.Port.{i}." access="readOnly"
        numEntriesParameter="PortNumberOfEntries" minEntries="0"
        maxEntries="unbounded">
      <description>
        USB Port table. This table models master and slave USB physical ports
        on the device.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <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>
          The textual name of the port.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Standard" access="readOnly">
        <description>
          USB specification version supported by the Port. Example: "1.1"
        </description>
        <syntax>
          <string>
            <size maxLength="4"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Type" access="readOnly">
        <description>
          Type of the USB connection.
        </description>
        <syntax>
          <string>
            <enumeration value="Host"/>
            <enumeration value="Hub"/>
            <enumeration value="Device"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Receptacle" access="readOnly">
        <description>
          Receptacle of the port.
        </description>
        <syntax>
          <string>
            <enumeration value="Standard-A"/>
            <enumeration value="Standard-B"/>
            <enumeration value="Powered-B"/>
            <enumeration value="Micro-AB"/>
            <enumeration value="Micro-B"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Rate" access="readOnly">
        <description>
          Current speed of the USB connection. {{enum}}
        </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="Power" access="readOnly">
        <description>
          Power configuration of the USB connection. {{enum}} Only applies when
          {{param|Type}} is {{enum|Device|Type}}. In other cases value is
          {{enum|Unknown}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Self"/>
            <enumeration value="Bus"/>
            <enumeration value="Unknown"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.USB.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.USB.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.USB.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="USBPort" access="readOnly" dmr:previousParameter="Port">
        <description>
          {{reference}} This is a reference to the USB host device to which
          this (external) USB device is connected.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".USB.Port."
                targetType="row"/>
          </string>
        </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.USB.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.USB.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.HPNA." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        HPNA object that contains the {{object|Interface}} and
        {{object|Diagnostics}} objects. The HPNA (also known as HomePNA)
        industry standard {{bibref|G.9954}} defines peer to peer communication
        for home networking over existing coax cables and telephone wiring
        within the home.
      </description>

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

    <object name="Device.HPNA.Interface.{i}." access="readOnly"
        numEntriesParameter="InterfaceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true">
      <description>
        HPNA interface table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). Each table entry models the PHY and
        MAC levels of an HPNA interface {{bibref|G.9954}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the interface. This parameter is based on
          ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the interface (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}} When {{param|Enable}} is
          {{false}} then {{param}} SHOULD normally be {{enum|Down}} (or
          {{enum|NotPresent}} or {{enum|Error}} if there is a fault condition
          on the interface). When {{param|Enable}} is changed to {{true}} then
          {{param}} SHOULD change to {{enum|Up}} if and only if the interface
          is able to transmit and receive network traffic; it SHOULD change to
          {{enum|Dormant}} if and only if the interface is operable but is
          waiting for external actions before it can transmit and receive
          network traffic (and subsequently change to {{enum|Up}} if still
          operable when the expected actions have completed); it SHOULD change
          to {{enum|LowerLayerDown}} if and only if the interface is prevented
          from entering the {{enum|Up}} state because one or more of the
          interfaces beneath it is down; it SHOULD remain in the {{enum|Error}}
          state if there is an error or other fault condition detected on the
          interface; it SHOULD remain in the {{enum|NotPresent}} state if the
          interface has missing (typically hardware) components; it SHOULD
          change to {{enum|Unknown}} if the state of the interface can not be
          determined for some reason. This parameter is based on
          ''ifOperStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent"/>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </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 textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the interface entered its
          current operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowerLayers" access="readWrite">
        <description>
          {{list}} {{reference|an interface object that is stacked immediately
          below this interface object}} See {{bibref|TR-181i2|Section 4.2.1}}.
          Note: Since {{object}} is a layer 1 interface, it is expected that
          {{param}} will not be used.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Upstream" access="readOnly">
        <description>
          Indicates whether the interface points towards the Internet
          ({{true}}) or towards End Devices ({{false}}). For example:

          * For an Internet Gateway Device, {{param}} will be {{true}} for all
            WAN interfaces and {{false}} for all LAN interfaces.

          * For a standalone WiFi Access Point that is connected via Ethernet
            to an Internet Gateway Device, {{param}} will be {{true}} for the
            Ethernet interface and {{false}} for the WiFi Radio interface.

          * For an End Device, {{param}} will be {{true}} for all interfaces.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readOnly">
        <description>
          The MAC Address of the interface. Note: This is not necessarily the
          same as the Ethernet header source or destination MAC address, which
          is associated with the IP interface and is modeled via the
          {{param|.Ethernet.Link.{i}.MACAddress}} parameter.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="FirmwareVersion" access="readOnly">
        <description>
          This interface's firmware version.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NodeID" access="readOnly">
        <description>
          The Node ID of this interface.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="IsMaster" access="readOnly">
        <description>
          Whether this interface is the HPNA network master.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Synced" access="readOnly">
        <description>
          Whether this interface is synchronized with the HPNA network master.
          If this interface is the HPNA network master, {{param}} MUST be
          {{true}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TotalSyncTime" access="readOnly" activeNotify="canDeny">
        <description>
          Total time in {{units}} (since device reset) that this interface has
          been up and synchronized to the HPNA network master.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxBitRate" access="readOnly">
        <description>
          The maximum HPNA PHY bit rate (expressed in {{units}}) of this
          interface.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="NetworkUtilization" access="readOnly">
        <description>
          Current HPNA network utilization (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="1000"/>
            <units value="0.1%"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PossibleConnectionTypes" access="readOnly">
        <description>
          {{list}} List items indicate the types of connections possible for
          this interface. {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="Phone"/>
            <enumeration value="Coax"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ConnectionType" access="readWrite">
        <description>
          {{list}} Connection type(s) for which the HPNA protocol is active.
        </description>
        <syntax>
          <list/>
          <string>
            <enumerationRef targetParam="PossibleConnectionTypes"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PossibleSpectralModes" access="readOnly">
        <description>
          {{list}} List items indicate the spectral modes possible for this
          interface. {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="A">
              <description>4-20MHz - Phone / Coax</description>
            </enumeration>
            <enumeration value="B">
              <description>12-28MHz - Phone / Coax</description>
            </enumeration>
            <enumeration value="C">
              <description>36-52MHz - Coax only</description>
            </enumeration>
            <enumeration value="D">
              <description>4-36MHz - Coax only</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="SpectralMode" access="readWrite">
        <description>
          Spectral mode for which the HPNA protocol is active.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="PossibleSpectralModes"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MTU" access="readWrite">
        <description>
          Maximum Transmission Unit for this HPNA interface (expressed in
          {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="bytes"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="NoiseMargin" access="readWrite">
        <description>
          The desired noise margin for which the local HPNA interface has been
          configured (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="0.1dB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DefaultNonLARQPER" access="readWrite">
        <description>
          The desired packet error rate for which the local HPNA interface has
          been configured (expressed in 1E-8, e.g. PER of 1.27E-6 will be
          presented as 127).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LARQEnable" access="readWrite">
        <description>
          Enable or disable the Limited Automatic Repeat Request (LARQ)
          mechanism.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MinMulticastRate" access="readWrite">
        <description>
          The minimum multicast (and broadcast) rate that can be negotiated on
          the HPNA network directly accessible via this interface (expressed in
          {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="NegMulticastRate" access="readOnly">
        <description>
          The negotiated multicast (and broadcast) rate on the HPNA network
          directly accessible via this interface (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MasterSelectionMode" access="readWrite">
        <description>
          Master selection mode. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Automatic">
              <description>Automatic master selection</description>
            </enumeration>
            <enumeration value="ForceEndpoint">
              <description>
                Force local HPNA interface to be end point
              </description>
            </enumeration>
            <enumeration value="ForceMaster">
              <description>
                Force local HPNA interface to be master
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="AssociatedDeviceNumberOfEntries" access="readOnly">
        <description>
          {{numentries}} This is the number of HPNA nodes that are directly
          accessible via this interface.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.HPNA.Interface.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Throughput statistics for this interface. The CPE MUST reset the
        interface's Stats parameters (unless otherwise stated in individual
        object or parameter descriptions) either when the interface becomes
        operationally down due to a previous administrative down (i.e. the
        interface's {{param|#.Status}} parameter transitions to a down state
        after the interface is disabled) or when the interface becomes
        administratively up (i.e. the interface's {{param|#.Enable}} parameter
        transitions from {{false}} to {{true}}). Administrative and operational
        interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>

      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes received on the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets transmitted out of the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received on the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets that contained errors preventing
          them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets requested for transmission which were not
          addressed to a multicast or broadcast address at this layer,
          including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of outbound packets which were chosen to be
          discarded even though no errors had been detected to prevent their
          being transmitted. One possible reason for discarding such a packet
          could be to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets which were chosen to be discarded
          even though no errors had been detected to prevent their being
          delivered. One possible reason for discarding such a packet could be
          to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a multicast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a broadcast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.HPNA.Interface.{i}.QoS." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        QoS configuration object.
      </description>

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

    <object name="Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}."
        access="readWrite" numEntriesParameter="FlowSpecNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        Flow specification table. The {{object|.QoS.Classification}} table is
        used to classify ingress traffic, where
        {{param|.QoS.Classification.{i}.TrafficClass}} is one of the
        classification result outputs. This ''TrafficClass'' value can be used
        to look up the appropriate {{object}} entry (i.e. the {{object}} entry
        whose {{param|TrafficClasses}} list contains a matching traffic class).
        For enabled table entries, if {{param|TrafficClasses}} is {{empty}}
        then the table entry is inoperable and the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}} The {{enum|Error_Misconfigured}}
          value indicates that a necessary configuration value is undefined or
          invalid. 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="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="TrafficClasses" access="readWrite">
        <description>
          {{list}} This list identifies the set of traffic classes associated
          with this flow spec.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <unsignedInt/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="FlowType" access="readWrite">
        <description>
          Flow type. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="CBR">
              <description>Constant Bit Rate</description>
            </enumeration>
            <enumeration value="VBR">
              <description>Variable Bit Rate</description>
            </enumeration>
            <enumeration value="VBR-NRT">
              <description>Variable Bit Rate - Non Real Time</description>
            </enumeration>
            <enumeration value="BE">
              <description>Best Effort</description>
            </enumeration>
          </string>
          <default type="object" value="BE"/>
        </syntax>
      </parameter>

      <parameter name="Priority" access="readWrite">
        <description>
          Flow queue network priority. Priority 0 is the lowest priority.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="7"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Latency" access="readWrite">
        <description>
          Maximum latency of the flow (expressed in {{units}}). Value 0 means
          no latency requirements.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="999"/>
            <units value="milliseconds"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Jitter" access="readWrite">
        <description>
          Maximum jitter of the flow (expressed in {{units}}). Value 0 means no
          jitter requirements.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="999"/>
            <units value="milliseconds"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="PacketSize" access="readWrite">
        <description>
          Typical packet size. Value 0 means undefined packet size.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="MinRate" access="readWrite">
        <description>
          Minimum required rate in Kbps. Value 0 means no MinRate requirements.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="AvgRate" access="readWrite">
        <description>
          Average required rate in Kbps. Value 0 means no AvgRate requirements.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="MaxRate" access="readWrite">
        <description>
          Maximum required rate in Kbps. Value 0 means no MaxRate requirements.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="PER" access="readWrite">
        <description>
          The desired packet error rate (expressed in 1E-8, e.g. PER of 1.27E-6
          will be presented as 127). Value 0 means no PER requirements.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Timeout" access="readWrite">
        <description>
          Flow inactivity tear down timeout (expressed in {{units}}). Value 0
          means unlimited timeout.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.HPNA.Interface.{i}.AssociatedDevice.{i}."
        access="readOnly" numEntriesParameter="AssociatedDeviceNumberOfEntries"
        minEntries="0" maxEntries="unbounded">
      <description>
        This table provides information about other HPNA devices that are
        directly accessible via this HPNA interface.
      </description>
      <uniqueKey>
        <parameter ref="MACAddress"/>
      </uniqueKey>

      <parameter name="MACAddress" access="readOnly">
        <description>
          The physical address of this node.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="NodeID" access="readOnly">
        <description>
          The Node ID of this node.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="IsMaster" access="readOnly">
        <description>
          Whether this node is the HPNA network master.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Synced" access="readOnly">
        <description>
          Whether this node is synchronized with the HPNA network master. If
          this node is the HPNA network master, {{param}} MUST be {{true}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="TotalSyncTime" access="readOnly" activeNotify="canDeny">
        <description>
          Total time in {{units}} (since device reset) that this node has been
          up and synchronized to the HPNA network master.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxBitRate" access="readOnly">
        <description>
          This node's maximum HPNA PHY bit rate (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PHYDiagnosticsEnable" access="readWrite">
        <description>
          Enable / disable PHY throughput diagnostics mode on this node. All
          devices that are enabled will participate in the HPNA network PHY
          throughput diagnostics process.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Active" access="readOnly">
        <description>
          Whether or not this node is currently present in the HPNA network.
          The ability to list inactive nodes is OPTIONAL. If the CPE includes
          inactive nodes in this table, {{param}} MUST be set to {{false}} for
          each inactive node. The length of time an inactive node remains
          listed in this table is a local matter to the CPE.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.HPNA.Diagnostics." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        The HPNA Diagnostics object.
      </description>
    </object>

    <object name="Device.HPNA.Diagnostics.PHYThroughput." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        HPNA PHY throughput diagnostics configuration and results. When
        diagnostics are requested, all HPNA nodes for which the
        {{param|##.Interface.{i}.AssociatedDevice.{i}.PHYDiagnosticsEnable}}
        parameter is set enter PHY diagnostics mode.
      </description>

      <parameter name="DiagnosticsState" access="readWrite">
        <description>
          Indicates availability of diagnostic data. {{enum}} Value is set to
          Requested to initiate the diagnostic test. When writing, the only
          allowed value is 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 PHY diagnostics test is completed, the value of this
          parameter MUST be either Complete (if the test completed
          successfully), or one of the Error values listed above. 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.
        </description>
        <syntax>
          <string>
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error_FailToEnableCert" access="readOnly"/>
            <enumeration value="Error_CertCmdTimeout" access="readOnly"/>
            <enumeration value="Error_UnknownErr" access="readOnly"/>
            <enumeration value="Error_UnsupportedOpcode" access="readOnly"/>
            <enumeration value="Error_InvalidParam" access="readOnly"/>
            <enumeration value="Error_UnsupportedCmdSegment" access="readOnly"/>
            <enumeration value="Error_UnsupportedDataGen" access="readOnly"/>
            <enumeration value="Error_InvalidSequence" access="readOnly"/>
            <enumeration value="Error_InvalidFrame" access="readOnly"/>
            <enumeration value="Eror_InvalidOpcode" access="readOnly"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} This is the interface over which the test is to be
          performed.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetParent=".HPNA.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NumPacketsInBurst" access="readWrite">
        <description>
          Number of test packet in burst to be send during PHY diagnostics test
          from each HPNA device to other HPNA device in the HPNA network.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="BurstInterval" access="readWrite">
        <description>
          Test packet burst interval length (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TestPacketPayloadLength" access="readWrite">
        <description>
          Payload length in the test packets.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="1480"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PayloadEncoding" access="readWrite">
        <description>
          HPNA payload encoding in PHY diagnostics. 0 is used for negotiated
          payload between devices according to line conditions.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PayloadDataGen" access="readWrite">
        <description>
          Test packets payload data generator value.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PayloadType" access="readWrite">
        <description>
          Test packets payload type. {{enum}} In Pattern mode the
          PayloadDataGen value is repeated pattern in the payload. In
          IncrementByte mode LSByte in PayloadDataGen is used as first payload
          and next bytes in payload are incremented.
        </description>
        <syntax>
          <string>
            <enumeration value="Pattern"/>
            <enumeration value="IncrementByte"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PriorityLevel" access="readWrite">
        <description>
          Priority level of PHY diagnostics packets (0 lowest -7 highest).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="7"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ResultNumberOfEntries" access="readOnly">
        <description>
          {{numentries}} This is the number of PHY diagnostics results.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.HPNA.Diagnostics.PHYThroughput.Result.{i}."
        access="readOnly" numEntriesParameter="ResultNumberOfEntries"
        minEntries="0" maxEntries="unbounded">
      <description>
        PHY throughput diagnostics results. Each result object corresponds to
        unidirectional traffic between two PHY diagnostics-enabled nodes (so
        there are two such objects for each such pair).
      </description>
      <uniqueKey>
        <parameter ref="SrcMACAddress"/>
        <parameter ref="DestMACAddress"/>
      </uniqueKey>

      <parameter name="SrcMACAddress" access="readOnly">
        <description>
          HPNA source MAC address.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="DestMACAddress" access="readOnly">
        <description>
          HPNA destination MAC address.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="PHYRate" access="readOnly">
        <description>
          PHY diagnostics HPNA PHY rate (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="BaudRate" access="readOnly">
        <description>
          PHY Baud rate (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Kbaud"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SNR" access="readOnly">
        <description>
          PHY diagnostics SNR (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="0.1dB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          Number of received packets in PHY diagnostics mode.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="Attenuation" access="readOnly">
        <description>
          Measured attenuation (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="0.1dB"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.HPNA.Diagnostics.PerformanceMonitoring."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        HPNA performance monitoring configuration and results. Performance
        monitoring results are sampled from all nodes in the HPNA network. All
        packet related counters are sampled synchronized at all nodes in the
        HPNA network in order to derive packet loss calculations in the HPNA
        network.
      </description>

      <parameter name="DiagnosticsState" access="readWrite">
        <description>
          Indicates availability of performance monitoring data. {{enum}} The
          value is set to {{enum|Requested}} to initiate performance monitoring
          sampling. When writing, the only allowed value is {{enum|Requested}}.
          When requested, the CPE SHOULD wait until after completion of the
          communication session with the ACS before starting the sampling. When
          the sampling 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. If SampleInterval is non-zero, the
          CPE will automatically initiate PM sampling every
          {{param|SampleInterval}} seconds. In this case, the value of this
          variable MUST transition from {{enum|Requested}} to {{enum|Complete}}
          (or to one of the defined error values). The CPE MAY reject a request
          because insufficient time has elapsed since the previous request, in
          which case it MUST indicate this via the
          {{enum|Error_SampleIntervalTooSmall}} value. If the ACS requests
          initiation of the PM sampling while it is already active (i.e. the
          value of this parameter is already {{enum|Requested}}), then the CPE
          MUST establish a new connection to the ACS on completion of the
          sampling. This guarantees that the interface seen by the ACS is
          independent of whether the CPE has automatically initiated the
          sampling.
        </description>
        <syntax>
          <string>
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error_SampleIntervalTooSmall"
                access="readOnly"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} This is the interface over which the test is to be
          performed.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetParent=".HPNA.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SampleInterval" access="readWrite">
        <description>
          Time in {{units}} between automatic collection of performance
          monitoring data. A value of zero disables automatic collection of
          data. The CPE MAY impose a minimum sample interval, in which case an
          attempt to set a (non-zero) interval that is less than this minimum
          MUST set the interval to the minimum and MUST NOT be regarded as an
          error. If SampleInterval is a simple fraction of a day, e.g. 900 (a
          quarter of an hour) or 3600 (an hour), the CPE MAY choose to align
          sample intervals with time of day, but is not required to do so.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        Per-node HPNA performance monitoring results. When automatic collection
        is enabled, i.e. {{param|#.SampleInterval}} is non-zero, the "current"
        interval is defined by the most recent automatic sample and the most
        recent subsequent manual sample, if any. When automatic collection is
        disabled, i.e. SampleInterval is zero, the "current" interval is
        defined by the three most recent manual samples. Note: Packets in
        statistics counters are Ethernet packets.
      </description>

      <parameter name="CurrentStart" access="readOnly">
        <description>
          Start time for the current interval. When automatic collection is
          enabled, i.e. SampleInterval is non-zero, the current interval
          started at the most recent automatic sample. When automatic
          collection is disabled, i.e. SampleInterval is zero, the current
          interval started two manual samples ago.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="CurrentEnd" access="readOnly">
        <description>
          End time for the current interval. When automatic collection is
          enabled, i.e. SampleInterval is non-zero, the current interval ended
          at the most recent manual sample since the most recent automatic
          sample. If there has been no such manual sample, the current interval
          is empty. When automatic collection is disabled, i.e. SampleInterval
          is zero, the current interval ended at the most recent manual sample.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="NodeNumberOfEntries" access="readOnly">
        <description>
          {{numentries}} This is the number of HPNA nodes for which performance
          monitoring results were collected during the current sample interval.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}."
        access="readOnly" numEntriesParameter="NodeNumberOfEntries"
        minEntries="1" maxEntries="unbounded">
      <description>
        Per-node HPNA performance monitoring results during the current sample
        interval. Each table entry contains the results collected between an
        HPNA node (as indicated by {{param|MACAddress}}) and the local HPNA
        interface (as indicated by {{param|##.Interface}}). Note: Packet
        counters indicate the number of packets received between
        {{param|#.CurrentStart}} and {{param|#.CurrentEnd}}.
      </description>
      <uniqueKey>
        <parameter ref="MACAddress"/>
      </uniqueKey>

      <parameter name="MACAddress" access="readOnly">
        <description>
          The MAC address of the HPNA node.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="BytesSent" access="readOnly">
        <description>
          The total number of bytes sent by host equipment for transmission on
          the HPNA interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly">
        <description>
          The total number of received bytes on the HPNA interface destined for
          the host equipment.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          The total number of packets sent by host equipment for transmission
          on the HPNA interface. Number includes also short error packets and
          control packets.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          The total number of good packets received on the HPNA interface
          destined for the host equipment.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" access="readOnly">
        <description>
          The number of broadcast packets transmitted on the HPNA interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" access="readOnly">
        <description>
          The number of broadcast packets received on the HPNA interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" access="readOnly">
        <description>
          The number of multicast packets transmitted on the HPNA interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" access="readOnly">
        <description>
          The number of multicast packets received on the HPNA interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsCrcErrored" access="readOnly">
        <description>
          The number of packets received on the HPNA interface with CRC errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PacketsCrcErroredHost" access="readOnly">
        <description>
          The number of CRC error packets received on the HPNA interface
          destined for the host equipment.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PacketsShortErrored" access="readOnly">
        <description>
          The number of packets received on the HPNA interface that are too
          short to be valid.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PacketsShortErroredHost" access="readOnly">
        <description>
          The number packets sent by the host equipment that are too short to
          be valid.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RxPacketsDropped" access="readOnly">
        <description>
          The number of received packets dropped due to lack of resources.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="TxPacketsDropped" access="readOnly">
        <description>
          The number packets sent by the host equipment for transmission on the
          HPNA interface but dropped due to lack of resources.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ControlRequestLocal" access="readOnly">
        <description>
          The number of HPNA control request packets from local host.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ControlReplyLocal" access="readOnly">
        <description>
          The number of HPNA control reply packets to local host.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ControlRequestRemote" access="readOnly">
        <description>
          The number of HPNA control request packets from remote host.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ControlReplyRemote" access="readOnly">
        <description>
          The number of HPNA control reply packets to remote host.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PacketsSentWire" access="readOnly">
        <description>
          The total number of packets transmitted to wire.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSentWire" access="readOnly">
        <description>
          The total number of broadcast packets transmitted to wire.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSentWire" access="readOnly">
        <description>
          The total number of multicast packets transmitted to wire.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsInternalControl" access="readOnly">
        <description>
          The number of HPNA control request packets from internal node.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsInternalControl" access="readOnly">
        <description>
          The number of HPNA broadcast control request packets from internal
          node.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceivedQueued" access="readOnly">
        <description>
          The number of received packets queued on host output queues.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceivedForwardUnknown" access="readOnly">
        <description>
          The number of packets received and forwarded to unknown hosts.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NodeUtilization" access="readOnly">
        <description>
          The node utilization (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="1000"/>
            <units value="0.1%"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.HPNA.Diagnostics.PerformanceMonitoring.Channels."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        Per-channel HPNA performance monitoring results. Note: channels are
        unidirectional.
      </description>

      <parameter name="TimeStamp" access="readOnly">
        <description>
          Time at which channel data was last collected.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ChannelNumberOfEntries" access="readOnly">
        <description>
          {{numentries}} This is the number of HPNA channels for which
          performance monitoring results have been collected.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object
        name="Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}."
        access="readOnly" numEntriesParameter="ChannelNumberOfEntries"
        minEntries="0" maxEntries="unbounded">
      <description>
        Per-channel HPNA performance monitoring results.
      </description>
      <uniqueKey>
        <parameter ref="HostSrcMACAddress"/>
        <parameter ref="HostDestMACAddress"/>
      </uniqueKey>

      <parameter name="HostSrcMACAddress" access="readOnly">
        <description>
          The host source MAC address associated with the channel.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="HostDestMACAddress" access="readOnly">
        <description>
          The host destination MAC address associated with the channel.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="HPNASrcMACAddress" access="readOnly">
        <description>
          The HPNA source MAC address associated with the channel.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="HPNADestMACAddress" access="readOnly">
        <description>
          The HPNA destination MAC address associated with the channel.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="PHYRate" access="readOnly">
        <description>
          Channel PHY rate (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="BaudRate" access="readOnly">
        <description>
          PHY Baud rate (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Kbaud"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SNR" access="readOnly">
        <description>
          Channel actual SNR measured in receiver side (expressed in
          {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="0.1dB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly">
        <description>
          Number of packets sent in the channel.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly">
        <description>
          Pre-LARQ number of packets received in the channel.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LARQPacketsReceived" access="readOnly">
        <description>
          Post-LARQ number of packets received in the channel. Valid only if
          LARQ is enabled.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="FlowSpec" access="readOnly">
        <description>
          {{reference}} Identifies the ''FlowSpec'' associated with the
          channel. This parameter is only used for channels that correspond to
          egress traffic from the local HPNA interface. {{null}} means that the
          channel is not associated with any specified flow specification in
          the QoS object.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong"
                targetParent=".HPNA.Interface.{i}.QoS.FlowSpec."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MoCA." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        MoCA object that contains the {{object|Interface}} table
        {{bibref|MoCAv1.0}} {{bibref|MoCAv1.1}}.
      </description>

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

    <object name="Device.MoCA.Interface.{i}." access="readOnly"
        numEntriesParameter="InterfaceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true">
      <description>
        MoCA interface table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). Each table entry models the PHY and
        MAC levels of a MoCA interface {{bibref|MoCAv1.0}} {{bibref|MoCAv1.1}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the interface. This parameter is based on
          ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the interface (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}} When {{param|Enable}} is
          {{false}} then {{param}} SHOULD normally be {{enum|Down}} (or
          {{enum|NotPresent}} or {{enum|Error}} if there is a fault condition
          on the interface). When {{param|Enable}} is changed to {{true}} then
          {{param}} SHOULD change to {{enum|Up}} if and only if the interface
          is able to transmit and receive network traffic; it SHOULD change to
          {{enum|Dormant}} if and only if the interface is operable but is
          waiting for external actions before it can transmit and receive
          network traffic (and subsequently change to {{enum|Up}} if still
          operable when the expected actions have completed); it SHOULD change
          to {{enum|LowerLayerDown}} if and only if the interface is prevented
          from entering the {{enum|Up}} state because one or more of the
          interfaces beneath it is down; it SHOULD remain in the {{enum|Error}}
          state if there is an error or other fault condition detected on the
          interface; it SHOULD remain in the {{enum|NotPresent}} state if the
          interface has missing (typically hardware) components; it SHOULD
          change to {{enum|Unknown}} if the state of the interface can not be
          determined for some reason. This parameter is based on
          ''ifOperStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent"/>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </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 textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the interface entered its
          current operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowerLayers" access="readWrite">
        <description>
          {{list}} {{reference|an interface object that is stacked immediately
          below this interface object}} See {{bibref|TR-181i2|Section 4.2.1}}.
          Note: Since {{object}} is a layer 1 interface, it is expected that
          {{param}} will not be used.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Upstream" access="readOnly">
        <description>
          Indicates whether the interface points towards the Internet
          ({{true}}) or towards End Devices ({{false}}). For example:

          * For an Internet Gateway Device, {{param}} will be {{true}} for all
            WAN interfaces and {{false}} for all LAN interfaces.

          * For a standalone WiFi Access Point that is connected via Ethernet
            to an Internet Gateway Device, {{param}} will be {{true}} for the
            Ethernet interface and {{false}} for the WiFi Radio interface.

          * For an End Device, {{param}} will be {{true}} for all interfaces.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readOnly">
        <description>
          The MAC Address of the interface. Note: This is not necessarily the
          same as the Ethernet header source or destination MAC address, which
          is associated with the IP interface and is modeled via the
          {{param|.Ethernet.Link.{i}.MACAddress}} parameter.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="FirmwareVersion" access="readOnly">
        <description>
          This interface's firmware version. This parameter is based on
          ''mocaIfSoftwareVersion'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxBitRate" access="readOnly">
        <description>
          The maximum MoCA PHY bit rate (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxIngressBW" access="readOnly">
        <description>
          The maximum bandwidth of this interface for flows onto the MoCA
          network in {{units}}. This parameter is based on
          ''mocaIfMaxIngressNodeBw'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxEgressBW" access="readOnly">
        <description>
          The maximum bandwidth of this interface for flows from the MoCA
          network in {{units}}. This parameter is based on
          ''mocaIfMaxEgressNodeBw'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="HighestVersion" access="readOnly">
        <description>
          Identifies the highest MoCA version that this interface supports.
          This element MUST be in the form of dot-delimited integers, where
          each successive integer represents a more minor category of
          variation. For example, 1.0, where the components mean major.minor
          revision number. {{pattern}} This parameter is based on
          ''mocaIfMocaVersion'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
            <pattern value="\d+(\.\d+)*"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="CurrentVersion" access="readOnly">
        <description>
          Identifies the MoCA version that the MoCA network is currently
          running. This element MUST be in the form of dot-delimited integers,
          where each successive integer represents a more minor category of
          variation. For example, 1.0, where the components mean major.minor
          revision number. {{pattern}} This parameter is based on
          ''mocaIfNetworkVersion'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
            <pattern value="\d+(\.\d+)*"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NetworkCoordinator" access="readOnly">
        <description>
          The Node ID of the current Network Coordinator (NC) for the MoCA
          network. This parameter is based on ''mocaIfNC'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="NodeID" access="readOnly">
        <description>
          The Node ID of this interface. This parameter is based on
          ''mocaIfNodeID'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaxNodes" access="readOnly">
        <description>
          The maximum network node capability supported by the interface. If
          {{param}} is {{true}} then the interface supports 16 nodes (the
          maximum for a MoCA 1.1 network). If {{param}} is false then the
          interface supports 8 nodes (the maximum for a MoCA 1.0 network).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PreferredNC" access="readWrite">
        <description>
          Whether this interface is a preferred Network Coordinator (NC). This
          parameter is based on ''mocaIfPreferredNC'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="BackupNC" access="readOnly">
        <description>
          The Node ID of the backup Network Coordinator node. This parameter is
          based on ''mocaIfBackupNC'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PrivacyEnabledSetting" access="readWrite">
        <description>
          The configured privacy mode. This indicates whether link-layer
          security is enabled ({{true}}) or disabled ({{false}}) for network
          admission. The configured privacy setting MAY NOT match the current
          operational state ({{param|PrivacyEnabled}}), since this setting is
          only applied during network formation or admission.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PrivacyEnabled" access="readOnly">
        <description>
          Indicates whether link-layer security is enabled or disabled. This
          parameter is based on ''mocaIfPrivacyEnable'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="FreqCapabilityMask" access="readOnly">
        <description>
          Hexadecimal encoded 64-bit mask of supported frequencies. This is the
          bit map of the spectrum that the interface supports, and each bit
          represents 25 MHz of spectrum. The least significant bit of the
          rightmost character corresponds to 800MHz, which is the lowest
          frequency. For example, an interface that supports 1150 MHz through
          1500 MHz would have a value of 0x000000001FFFC000. This parameter is
          based on ''mocaIfCapabilityMask'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="8" maxLength="8"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="FreqCurrentMaskSetting" access="readWrite">
        <description>
          The configured hexadecimal encoded 64-bit mask of enabled frequencies
          for network admission. The configured frequencies MAY NOT match the
          current operational state ({{param|FreqCurrentMask}}), since this
          setting is only applied during network formation or admission.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="8" maxLength="8"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="FreqCurrentMask" access="readOnly">
        <description>
          Hexadecimal encoded 64-bit mask of used frequencies. This is the bit
          map of the spectrum that can be used and is a subset of the
          {{param|FreqCapabilityMask}}. Each bit represents 25 MHz of spectrum.
          The least significant bit of the rightmost character corresponds to
          800MHz, which is the lowest frequency. This parameter is based on
          ''mocaIfChannelMask'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="8" maxLength="8"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="CurrentOperFreq" access="readOnly">
        <description>
          Current Operational Frequency. The RF frequency in Hz to which the
          MoCA interface is currently tuned. This parameter is only valid when
          {{param|Status}} is {{enum|Up|Status}}. This parameter is based on
          ''mocaIfRFChannel'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LastOperFreq" access="readOnly">
        <description>
          Last Operational Frequency. The RF frequency in Hz to which the MoCA
          interface was tuned when last in the {{enum|Up|Status}} state. This
          parameter is based on ''mocaIfLOF'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="KeyPassphrase" access="readWrite">
        <description>
          MoCA Password. The value consists of numeric characters (0-9).
          {{pattern}} This parameter is based on ''mocaIfPassword'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax hidden="true">
          <string>
            <size minLength="12" maxLength="17"/>
            <pattern value="\d+"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TxPowerLimit" access="readWrite">
        <description>
          Transmit Power attenuation in dB relative to the maximum transmit
          power. The MoCA interface SHOULD have {{param|Enable}} set to
          {{false}} for any change in this configuration. If the parameter is
          modified when {{param|Enable}} is {{true}} then this change might
          take several minutes to complete. This parameter is based on
          ''mocaIfTxPowerLimit'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PowerCntlPhyTarget" access="readWrite">
        <description>
          Target PHY rate in Mbps for the power control algorithm. The MoCA
          interface SHOULD have {{param|Enable}} set to {{false}} for any
          change in this configuration. If the parameter is modified when
          {{param|Enable}} is {{true}} then this change might take several
          minutes to complete. This parameter is based on
          ''mocaIfPowerControlTargetRate'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="BeaconPowerLimit" access="readWrite">
        <description>
          Beacon Transmit Power attenuation in {{units}} relative to the
          maximum transmit power. The MoCA interface SHOULD have
          {{param|Enable}} set to {{false}} for any change in this
          configuration. If the parameter is modified when {{param|Enable}} is
          {{true}} then this change might take several minutes to complete.
          This parameter is based on ''mocaIfBeaconPowerLimit'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="dB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="NetworkTabooMask" access="readOnly">
        <description>
          Hexadecimal encoded 64-bit mask of MoCA taboo channels identified for
          the home network. This is the bit map of the spectrum that the
          interface supports, and each bit represents 25 MHz of spectrum. The
          least significant bit of the rightmost character corresponds to
          800MHz, which is the lowest frequency. This parameter is based on
          ''mocaIfTabooChannelMask'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="8" maxLength="8"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="NodeTabooMask" access="readOnly">
        <description>
          Hexadecimal encoded 64-bit mask of supported frequencies. This is the
          bit map of the spectrum that the interface supports, and each bit
          represents 25 MHz of spectrum. The least significant bit of the
          rightmost character corresponds to 800MHz, which is the lowest
          frequency. This parameter is based on ''mocaIfNodeTabooChannelMask''
          from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="8" maxLength="8"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="TxBcastRate" access="readOnly">
        <description>
          The broadcast PHY transmit rate in {{units}} for this interface. This
          parameter is based on ''mocaIfTxGcdRate'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TxBcastPowerReduction" access="readOnly">
        <description>
          Transmit Power attenuation in {{units}} relative to the maximum
          transmit power for broadcast transmissions. This parameter is based
          on ''mocaIfTxGcdPowerReduction'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="dB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="QAM256Capable" access="readOnly">
        <description>
          Whether this interface supports the 256 QAM feature. This parameter
          is based on ''mocaIfQAM256Capable'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PacketAggregationCapability" access="readOnly">
        <description>
          The packet aggregation capability supported by the interface.
          Standard values are 0 (no support), 6 (6 {{units}}) or 10 (10
          {{units}}). This parameter is based on
          ''mocaIfPacketsAggrCapability'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="10"/>
            <units value="packets"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

    <object name="Device.MoCA.Interface.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Throughput statistics for this interface. The CPE MUST reset the
        interface's Stats parameters (unless otherwise stated in individual
        object or parameter descriptions) either when the interface becomes
        operationally down due to a previous administrative down (i.e. the
        interface's {{param|#.Status}} parameter transitions to a down state
        after the interface is disabled) or when the interface becomes
        administratively up (i.e. the interface's {{param|#.Enable}} parameter
        transitions from {{false}} to {{true}}). Administrative and operational
        interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>

      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes received on the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets transmitted out of the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received on the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets that contained errors preventing
          them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets requested for transmission which were not
          addressed to a multicast or broadcast address at this layer,
          including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of outbound packets which were chosen to be
          discarded even though no errors had been detected to prevent their
          being transmitted. One possible reason for discarding such a packet
          could be to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets which were chosen to be discarded
          even though no errors had been detected to prevent their being
          delivered. One possible reason for discarding such a packet could be
          to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a multicast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a broadcast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MoCA.Interface.{i}.QoS." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        The QoS object provides information on MoCA parameterized QoS for this
        interface {{bibref|MoCAv1.1}}.
      </description>

      <parameter name="EgressNumFlows" access="readOnly">
        <description>
          The number of QoS flows that this interface has from the MoCA
          network. This parameter is based on ''mocaIfEgressNodeNumFlows'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="IngressNumFlows" access="readOnly">
        <description>
          The number of QoS flows that this interface has onto the MoCA
          network. This parameter is based on ''mocaIfIngressNodeNumFlows''
          from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

    <object name="Device.MoCA.Interface.{i}.QoS.FlowStats.{i}."
        access="readOnly" numEntriesParameter="FlowStatsNumberOfEntries"
        minEntries="0" maxEntries="unbounded">
      <description>
        The flow statistics table provides information on the MoCA
        parameterized QoS flows this interface has allocated onto the MoCA
        network.
      </description>
      <uniqueKey>
        <parameter ref="FlowID"/>
      </uniqueKey>

      <parameter name="FlowID" access="readOnly">
        <description>
          The flow ID used to identify a flow in the network. This parameter is
          based on ''mocaIfFlowID'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PacketDA" access="readOnly">
        <description>
          The Destination Address (DA) for the packets in this flow. This
          parameter is based on ''mocaIfPacketDA'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="MaxRate" access="readOnly">
        <description>
          Maximum required rate in {{units}}. This parameter is based on
          ''mocaIfPeakDataRate'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxBurstSize" access="readOnly">
        <description>
          Maximum burst size. This parameter is based on ''mocaIfBurstSize''
          from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LeaseTime" access="readOnly">
        <description>
          Flow lease time (expressed in {{units}}). A {{param}} of 0 means
          unlimited lease time. This parameter is based on ''mocaIfLeaseTime''
          from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LeaseTimeLeft" access="readOnly" activeNotify="canDeny">
        <description>
          Flow lease time remaining (expressed in {{units}}). If
          {{param|LeaseTime}} is 0 then a {{param}} of 0 means unlimited lease
          time; otherwise, a {{param}} of 0 means expired. This parameter is
          based on ''mocaIfLeaseTimeLeft'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="FlowPackets" access="readOnly" activeNotify="canDeny">
        <description>
          The number of packets transmitted for this flow. This parameter is
          based on ''mocaIfTxPacketsFlow'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.MoCA.Interface.{i}.AssociatedDevice.{i}."
        access="readOnly" numEntriesParameter="AssociatedDeviceNumberOfEntries"
        minEntries="0" maxEntries="unbounded">
      <description>
        This table contains information about other MoCA devices currently
        associated with this MoCA interface.
      </description>
      <uniqueKey>
        <parameter ref="MACAddress"/>
      </uniqueKey>

      <parameter name="MACAddress" access="readOnly">
        <description>
          The MAC address of the associated device's MoCA interface.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="NodeID" access="readOnly">
        <description>
          The Node ID of this remote device. This parameter is based on
          ''mocaNodeIndex'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="PreferredNC" access="readOnly">
        <description>
          Whether this remote device is a preferred Network Coordinator (NC).
          This parameter is based on ''mocaNodePreferredNC'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="HighestVersion" access="readOnly">
        <description>
          Identifies the highest MoCA version that this remote device supports.
          This element MUST be in the form of dot-delimited integers, where
          each successive integer represents a more minor category of
          variation. For example, 1.0, where the components mean major.minor
          revision number. {{pattern}} This parameter is based on
          ''mocaNodeMocaVersion'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
            <pattern value="\d+(\.\d+)*"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PHYTxRate" access="readOnly">
        <description>
          The PHY transmit rate (in {{units}}) to this remote device. This
          parameter is based on ''mocaMeshTxRate'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PHYRxRate" access="readOnly">
        <description>
          The PHY receive rate (in {{units}}) from this remote device.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TxPowerControlReduction" access="readOnly">
        <description>
          The reduction in transmitter level (in {{units}}) due to power
          control. This parameter is based on ''mocaNodeTxPowerReduction'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="dB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RxPowerLevel" access="readOnly" activeNotify="canDeny">
        <description>
          The power level (in {{units}}) received at the MoCA interface from
          this remote device. This parameter is based on ''mocaNodeRxPower''
          from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="dBm"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TxBcastRate" access="readOnly">
        <description>
          The broadcast PHY transmit rate (in {{units}}) from this remote
          device. This parameter is based on ''mocaNodeTxGcdRate'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RxBcastPowerLevel" access="readOnly"
          activeNotify="canDeny">
        <description>
          The power level (in {{units}}) received at the MoCA interface from
          this remote device. This parameter is based on ''mocaNodeRxGcdPower''
          from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="dBm"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="TxPackets" access="readOnly" activeNotify="canDeny">
        <description>
          The number of packets transmitted to this remote device (Note:
          Includes Broadcast, Multicast and Unicast packets).
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RxPackets" access="readOnly" activeNotify="canDeny">
        <description>
          The number of packets received from this remote device (Note:
          Includes Broadcast, Multicast and Unicast packets). This parameter is
          based on ''mocaNodeRxPackets'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RxErroredAndMissedPackets" access="readOnly">
        <description>
          The number of errored and missed packets received from this remote
          device. This parameter is based on ''mocaNodeRxDrops'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="QAM256Capable" access="readOnly">
        <description>
          Whether this remote device supports the 256 QAM feature. This
          parameter is based on ''mocaNodeQAM256Capable'' from
          {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PacketAggregationCapability" access="readOnly">
        <description>
          The packet aggregation capability supported by the remote device.
          Standard values are 0 (no support), 6 (6 {{units}}) or 10 (10
          {{units}}). This parameter is based on
          ''mocaNodePacketsAggrCapability'' from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="10"/>
            <units value="packets"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RxSNR" access="readOnly">
        <description>
          The signal to noise level (in {{units}}) received at this interface
          from this remote device. This parameter is based on ''mocaNodeSNR''
          from {{bibref|MOCA11-MIB}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="dBm"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Active" access="readOnly">
        <description>
          Whether or not this remote device is currently present in the MoCA
          network. The ability to list inactive nodes is OPTIONAL. If the CPE
          includes inactive nodes in this table, {{param}} MUST be set to
          {{false}} for each inactive node. The length of time an inactive node
          remains listed in this table is a local matter to the CPE.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.HomePlug." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        HomePlug object that contains the {{object|Interface}} table. The
        HomePlug industry standard {{bibref|HPAV1.1}} defines peer to peer
        communication over powerline medium.
      </description>

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

    <object name="Device.HomePlug.Interface.{i}." access="readOnly"
        numEntriesParameter="InterfaceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true">
      <description>
        HomePlug interface table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). Each table entry models the PHY and
        MAC levels of a HomePlug interface {{bibref|HPAV1.1}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the interface. This parameter is based on
          ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the interface (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}} When {{param|Enable}} is
          {{false}} then {{param}} SHOULD normally be {{enum|Down}} (or
          {{enum|NotPresent}} or {{enum|Error}} if there is a fault condition
          on the interface). When {{param|Enable}} is changed to {{true}} then
          {{param}} SHOULD change to {{enum|Up}} if and only if the interface
          is able to transmit and receive network traffic; it SHOULD change to
          {{enum|Dormant}} if and only if the interface is operable but is
          waiting for external actions before it can transmit and receive
          network traffic (and subsequently change to {{enum|Up}} if still
          operable when the expected actions have completed); it SHOULD change
          to {{enum|LowerLayerDown}} if and only if the interface is prevented
          from entering the {{enum|Up}} state because one or more of the
          interfaces beneath it is down; it SHOULD remain in the {{enum|Error}}
          state if there is an error or other fault condition detected on the
          interface; it SHOULD remain in the {{enum|NotPresent}} state if the
          interface has missing (typically hardware) components; it SHOULD
          change to {{enum|Unknown}} if the state of the interface can not be
          determined for some reason. This parameter is based on
          ''ifOperStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent"/>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </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 textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the interface entered its
          current operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowerLayers" access="readWrite">
        <description>
          {{list}} {{reference|an interface object that is stacked immediately
          below this interface object}} See {{bibref|TR-181i2|Section 4.2.1}}.
          Note: Since {{object}} is a layer 1 interface, it is expected that
          {{param}} will not be used.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Upstream" access="readOnly">
        <description>
          Indicates whether the interface points towards the Internet
          ({{true}}) or towards End Devices ({{false}}). For example:

          * For an Internet Gateway Device, {{param}} will be {{true}} for all
            WAN interfaces and {{false}} for all LAN interfaces.

          * For a standalone WiFi Access Point that is connected via Ethernet
            to an Internet Gateway Device, {{param}} will be {{true}} for the
            Ethernet interface and {{false}} for the WiFi Radio interface.

          * For an End Device, {{param}} will be {{true}} for all interfaces.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readOnly">
        <description>
          The MAC Address of the interface. Note: This is not necessarily the
          same as the Ethernet header source or destination MAC address, which
          is associated with the IP interface and is modeled via the
          {{param|.Ethernet.Link.{i}.MACAddress}} parameter.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="LogicalNetwork" access="readWrite">
        <description>
          The textual name of the HomePlug Logical Network.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Version" access="readOnly">
        <description>
          Indicates the HomePlug version of the interface. This element SHOULD
          be in the form of dot-delimited integers, where each successive
          integer represents a more minor category of variation. For example:

          : "1.0"

          : "1.1"
        </description>
        <syntax>
          <string>
            <size maxLength="16"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="FirmwareVersion" access="readOnly">
        <description>
          The firmware version of the interface.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ForceCCo" access="readWrite">
        <description>
          Central Coordinator (CCo) selection mode. If {{false}}, CCo selection
          is automatic. If {{true}}, the local HomePlug interface is forced to
          be CCo and all other devices in the Logical Network MUST be set to
          automatic CCo selection. Typically {{param}} is set to automatic CCo
          selection ({{false}}).
        </description>
        <syntax>
          <boolean/>
          <default type="factory" value="false"/>
        </syntax>
      </parameter>

      <parameter name="NetworkPassword" access="readWrite">
        <description>
          The network password of the device. This is a human readable ASCII
          string that is hashed per the HomePlug specification to generate the
          Network Membership Key (NMK). Note that care needs to be taken when
          setting this parameter as it might prohibit communication with other
          adapters or equipment connected via the powerline network.
        </description>
        <syntax hidden="true">
          <string>
            <size maxLength="32"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="OtherNetworksPresent" access="readOnly">
        <description>
          {{list}} Indicates whether any other HomePlug networks are currently
          visible via this interface. Examples of valid list items include, but
          are not limited to:

          : "HomePlugAV"

          : "HomePlug1.0"

          : "Other"
        </description>
        <syntax>
          <list>
            <size maxLength="64"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="MaxBitRate" access="readOnly">
        <description>
          The maximum PHY bit rate supported by this interface (expressed in
          {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

    <object name="Device.HomePlug.Interface.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Throughput statistics for this interface. The CPE MUST reset the
        interface's Stats parameters (unless otherwise stated in individual
        object or parameter descriptions) either when the interface becomes
        operationally down due to a previous administrative down (i.e. the
        interface's {{param|#.Status}} parameter transitions to a down state
        after the interface is disabled) or when the interface becomes
        administratively up (i.e. the interface's {{param|#.Enable}} parameter
        transitions from {{false}} to {{true}}). Administrative and operational
        interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>

      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes received on the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets transmitted out of the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received on the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets that contained errors preventing
          them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets requested for transmission which were not
          addressed to a multicast or broadcast address at this layer,
          including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of outbound packets which were chosen to be
          discarded even though no errors had been detected to prevent their
          being transmitted. One possible reason for discarding such a packet
          could be to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets which were chosen to be discarded
          even though no errors had been detected to prevent their being
          delivered. One possible reason for discarding such a packet could be
          to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a multicast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a broadcast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MPDUTxAck" access="readOnly">
        <description>
          HomePlug-specific statistic. The Number of MAC Protocol Data Units
          (MPDUs) Transmitted and Acknowledged.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MPDUTxCol" access="readOnly">
        <description>
          HomePlug-specific statistic. The Number of MAC Protocol Data Units
          (MPDUs) Transmitted and Collided
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MPDUTxFailed" access="readOnly">
        <description>
          HomePlug-specific statistic. The Number of MAC Protocol Data Units
          (MPDUs) Transmitted and Failed
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MPDURxAck" access="readOnly">
        <description>
          HomePlug-specific statistic. The Number of MAC Protocol Data Units
          (MPDUs) Received and Acknowledged
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MPDURxFailed" access="readOnly">
        <description>
          HomePlug-specific statistic. The Number of MAC Protocol Data Units
          (MPDUs) Received and Failed
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.HomePlug.Interface.{i}.AssociatedDevice.{i}."
        access="readOnly" numEntriesParameter="AssociatedDeviceNumberOfEntries"
        minEntries="0" maxEntries="unbounded">
      <description>
        This table contains information about other HomePlug devices connected
        to this HomePlug interface.
      </description>
      <uniqueKey>
        <parameter ref="MACAddress"/>
      </uniqueKey>

      <parameter name="MACAddress" access="readOnly">
        <description>
          MAC address of remote HomePlug device. It is used to uniquely
          identify and easily correlate with the connected remote HomePlug
          device.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="TxPhyRate" access="readOnly">
        <description>
          The PHY transmit Rate (expressed in {{units}}) to this remote device.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RxPhyRate" access="readOnly">
        <description>
          The PHY receive Rate (expressed in {{units}}) from this remote
          device.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SNRPerTone" access="readOnly">
        <description>
          {{list}} List items indicate Signal to Noise Ratio (SNR) per tone
          from this remote device (expressed in {{units}}).
        </description>
        <syntax>
          <list maxItems="1155"/>
          <unsignedInt>
            <units value="0.1dB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="AvgAttenuation" access="readOnly">
        <description>
          Average attenuation from this remote device (expressed in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="0.1dB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="EndStationMACs" access="readOnly">
        <description>
          {{list}} List items represent MAC addresses of end stations bridged
          by the remote HomePlug device. For example: "11:22:33:AA:BB:CC,
          22:33:44:DD:EE:66"
        </description>
        <syntax>
          <list maxItems="16"/>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="Active" access="readOnly">
        <description>
          Whether or not this device is currently present in the HomePlug
          network. The ability to list inactive nodes is OPTIONAL. If the CPE
          includes inactive nodes in this table, {{param}} MUST be set to
          {{false}} for each inactive node. The length of time an inactive node
          remains listed in this table is a local matter to the CPE.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UPA." access="readOnly" minEntries="1" maxEntries="1">
      <description>
        Universal Powerline Association {{bibref|UPA-PLC}}. This object
        contains the {{object|Interface}} and {{object|Diagnostics}} objects.
      </description>

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

    <object name="Device.UPA.Interface.{i}." access="readOnly"
        numEntriesParameter="InterfaceNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true">
      <description>
        UPA interface table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). Each table entry models the PHY and
        MAC levels of a UPA interface {{bibref|UPA-PLC}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the interface. This parameter is based on
          ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the interface (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}} When {{param|Enable}} is
          {{false}} then {{param}} SHOULD normally be {{enum|Down}} (or
          {{enum|NotPresent}} or {{enum|Error}} if there is a fault condition
          on the interface). When {{param|Enable}} is changed to {{true}} then
          {{param}} SHOULD change to {{enum|Up}} if and only if the interface
          is able to transmit and receive network traffic; it SHOULD change to
          {{enum|Dormant}} if and only if the interface is operable but is
          waiting for external actions before it can transmit and receive
          network traffic (and subsequently change to {{enum|Up}} if still
          operable when the expected actions have completed); it SHOULD change
          to {{enum|LowerLayerDown}} if and only if the interface is prevented
          from entering the {{enum|Up}} state because one or more of the
          interfaces beneath it is down; it SHOULD remain in the {{enum|Error}}
          state if there is an error or other fault condition detected on the
          interface; it SHOULD remain in the {{enum|NotPresent}} state if the
          interface has missing (typically hardware) components; it SHOULD
          change to {{enum|Unknown}} if the state of the interface can not be
          determined for some reason. This parameter is based on
          ''ifOperStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent"/>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </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 textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the interface entered its
          current operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowerLayers" access="readWrite">
        <description>
          {{list}} {{reference|an interface object that is stacked immediately
          below this interface object}} See {{bibref|TR-181i2|Section 4.2.1}}.
          Note: Since {{object}} is a layer 1 interface, it is expected that
          {{param}} will not be used.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Upstream" access="readOnly">
        <description>
          Indicates whether the interface points towards the Internet
          ({{true}}) or towards End Devices ({{false}}). For example:

          * For an Internet Gateway Device, {{param}} will be {{true}} for all
            WAN interfaces and {{false}} for all LAN interfaces.

          * For a standalone WiFi Access Point that is connected via Ethernet
            to an Internet Gateway Device, {{param}} will be {{true}} for the
            Ethernet interface and {{false}} for the WiFi Radio interface.

          * For an End Device, {{param}} will be {{true}} for all interfaces.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readOnly">
        <description>
          The MAC Address of the interface. Note: This is not necessarily the
          same as the Ethernet header source or destination MAC address, which
          is associated with the IP interface and is modeled via the
          {{param|.Ethernet.Link.{i}.MACAddress}} parameter.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="FirmwareVersion" access="readOnly">
        <description>
          This interface's firmware version.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxBitRate" access="readOnly">
        <description>
          The maximum PHY bit rate supported by this interface (expressed in
          {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="NodeType" access="readWrite">
        <description>
          Type of UPA device role. It can be Fixed Access Point (master) or End
          Point (slave) of the PLC network. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="AP"/>
            <enumeration value="EP"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LogicalNetwork" access="readWrite">
        <description>
          The name (network ID) of the logical PLC network in which the local
          interface is a member (human readable string).
        </description>
        <syntax>
          <string>
            <size maxLength="20"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EncryptionMethod" access="readWrite">
        <description>
          Encryption Method used by UPA device. {{enum}}
        </description>
        <syntax>
          <string>
            <size maxLength="6"/>
            <enumeration value="None"/>
            <enumeration value="DES"/>
            <enumeration value="3DES"/>
            <enumeration value="AES128"/>
            <enumeration value="AES256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EncryptionKey" access="readWrite">
        <description>
          Encryption key for secure PLC communications. This a human readable
          string used by the system to generate the encryption key to encrypt
          communications in powerline. It takes non extended ASCII characters
          (i.e. printable 7-bit ASCII character codes 32-126, which includes
          SPACE but excludes TAB, LF and CR). For example:
          bvjPekZiYUf9kjNKJASkgJ09adfoP01Fjvgd
        </description>
        <syntax hidden="true">
          <string>
            <size maxLength="36"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PowerBackoffEnabled" access="readWrite">
        <description>
          Power back-off management feature status in the UPA device. Boolean
          can be {{true}} for "enabled" and {{false}} for "disabled".
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PowerBackoffMechanismActive" access="readOnly">
        <description>
          Show if power back-off mechanism is active at that time in the UPA
          device. Boolean can be {{true}} for "active" and {{false}} for "not
          active".
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="EstApplicationThroughput" access="readOnly">
        <description>
          The estimated application throughput (expressed in {{units}}),
          received from the PLC link. This value can be used to indicate link
          quality.
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ActiveNotchEnable" access="readWrite">
        <description>
          Enables or disables the {{object|ActiveNotch}} table for this
          interface.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

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

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

    <object name="Device.UPA.Interface.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Throughput statistics for this interface. The CPE MUST reset the
        interface's Stats parameters (unless otherwise stated in individual
        object or parameter descriptions) either when the interface becomes
        operationally down due to a previous administrative down (i.e. the
        interface's {{param|#.Status}} parameter transitions to a down state
        after the interface is disabled) or when the interface becomes
        administratively up (i.e. the interface's {{param|#.Enable}} parameter
        transitions from {{false}} to {{true}}). Administrative and operational
        interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>

      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes received on the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets transmitted out of the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received on the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets that contained errors preventing
          them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets requested for transmission which were not
          addressed to a multicast or broadcast address at this layer,
          including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of outbound packets which were chosen to be
          discarded even though no errors had been detected to prevent their
          being transmitted. One possible reason for discarding such a packet
          could be to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets which were chosen to be discarded
          even though no errors had been detected to prevent their being
          delivered. One possible reason for discarding such a packet could be
          to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a multicast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a broadcast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UPA.Interface.{i}.AssociatedDevice.{i}."
        access="readOnly" numEntriesParameter="AssociatedDeviceNumberOfEntries"
        minEntries="0" maxEntries="unbounded">
      <description>
        This table contains information about PLC connections running between
        this UPA interface and other UPA devices.
      </description>
      <uniqueKey>
        <parameter ref="MACAddress"/>
      </uniqueKey>

      <parameter name="MACAddress" access="readOnly">
        <description>
          Remote UPA device MAC address.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="Port" access="readOnly">
        <description>
          The PLC port number.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LogicalNetwork" access="readOnly">
        <description>
          The name of the logical PLC network (human readable string). In the
          case where the associated device belongs to a different powerline
          network than the UPA interface, the actual network identifier of the
          neighboring network is not shown in {{param}}. Rather, only a generic
          string, e.g. "Network 1", "Network 2", etc is stored here due to
          security/privacy implications.
        </description>
        <syntax>
          <string>
            <size maxLength="20"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PhyTxThroughput" access="readOnly">
        <description>
          Physical transmission throughput (in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PhyRxThroughput" access="readOnly">
        <description>
          Physical reception throughput (in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RealPhyRxThroughput" access="readOnly">
        <description>
          Real Physical reception throughput (in {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="EstimatedPLR" access="readOnly">
        <description>
          Estimated PDU Loss Rate measurement between two devices (i.e.
          estimated {{units}} of MPDUs that have been received with errors).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="100"/>
            <units value="percent"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MeanEstimatedAtt" access="readOnly">
        <description>
          Mean estimated attenuation (i.e. channel loss between the local
          interface and the remote device). It is measured in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="dB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SmartRouteIntermediatePLCMAC" access="readOnly">
        <description>
          Intermediate UPA adapter MAC address of the device that is acting as
          a relay to increase coverage in mesh scenarios. This is the MAC
          address of a third UPA device, with which the UPA interface is doing
          smart repeating in order to transmit data to the associated
          {{param|MACAddress}} UPA device. {{param}} will be empty when
          {{param|DirectRoute}} is {{true}}.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="DirectRoute" access="readOnly">
        <description>
          Route status, where {{true}} indicates ''direct'' and {{false}}
          indicates ''indirect''.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Active" access="readOnly">
        <description>
          Whether or not this node is currently present in the UPA network. The
          ability to list inactive nodes is OPTIONAL. If the CPE includes
          inactive nodes in this table, {{param}} MUST be set to {{false}} for
          each inactive node. The length of time an inactive node remains
          listed in this table is a local matter to the CPE.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UPA.Interface.{i}.ActiveNotch.{i}."
        access="readWrite" numEntriesParameter="ActiveNotchNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        This object contains the list of active notches of the UPA interface. A
        UPA device can have notches in its spectrum, where no power is
        transmitted in a given part of the spectrum. These notches are
        typically located in amateur radio bands, to avoid interference. Note:
        All {{object}} entries can be enabled/disabled as a group using the
        {{param|#.ActiveNotchEnable}} parameter.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the active notch entry.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

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

      <parameter name="StartFreq" access="readWrite">
        <description>
          The initial frequency (in {{units}}) of a notch enabled in the
          spectrum of the local interface.
        </description>
        <syntax>
          <unsignedInt>
            <units value="kHz"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="StopFreq" access="readWrite">
        <description>
          The final frequency (in {{units}}) of a notch enabled in the spectrum
          of the local interface.
        </description>
        <syntax>
          <unsignedInt>
            <units value="kHz"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Depth" access="readWrite">
        <description>
          The depth (in {{units}}) of a notch enabled in the spectrum of the
          local interface.
        </description>
        <syntax>
          <unsignedInt>
            <units value="dB"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UPA.Interface.{i}.BridgeFor.{i}." access="readOnly"
        numEntriesParameter="BridgeForNumberOfEntries" minEntries="0"
        maxEntries="unbounded">
      <description>
        This object represents the bridge table of the UPA interface. Each
        instance is a bridge table entry. It shows the MAC addresses of the
        remote UPA devices with their associated port number, and the MAC
        addresses of the end-devices (PCs, STBs, routers, etc) connected to
        Ethernet port of the powerline adapters with their associated logical
        port. In this way the system identifies to which UPA device an external
        device is connected to.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="MACAddress"/>
      </uniqueKey>

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

      <parameter name="MACAddress" access="readOnly">
        <description>
          MAC address of the device.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="Port" access="readOnly">
        <description>
          Internal bridge associated port.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.UPA.Diagnostics." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        The UPA Diagnostics object.
      </description>
    </object>

    <object name="Device.UPA.Diagnostics.InterfaceMeasurement."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        This object provides access to either a Signal-to-Noise-Ratio (SNR)
        Port Measurement test or a Channel Frequency Response (CFR) Port
        Measurement test. The {{param|Type}} parameter is used to select which
        type of test to perform. CFR and SNR measurements are done between a
        two UPA devices (a local interface and a remote device belonging to the
        same network).
      </description>

      <parameter name="DiagnosticsState" access="readWrite">
        <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" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error_InvalidPort" access="readOnly"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Type" access="readWrite">
        <description>
          Indicates the type of port measurement test to be carried out.
          {{enum}}.
        </description>
        <syntax>
          <string>
            <enumeration value="SNR">
              <description>Signal-to-Noise-Ratio</description>
            </enumeration>
            <enumeration value="CFR">
              <description>Channel Frequency Response</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} This is the local UPA interface from which the test is
          to be performed.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetParent=".UPA.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          PLC port being measured. This identifies which PLC connection to
          measure between the local interface (indicated by
          {{param|Interface}}) and the remote device (implied by {{param}}).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Measurements" access="readOnly">
        <description>
          {{list}} Result of Signal-to-Noise-Ratio measurement (if
          {{param|Type}} is {{enum|SNR|Type}}) or Channel Frequency Response
          measurement (if {{param|Type}} is {{enum|CFR|Type}}). List items
          indicate measurements per carrier for a PLC port (expressed in
          {{units}}).
        </description>
        <syntax>
          <list maxItems="1536"/>
          <unsignedInt>
            <units value="0.1dB"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RxGain" access="readOnly">
        <description>
          Reception gain of the adapter (expresssed in {{units}}).
        </description>
        <syntax>
          <int>
            <units value="dB"/>
          </int>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        The WiFi object is based on the WiFi Alliance 802.11 specifications
        ({{bibref|802.11-2007}}). It defines interface objects
        ({{object|Radio}} and {{object|SSID}}), and application objects
        ({{object|AccessPoint}} and {{object|EndPoint}}).
      </description>

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

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

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

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

    <object name="Device.WiFi.Radio.{i}." access="readOnly"
        numEntriesParameter="RadioNumberOfEntries" minEntries="0"
        maxEntries="unbounded" dmr:fixedObject="true">
      <description>
        This object models an 802.11 wireless radio on a device (a stackable
        interface object as described in {{bibref|TR-181i2|Section 4.2}}). If
        the device can establish more than one connection simultaneously (e.g.
        a dual radio device), a separate {{object}} instance MUST be used for
        each physical radio of the device. See {{bibref|TR-181i2|Appendix
        III.1}} for additional information. Note: A dual-band single-radio
        device (e.g. an 802.11a/b/g radio) can be configured to operate at 2.4
        or 5 GHz frequency bands, but only a single frequency band is used to
        transmit/receive at a given time. Therefore, a single {{object}}
        instance is used even for a dual-band radio.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the radio. This parameter is based on
          ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the radio (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}} When {{param|Enable}} is
          {{false}} then {{param}} SHOULD normally be {{enum|Down}} (or
          {{enum|NotPresent}} or {{enum|Error}} if there is a fault condition
          on the interface). When {{param|Enable}} is changed to {{true}} then
          {{param}} SHOULD change to {{enum|Up}} if and only if the interface
          is able to transmit and receive network traffic; it SHOULD change to
          {{enum|Dormant}} if and only if the interface is operable but is
          waiting for external actions before it can transmit and receive
          network traffic (and subsequently change to {{enum|Up}} if still
          operable when the expected actions have completed); it SHOULD change
          to {{enum|LowerLayerDown}} if and only if the interface is prevented
          from entering the {{enum|Up}} state because one or more of the
          interfaces beneath it is down; it SHOULD remain in the {{enum|Error}}
          state if there is an error or other fault condition detected on the
          interface; it SHOULD remain in the {{enum|NotPresent}} state if the
          interface has missing (typically hardware) components; it SHOULD
          change to {{enum|Unknown}} if the state of the interface can not be
          determined for some reason. This parameter is based on
          ''ifOperStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent"/>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </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 textual name of the radio as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the radio entered its current
          operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowerLayers" access="readWrite">
        <description>
          {{list}} {{reference|an interface object that is stacked immediately
          below this interface object}} See {{bibref|TR-181i2|Section 4.2.1}}.
          Note: Since {{object}} is a layer 1 interface, it is expected that
          {{param}} will not be used.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Upstream" access="readOnly">
        <description>
          Indicates whether the interface points towards the Internet
          ({{true}}) or towards End Devices ({{false}}). For example:

          * For an Internet Gateway Device, {{param}} will be {{true}} for all
            WAN interfaces and {{false}} for all LAN interfaces.

          * For a standalone WiFi Access Point that is connected via Ethernet
            to an Internet Gateway Device, {{param}} will be {{true}} for the
            Ethernet interface and {{false}} for the WiFi Radio interface.

          * For an End Device, {{param}} will be {{true}} for all interfaces.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MaxBitRate" access="readOnly">
        <description>
          The maximum PHY bit rate supported by this interface (expressed in
          {{units}}).
        </description>
        <syntax>
          <unsignedInt>
            <units value="Mbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SupportedFrequencyBands" access="readOnly">
        <description>
          {{list}} List items indicate the frequency bands at which the radio
          can operate.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="2.4GHz"/>
            <enumeration value="5GHz"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="OperatingFrequencyBand" access="readWrite">
        <description>
          Indicates the frequency band at which the radio is operating. If the
          radio supports multiple bands, and {{param}} is changed, then all
          parameters whose value is not valid for the new frequency band (e.g.
          {{param|Channel}}) MUST be set to a valid value (according to some
          CPE vendor-specific behavior).
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="SupportedFrequencyBands"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SupportedStandards" access="readOnly">
        <description>
          {{list}} List items indicate which IEEE 802.11 standards this
          {{object}} instance can support simultaneously, in the frequency band
          specified by {{param|OperatingFrequencyBand}}. {{enum}} Each value
          indicates support for the indicated standard. If
          {{param|OperatingFrequencyBand}} is set to
          {{enum|2.4GHz|OperatingFrequencyBand}}, only values {{enum|b}},
          {{enum|g}}, {{enum|n}} are allowed. If
          {{param|OperatingFrequencyBand}} is set to
          {{enum|5GHz|OperatingFrequencyBand}}, only values {{enum|a}},
          {{enum|n}} are allowed.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="a">
              <description>{{bibref|802.11a-1999}}</description>
            </enumeration>
            <enumeration value="b">
              <description>{{bibref|802.11b-1999}}</description>
            </enumeration>
            <enumeration value="g">
              <description>{{bibref|802.11g-2003}}</description>
            </enumeration>
            <enumeration value="n">
              <description>{{bibref|802.11n-2009}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="OperatingStandards" access="readWrite">
        <description>
          {{list}} List items indicate which IEEE 802.11 standard this
          {{object}} instance is configured for. Each value indicates support
          for the indicated standard. If {{param|OperatingFrequencyBand}} is
          set to {{enum|2.4GHz|OperatingFrequencyBand}}, only values
          {{enum|b}}, {{enum|g}}, {{enum|n}} are allowed. If
          {{param|OperatingFrequencyBand}} is set to
          {{enum|5GHz|OperatingFrequencyBand}}, only values {{enum|a}},
          {{enum|n}} are allowed. For example, a value of "g,b" (or "b,g" -
          order is not important) means that the 802.11g standard
          {{bibref|802.11g-2003}} is used with a backwards-compatible mode for
          802.11b {{bibref|802.11b-1999}}. A value of "g" means that only the
          802.11g standard can be used.
        </description>
        <syntax>
          <list/>
          <string>
            <enumerationRef targetParam="SupportedStandards"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PossibleChannels" access="readOnly">
        <description>
          {{list}} List items represent possible radio channels for the
          wireless standard (a, b, g, n) and the regulatory domain. Ranges in
          the form "n-m" are permitted. For example, for 802.11b and North
          America, would be "1-11".
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ChannelsInUse" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} List items represent channels that the radio determines to
          be currently in use (including any that it is using itself). Ranges
          in the form "n-m" are permitted.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Channel" access="readWrite">
        <description>
          The current radio channel used by the connection. To request
          automatic channel selection, set {{param|AutoChannelEnable}} to
          {{true}}. Whenever {{param|AutoChannelEnable}} is {{true}}, the value
          of the {{param}} parameter MUST be the channel selected by the
          automatic channel selection procedure. Note: Valid {{param}} values
          depend on the {{param|OperatingFrequencyBand}} and
          {{param|RegulatoryDomain}} values specified.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="AutoChannelSupported" access="readOnly">
        <description>
          Indicates whether automatic channel selection is supported by this
          radio. If {{false}}, then {{param|AutoChannelEnable}} MUST be
          {{false}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AutoChannelEnable" access="readWrite">
        <description>
          Enable or disable automatic channel selection. Set to {{false}} to
          disable the automatic channel selection procedure, in which case the
          currently selected channel remains selected. Set to {{true}} to
          enable the automatic channel selection procedure. This procedure MUST
          automatically select the channel, and MAY also change it
          subsequently. {{param}} MUST automatically change to {{false}}
          whenever the channel is manually selected, i.e. whenever the
          {{param|Channel}} parameter is written. Whenever {{param}} is
          {{true}}, the value of the {{param|Channel}} parameter MUST be the
          channel selected by the automatic channel selection procedure.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="AutoChannelRefreshPeriod" access="readWrite">
        <description>
          The time period in {{units}} between two consecutive automatic
          channel selections. A value of 0 means that the automatic channel
          selection is done only at boot time. This parameter is significant
          only if {{param|AutoChannelEnable}} is set to {{true}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="OperatingChannelBandwidth" access="readWrite">
        <description>
          The channel bandwidth (applicable to 802.11n specifications only).
        </description>
        <syntax>
          <string>
            <enumeration value="20MHz"/>
            <enumeration value="40MHz">
              <description>wide mode</description>
            </enumeration>
            <enumeration value="Auto"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ExtensionChannel" access="readWrite">
        <description>
          The secondary extension channel position, applicable when operating
          in wide channel mode (i.e. when {{param|OperatingChannelBandwidth}}
          is set to {{enum|40MHz|OperatingChannelBandwidth}} or
          {{enum|Auto|OperatingChannelBandwidth}}).
        </description>
        <syntax>
          <string>
            <enumeration value="AboveControlChannel"/>
            <enumeration value="BelowControlChannel"/>
            <enumeration value="Auto"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="GuardInterval" access="readWrite">
        <description>
          The guard interval value between OFDM symbols (applicable to 802.11n
          specifications only).
        </description>
        <syntax>
          <string>
            <enumeration value="400nsec"/>
            <enumeration value="800nsec"/>
            <enumeration value="Auto"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MCS" access="readWrite">
        <description>
          The Modulation Coding Scheme index (applicable to 802.11n
          specifications only). Values from 0 to 15 MUST be supported
          ({{bibref|802.11n-2009}}). A value of -1 indicates automatic
          selection of the MCS index.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="15"/>
            <range minInclusive="16" maxInclusive="31" optional="true"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="TransmitPowerSupported" access="readOnly">
        <description>
          {{list}} List items represent supported transmit power levels as
          {{units}} of full power. For example, "0,25,50,75,100". A -1 item
          indicates auto mode (automatic decision by CPE). Auto mode allows the
          ''Radio'' to adjust transmit power accordingly. For example, this can
          be useful for power-save modes such as EU-CoC, where the ''Radio''
          can adjust power according to activity in the CPE.
        </description>
        <syntax>
          <list>
            <size maxLength="64"/>
          </list>
          <int>
            <range minInclusive="-1" maxInclusive="100"/>
            <units value="percentage"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="TransmitPower" access="readWrite">
        <description>
          Indicates the current transmit power level as a {{units}} of full
          power. The value MUST be one of the values reported by the
          {{param|TransmitPowerSupported}} parameter. A value of -1 indicates
          auto mode (automatic decision by CPE).
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="100"/>
            <units value="percentage"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="IEEE80211hSupported" access="readOnly">
        <description>
          Indicates whether IEEE 802.11h {{bibref|802.11h-2003}} functionality
          is supported by this radio. The value can be {{true}} only if the
          802.11a or the 802.11n@5GHz standard is supported (i.e.
          {{param|SupportedFrequencyBands}} includes
          {{enum|5GHz|SupportedFrequencyBands}} and
          {{param|SupportedStandards}} includes {{enum|a|SupportedStandards}}
          and/or {{enum|n|SupportedStandards}}).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IEEE80211hEnabled" access="readWrite">
        <description>
          Indicates whether IEEE 802.11h functionality is enabled on this
          radio. The value can be {{true}} only if the 802.11a or the
          802.11n@5GHz standard is supported and enabled (i.e.
          {{param|OperatingFrequencyBand}} is
          {{enum|5GHz|OperatingFrequencyBand}} and {{param|OperatingStandards}}
          includes {{enum|a|OperatingStandards}} and/or
          {{enum|n|OperatingStandards}}).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RegulatoryDomain" access="readWrite">
        <description>
          The 802.11d Regulatory Domain. First two octets are
          {{bibref|ISO3166-1}} two-character country code. The third octet is
          either " " (all environments), "O" (outside) or "I" (inside).
        </description>
        <syntax>
          <string>
            <size minLength="3" maxLength="3"/>
            <pattern value="[A-Z][A-Z][ OI]"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.Radio.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Throughput statistics for this interface. The CPE MUST reset the
        interface's Stats parameters (unless otherwise stated in individual
        object or parameter descriptions) either when the interface becomes
        operationally down due to a previous administrative down (i.e. the
        interface's {{param|#.Status}} parameter transitions to a down state
        after the interface is disabled) or when the interface becomes
        administratively up (i.e. the interface's {{param|#.Enable}} parameter
        transitions from {{false}} to {{true}}). Administrative and operational
        interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>

      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes received on the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets transmitted out of the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received on the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets that contained errors preventing
          them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of outbound packets which were chosen to be
          discarded even though no errors had been detected to prevent their
          being transmitted. One possible reason for discarding such a packet
          could be to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets which were chosen to be discarded
          even though no errors had been detected to prevent their being
          delivered. One possible reason for discarding such a packet could be
          to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.SSID.{i}." access="readWrite"
        numEntriesParameter="SSIDNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        WiFi SSID table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}), where table entries model the MAC
        layer. A WiFi SSID entry is typically stacked on top of a
        {{object|#.Radio}} object. WiFi SSID is also a multiplexing layer, i.e.
        more than one {{object}} can be stacked above a single
        {{object|#.Radio}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="BSSID"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the SSID entry. This parameter is based on
          ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the SSID entry (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}} When {{param|Enable}} is
          {{false}} then {{param}} SHOULD normally be {{enum|Down}} (or
          {{enum|NotPresent}} or {{enum|Error}} if there is a fault condition
          on the interface). When {{param|Enable}} is changed to {{true}} then
          {{param}} SHOULD change to {{enum|Up}} if and only if the interface
          is able to transmit and receive network traffic; it SHOULD change to
          {{enum|Dormant}} if and only if the interface is operable but is
          waiting for external actions before it can transmit and receive
          network traffic (and subsequently change to {{enum|Up}} if still
          operable when the expected actions have completed); it SHOULD change
          to {{enum|LowerLayerDown}} if and only if the interface is prevented
          from entering the {{enum|Up}} state because one or more of the
          interfaces beneath it is down; it SHOULD remain in the {{enum|Error}}
          state if there is an error or other fault condition detected on the
          interface; it SHOULD remain in the {{enum|NotPresent}} state if the
          interface has missing (typically hardware) components; it SHOULD
          change to {{enum|Unknown}} if the state of the interface can not be
          determined for some reason. This parameter is based on
          ''ifOperStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent"/>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Down"/>
        </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 textual name of the SSID entry as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the SSID entered its current
          operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowerLayers" access="readWrite">
        <description>
          {{list}} {{reference|an interface object that is stacked immediately
          below this interface object}} See {{bibref|TR-181i2|Section 4.2.1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="BSSID" access="readOnly">
        <description>
          The Basic Service Set ID. This is the MAC address of the access
          point, which can either be local (when this instance models an access
          point SSID) or remote (when this instance models an end point SSID).
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="MACAddress" access="readOnly">
        <description>
          The MAC address of this interface. If this instance models an access
          point SSID, {{param}} is the same as {{param||BSSID}}. Note: This is
          not necessarily the same as the Ethernet header source or destination
          MAC address, which is associated with the IP interface and is modeled
          via the {{param|.Ethernet.Link.{i}.MACAddress}} parameter.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="SSID" access="readWrite">
        <description>
          The current service set identifier in use by the connection. The SSID
          is an identifier that is attached to packets sent over the wireless
          LAN that functions as an ID for joining a particular radio network
          (BSS).
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.SSID.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Throughput statistics for this interface. The CPE MUST reset the
        interface's Stats parameters (unless otherwise stated in individual
        object or parameter descriptions) either when the interface becomes
        operationally down due to a previous administrative down (i.e. the
        interface's {{param|#.Status}} parameter transitions to a down state
        after the interface is disabled) or when the interface becomes
        administratively up (i.e. the interface's {{param|#.Enable}} parameter
        transitions from {{false}} to {{true}}). Administrative and operational
        interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>

      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes received on the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets transmitted out of the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received on the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets that contained errors preventing
          them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets requested for transmission which were not
          addressed to a multicast or broadcast address at this layer,
          including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of outbound packets which were chosen to be
          discarded even though no errors had been detected to prevent their
          being transmitted. One possible reason for discarding such a packet
          could be to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets which were chosen to be discarded
          even though no errors had been detected to prevent their being
          delivered. One possible reason for discarding such a packet could be
          to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a multicast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a broadcast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.AccessPoint.{i}." access="readWrite"
        numEntriesParameter="AccessPointNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        This object models an 802.11 connection from the perspective of a
        wireless access point. Each {{object}} entry is associated with a
        particular {{object|#.SSID}} interface instance via the
        {{param|SSIDReference}} parameter. For enabled table entries, if
        {{param|SSIDReference}} is not a valid reference then the table entry
        is inoperable and the CPE MUST set {{param|Status}} to
        {{enum|Error_Misconfigured|Status}}. Note: The {{object}} table
        includes a unique key parameter that is a strong reference. If a
        strongly referenced object is deleted, the CPE will set the referencing
        parameter to {{empty}}. However, doing so under these circumstances
        might cause the updated {{object}} row to then violate the table's
        unique key constraint; if this occurs, the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}} and disable the
        offending {{object}} row.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="SSIDReference"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          Indicates the status of this access point. {{enum}} The
          {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid. 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="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="SSIDReference" access="readWrite">
        <description>
          {{reference}}
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.SSID." targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SSIDAdvertisementEnabled" access="readWrite">
        <description>
          Indicates whether or not beacons include the SSID name.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RetryLimit" access="readWrite">
        <description>
          The maximum number of retransmission for a packet. This corresponds
          to IEEE 802.11 parameter ''dot11ShortRetryLimit''.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="7"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="WMMCapability" access="readOnly">
        <description>
          Indicates whether this access point supports WiFi Multimedia (WMM)
          Access Categories (AC).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="UAPSDCapability" access="readOnly">
        <description>
          Indicates whether this access point supports WMM Unscheduled
          Automatic Power Save Delivery (U-APSD). Note: U-APSD support implies
          WMM support.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="WMMEnable" access="readWrite">
        <description>
          Whether WMM support is currently enabled. When enabled, this is
          indicated in beacon frames.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="UAPSDEnable" access="readWrite">
        <description>
          Whether U-APSD support is currently enabled. When enabled, this is
          indicated in beacon frames. Note: U-APSD can only be enabled if WMM
          is also enabled.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

    <object name="Device.WiFi.AccessPoint.{i}.Security." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object contains security related parameters that apply to a CPE
        acting as an Access Point {{bibref|802.11-2007}}.
      </description>

      <parameter name="ModesSupported" access="readOnly">
        <description>
          {{list}} Indicates which security modes this {{object|#}} instance is
          capable of supporting.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="None"/>
            <enumeration value="WEP-64"/>
            <enumeration value="WEP-128"/>
            <enumeration value="WPA-Personal"/>
            <enumeration value="WPA2-Personal"/>
            <enumeration value="WPA-WPA2-Personal"/>
            <enumeration value="WPA-Enterprise"/>
            <enumeration value="WPA2-Enterprise"/>
            <enumeration value="WPA-WPA2-Enterprise"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ModeEnabled" access="readWrite">
        <description>
          Indicates which security mode is enabled.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="ModesSupported"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="WEPKey" access="readWrite">
        <description>
          A WEP key expressed as a hexadecimal string. {{param}} is used only
          if {{param|ModeEnabled}} is set to {{enum|WEP-64|ModeEnabled}} or
          {{enum|WEP-128|ModeEnabled}}. A 5 byte {{param}} corresponds to
          security mode {{enum|WEP-64|ModeEnabled}} and a 13 byte {{param}}
          corresponds to security mode {{enum|WEP-128|ModeEnabled}}.
        </description>
        <syntax hidden="true">
          <hexBinary>
            <size minLength="5" maxLength="5">
              <description>
                40-bit encryption
              </description>
            </size>
            <size minLength="13" maxLength="13">
              <description>
                104-bit encryption
              </description>
            </size>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="PreSharedKey" access="readWrite">
        <description>
          A literal PreSharedKey (PSK) expressed as a hexadecimal string.
          {{param}} is only used if {{param|ModeEnabled}} is set to
          {{enum|WPA-Personal|ModeEnabled}} or
          {{enum|WPA2-Personal|ModeEnabled}} or
          {{enum|WPA-WPA2-Personal|ModeEnabled}}. If {{param|KeyPassphrase}} is
          written, then {{param}} is immediately generated. The ACS SHOULD NOT
          set both the {{param|KeyPassphrase}} and the {{param}} directly (the
          result of doing this is undefined).
        </description>
        <syntax hidden="true">
          <hexBinary>
            <size maxLength="32"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="KeyPassphrase" access="readWrite">
        <description>
          A passphrase from which the {{param|PreSharedKey}} is to be
          generated, for {{enum|WPA-Personal|ModeEnabled}} or
          {{enum|WPA2-Personal|ModeEnabled}} or
          {{enum|WPA-WPA2-Personal|ModeEnabled}} security modes. If {{param}}
          is written, then {{param|PreSharedKey}} is immediately generated. The
          ACS SHOULD NOT set both the {{param}} and the {{param|PreSharedKey}}
          directly (the result of doing this is undefined). The key is
          generated as specified by WPA, which uses PBKDF2 from PKCS #5:
          Password-based Cryptography Specification Version 2.0
          ({{bibref|RFC2898}}).
        </description>
        <syntax hidden="true">
          <string>
            <size maxLength="63"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="RekeyingInterval" access="readWrite">
        <description>
          The interval (expressed in {{units}}) in which the keys are
          re-generated. This is applicable to WPA, WPA2 and Mixed (WPA-WPA2)
          modes in Personal or Enterprise mode (i.e. when {{param|ModeEnabled}}
          is set to a value other than {{enum|None|ModeEnabled}} or
          {{enum|WEP-64|ModeEnabled}} or {{enum|WEP-128|ModeEnabled}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="3600"/>
        </syntax>
      </parameter>

      <parameter name="RadiusServerIPAddr" access="readWrite">
        <description>
          The IP Address of the RADIUS server used for WLAN security. {{param}}
          is only applicable when {{param|ModeEnabled}} is an Enterprise type
          (i.e. {{enum|WPA-Enterprise|ModeEnabled}},
          {{enum|WPA2-Enterprise|ModeEnabled}} or
          {{enum|WPA-WPA2-Enterprise|ModeEnabled}}).
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="RadiusServerPort" access="readWrite">
        <description>
          The port number of the RADIUS server used for WLAN security.
          {{param}} is only applicable when {{param|ModeEnabled}} is an
          Enterprise type (i.e. {{enum|WPA-Enterprise|ModeEnabled}},
          {{enum|WPA2-Enterprise|ModeEnabled}} or
          {{enum|WPA-WPA2-Enterprise|ModeEnabled}}).
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="1812"/>
        </syntax>
      </parameter>

      <parameter name="RadiusSecret" access="readWrite">
        <description>
          The secret used for handshaking with the RADIUS server
          {{bibref|RFC2865}}.
        </description>
        <syntax hidden="true">
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.AccessPoint.{i}.WPS." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object contains parameters related to Wi-Fi Protected Setup
        {{bibref|WPSv1.0}} for this access point.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables WPS functionality for this access point.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="ConfigMethodsSupported" access="readOnly">
        <description>
          {{list}} Indicates WPS configuration methods supported by the device.
          {{enum}} This parameter corresponds directly to the "Config Methods"
          attribute of the WPS specification {{bibref|WPSv1.0}}. The
          {{enum|PushButton}} and {{enum|PIN}} methods MUST be supported.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="USBFlashDrive"/>
            <enumeration value="Ethernet"/>
            <enumeration value="ExternalNFCToken"/>
            <enumeration value="IntegratedNFCToken"/>
            <enumeration value="NFCInterface"/>
            <enumeration value="PushButton"/>
            <enumeration value="PIN"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ConfigMethodsEnabled" access="readWrite">
        <description>
          {{list}} Indicates WPS configuration methods enabled on the device.
        </description>
        <syntax>
          <list/>
          <string>
            <enumerationRef targetParam="ConfigMethodsSupported"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}."
        access="readOnly" numEntriesParameter="AssociatedDeviceNumberOfEntries"
        minEntries="0" maxEntries="unbounded">
      <description>
        A table of the devices currently associated with the access point.
      </description>
      <uniqueKey>
        <parameter ref="MACAddress"/>
      </uniqueKey>

      <parameter name="MACAddress" access="readOnly" activeNotify="canDeny">
        <description>
          The MAC address of an associated device.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="AuthenticationState" access="readOnly"
          activeNotify="canDeny">
        <description>
          Whether an associated device has authenticated ({{true}}) or not
          ({{false}}).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="LastDataDownlinkRate" access="readOnly"
          activeNotify="canDeny">
        <description>
          The data transmit rate in {{units}} that was most recently used for
          transmission from the access point to the associated device.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1000" maxInclusive="600000"/>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LastDataUplinkRate" access="readOnly"
          activeNotify="canDeny">
        <description>
          The data transmit rate in {{units}} that was most recently used for
          transmission from the associated device to the access point.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1000" maxInclusive="600000"/>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SignalStrength" access="readOnly">
        <description>
          An indicator of radio signal strength of the uplink from the
          associated device to the access point, measured in {{units}}, as an
          average of the last 100 packets received from the device.
        </description>
        <syntax>
          <int>
            <range minInclusive="-200" maxInclusive="0"/>
            <units value="dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Retransmissions" access="readOnly">
        <description>
          The number of {{units}} that had to be re-transmitted, from the last
          100 packets sent to the associated device. Multiple re-transmissions
          of the same packet count as one.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="100"/>
            <units value="packets"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Active" access="readOnly">
        <description>
          Whether or not this node is currently present in the WiFi AccessPoint
          network. The ability to list inactive nodes is OPTIONAL. If the CPE
          includes inactive nodes in this table, {{param}} MUST be set to
          {{false}} for each inactive node. The length of time an inactive node
          remains listed in this table is a local matter to the CPE.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.EndPoint.{i}." access="readWrite"
        numEntriesParameter="EndPointNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        This object models an 802.11 connection from the perspective of a
        wireless end point. Each {{object}} entry is associated with a
        particular {{object|#.SSID}} interface instance via the
        {{param|SSIDReference}} parameter, and an associated active
        {{object|Profile}} instance via the {{param|ProfileReference}}
        parameter. The active profile is responsible for specifying the actual
        SSID and security settings used by the end point. For enabled table
        entries, if {{param|SSIDReference}} or {{param|ProfileReference}} is
        not a valid reference then the table entry is inoperable and the CPE
        MUST set {{param|Status}} to {{enum|Error_Misconfigured|Status}}. Note:
        The {{object}} table includes a unique key parameter that is a strong
        reference. If a strongly referenced object is deleted, the CPE will set
        the referencing parameter to {{empty}}. However, doing so under these
        circumstances might cause the updated {{object}} row to then violate
        the table's unique key constraint; if this occurs, the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}} and disable the
        offending {{object}} row.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="SSIDReference"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          Indicates the status of this end point. {{enum}} The
          {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid. 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="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="ProfileReference" access="readWrite">
        <description>
          {{reference}} This is the currently active profile, which specifies
          the SSID and security settings to be used by the end point.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="Profile." targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SSIDReference" access="readOnly">
        <description>
          {{reference}} {{param}} is determined based on the
          {{param|Profile.{i}.SSID}} within the associated
          {{param|ProfileReference}}) endpoint profile. {{param}} MUST be
          {{empty}} if {{param|ProfileReference}} is {{empty}} (i.e. only when
          an active profile is assigned can the associated SSID interface be
          determined).
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.SSID." targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

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

    <object name="Device.WiFi.EndPoint.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Throughput statistics for this end point.
      </description>

      <parameter name="LastDataDownlinkRate" access="readOnly"
          activeNotify="canDeny">
        <description>
          The data transmit rate in {{units}} that was most recently used for
          transmission from the access point to the end point device.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1000" maxInclusive="600000"/>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LastDataUplinkRate" access="readOnly"
          activeNotify="canDeny">
        <description>
          The data transmit rate in {{units}} that was most recently used for
          transmission from the end point to the access point device.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1000" maxInclusive="600000"/>
            <units value="kbps"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="SignalStrength" access="readOnly">
        <description>
          An indicator of radio signal strength of the downlink from the access
          point to the end point, measured in {{units}}, as an average of the
          last 100 packets received from the device.
        </description>
        <syntax>
          <int>
            <range minInclusive="-200" maxInclusive="0"/>
            <units value="dBm"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Retransmissions" access="readOnly">
        <description>
          The number of {{units}} that had to be re-transmitted, from the last
          100 packets sent to the access point. Multiple re-transmissions of
          the same packet count as one.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="100"/>
            <units value="packets"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.EndPoint.{i}.Security." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object contains security related parameters that apply to a WiFi
        end point {{bibref|802.11-2007}}.
      </description>

      <parameter name="ModesSupported" access="readOnly">
        <description>
          {{list}} Indicates which security modes this {{object|#}} instance is
          capable of supporting.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="None"/>
            <enumeration value="WEP-64"/>
            <enumeration value="WEP-128"/>
            <enumeration value="WPA-Personal"/>
            <enumeration value="WPA2-Personal"/>
            <enumeration value="WPA-WPA2-Personal"/>
            <enumeration value="WPA-Enterprise"/>
            <enumeration value="WPA2-Enterprise"/>
            <enumeration value="WPA-WPA2-Enterprise"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.EndPoint.{i}.Profile.{i}." access="readWrite"
        numEntriesParameter="ProfileNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        EndPoint Profile table.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="SSID"/>
        <parameter ref="Location"/>
        <parameter ref="Priority"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this Profile. When there are multiple WiFi
          EndPoint Profiles, e.g. each instance supports a different SSID
          and/or different security configuration, this parameter can be used
          to control which of the instances are currently enabled.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Indicates the status of this Profile. {{enum}} The {{enum|Active}}
          value is reserved for the instance that is actively connected. The
          {{enum|Available}} value represents an instance that is not currently
          active, but is also not disabled or in error. The {{enum|Error}}
          value MAY be used by the CPE to indicate a locally defined error
          condition.
        </description>
        <syntax>
          <string>
            <enumeration value="Active"/>
            <enumeration value="Available"/>
            <enumeration value="Error" optional="true"/>
            <enumeration value="Disabled"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="SSID" access="readWrite">
        <description>
          The profile identifier in use by the connection. The SSID is an
          identifier that is attached to packets sent over the wireless LAN
          that functions as an ID for joining a particular radio network (BSS).
        </description>
        <syntax>
          <string>
            <size maxLength="32"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Location" access="readWrite">
        <description>
          Location of the profile. This value serves as a reminder from the
          user, describing the location of the profile. For example: "Home",
          "Office", "Neighbor House", "Airport", etc. An empty string is also
          valid.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="Priority" access="readWrite">
        <description>
          The profile Priority defines one of the criteria used by the End
          Point to automatically select the "best" AP when several APs with
          known profiles are simultaneously available for association. In this
          situation, the End Point has to select the AP with the higher
          priority in its profile. If there are several APs with the same
          priority, providing different SSID or the same SSID, then the
          wireless end point has to select the APs according to other criteria
          like signal quality, SNR, etc. 0 is the highest priority.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.EndPoint.{i}.Profile.{i}.Security."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        This object contains security related parameters that apply to a WiFi
        End Point profile {{bibref|802.11-2007}}.
      </description>

      <parameter name="ModeEnabled" access="readWrite">
        <description>
          Indicates which security mode is enabled.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="##.Security.ModesSupported"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="WEPKey" access="readWrite">
        <description>
          A WEP key expressed as a hexadecimal string. {{param}} is used only
          if {{param|ModeEnabled}} is set to {{enum|WEP-64|ModeEnabled}} or
          {{enum|WEP-128|ModeEnabled}}. A 5 byte {{param}} corresponds to
          security mode {{enum|WEP-64|ModeEnabled}} and a 13 byte {{param}}
          corresponds to security mode {{enum|WEP-128|ModeEnabled}}.
        </description>
        <syntax hidden="true">
          <hexBinary>
            <size minLength="5" maxLength="5">
              <description>
                40-bit encryption
              </description>
            </size>
            <size minLength="13" maxLength="13">
              <description>
                104-bit encryption
              </description>
            </size>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="PreSharedKey" access="readWrite">
        <description>
          A literal PreSharedKey (PSK) expressed as a hexadecimal string.
          {{param}} is only used if {{param|ModeEnabled}} is set to
          {{enum|WPA-Personal|ModeEnabled}} or
          {{enum|WPA2-Personal|ModeEnabled}} or
          {{enum|WPA-WPA2-Personal|ModeEnabled}}. If {{param|KeyPassphrase}} is
          written, then {{param}} is immediately generated. The ACS SHOULD NOT
          set both the {{param|KeyPassphrase}} and the {{param}} directly (the
          result of doing this is undefined).
        </description>
        <syntax hidden="true">
          <hexBinary>
            <size maxLength="32"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="KeyPassphrase" access="readWrite">
        <description>
          A passphrase from which the {{param|PreSharedKey}} is to be
          generated, for {{enum|WPA-Personal|ModeEnabled}} or
          {{enum|WPA2-Personal|ModeEnabled}} or
          {{enum|WPA-WPA2-Personal|ModeEnabled}} security modes. If {{param}}
          is written, then {{param|PreSharedKey}} is immediately generated. The
          ACS SHOULD NOT set both the {{param}} and the {{param|PreSharedKey}}
          directly (the result of doing this is undefined). The key is
          generated as specified by WPA, which uses PBKDF2 from PKCS #5:
          Password-based Cryptography Specification Version 2.0
          {{bibref|RFC2898}}.
        </description>
        <syntax hidden="true">
          <string>
            <size maxLength="63"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.WiFi.EndPoint.{i}.WPS." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object contains parameters related to Wi-Fi Protected Setup
        {{bibref|WPSv1.0}} for this end point.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables WPS functionality for this end point.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="ConfigMethodsSupported" access="readOnly">
        <description>
          {{list}} Indicates the WPS configuration methods supported by the
          device. {{enum}} This parameter corresponds directly to the "Config
          Methods" attribute of the WPS specification {{bibref|WPSv1.0}}.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="USBFlashDrive"/>
            <enumeration value="Ethernet"/>
            <enumeration value="ExternalNFCToken"/>
            <enumeration value="IntegratedNFCToken"/>
            <enumeration value="NFCInterface"/>
            <enumeration value="PushButton"/>
            <enumeration value="PIN"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ConfigMethodsEnabled" access="readWrite">
        <description>
          {{list}} Indicates the WPS configuration methods enabled on the
          device.
        </description>
        <syntax>
          <list/>
          <string>
            <enumerationRef targetParam="ConfigMethodsSupported"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Bridging." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        Layer 2 bridging configuration. Specifies bridges between different
        layer 2 interfaces. Bridges can be defined to include layer 2 filter
        criteria to selectively bridge traffic between interfaces. This object
        can be used to configure both 802.1D {{bibref|802.1D-2004}} and 802.1Q
        {{bibref|802.1Q-2005}} bridges. Not all 802.1D and 802.1Q features are
        modeled, and some additional features not present in either 802.1D or
        802.1Q are modeled.
      </description>

      <parameter name="MaxBridgeEntries" access="readOnly">
        <description>
          The maximum number of entries available in the
          {{object|.Bridging.Bridge}} table.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaxDBridgeEntries" access="readOnly">
        <description>
          The maximum number of 802.1D {{bibref|802.1D-2004}} entries available
          in the {{object|.Bridging.Bridge}} table. A positive value for this
          parameter implies support for 802.1D. There is no guarantee that this
          many 802.1D Bridges can be configured. For example, the CPE might not
          be able simultaneously to support both 802.1D and 802.1Q Bridges.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaxQBridgeEntries" access="readOnly">
        <description>
          The maximum number of 802.1Q {{bibref|802.1Q-2005}} entries available
          in the {{object|.Bridging.Bridge}} table. A positive value for this
          parameter implies support for 802.1Q. There is no guarantee that this
          many 802.1Q Bridges can be configured. For example, the CPE might not
          be able simultaneously to support both 802.1D and 802.1Q Bridges.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaxVLANEntries" access="readOnly">
        <description>
          The maximum number of 802.1Q {{bibref|802.1Q-2005}} VLANs supported
          per {{object|.Bridging.Bridge}} table entry.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MaxFilterEntries" access="readOnly"
          activeNotify="canDeny">
        <description>
          The maximum number of entries available in the {{object|Filter}}
          table.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

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

    <object name="Device.Bridging.Bridge.{i}." access="readWrite"
        numEntriesParameter="BridgeNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        Bridge table.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this {{object}}. {{enum}} 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="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="Standard" access="readWrite">
        <description>
          Selects the standard supported by this Bridge table entry.
        </description>
        <syntax>
          <string>
            <enumeration value="802.1D-2004">
              <description>{{bibref|802.1D-2004}}</description>
            </enumeration>
            <enumeration value="802.1Q-2005">
              <description>{{bibref|802.1Q-2005}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

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

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

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

    <object name="Device.Bridging.Bridge.{i}.Port.{i}." access="readWrite"
        numEntriesParameter="PortNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        Bridge Port table, which MUST contain an entry for each bridge port (a
        stackable interface object as described in {{bibref|TR-181i2|Section
        4.2}}). There are two types of bridge ports: management (upward facing)
        and non-management (downward facing). This is determined by configuring
        the Boolean {{param|ManagementPort}} parameter. The CPE will
        automatcially configure each management bridge port to appear in the
        interface stack above all non-management bridge ports that share the
        same {{object|##.Bridge}} instance.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the bridge port. This parameter is based on
          ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the bridge port (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}} When {{param|Enable}} is
          {{false}} then {{param}} SHOULD normally be {{enum|Down}} (or
          {{enum|NotPresent}} or {{enum|Error}} if there is a fault condition
          on the interface). When {{param|Enable}} is changed to {{true}} then
          {{param}} SHOULD change to {{enum|Up}} if and only if the interface
          is able to transmit and receive network traffic; it SHOULD change to
          {{enum|Dormant}} if and only if the interface is operable but is
          waiting for external actions before it can transmit and receive
          network traffic (and subsequently change to {{enum|Up}} if still
          operable when the expected actions have completed); it SHOULD change
          to {{enum|LowerLayerDown}} if and only if the interface is prevented
          from entering the {{enum|Up}} state because one or more of the
          interfaces beneath it is down; it SHOULD remain in the {{enum|Error}}
          state if there is an error or other fault condition detected on the
          interface; it SHOULD remain in the {{enum|NotPresent}} state if the
          interface has missing (typically hardware) components; it SHOULD
          change to {{enum|Unknown}} if the state of the interface can not be
          determined for some reason. This parameter is based on
          ''ifOperStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent"/>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Down"/>
        </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 textual name of the bridge port as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the bridge port entered its
          current operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowerLayers" access="readWrite">
        <description>
          {{list}} {{reference|an interface object that is stacked immediately
          below this interface object}} See {{bibref|TR-181i2|Section 4.2.1}}.
          When {{param|ManagementPort}} is set to {{true}} the CPE MUST set
          {{param}} to reference all non-management bridge ports that are
          within the same {{object|##.Bridge}} instance (and update {{param}}
          when subsequent non-management bridge ports are added or deleted on
          that ''Bridge''). The ACS SHOULD NOT set {{param}} in this case.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ManagementPort" access="readWrite">
        <description>
          If {{true}} then the entry is a management (upward facing) bridge
          port rather than a non-management (downward facing) bridge port. For
          a given {{object|##.Bridge}} instance, each management bridge port
          appears in the interface stack above all non-management bridge ports.
          The concept of Management Port is discussed in
          {{bibref|802.1Q-2005|chapter 8}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DefaultUserPriority" access="readWrite">
        <description>
          Bridge Port Default User Priority.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="7"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="PriorityRegeneration" access="readWrite">
        <description>
          {{list}} List items represent user priority regeneration values for
          each ingress user priority on this Bridge Port.
        </description>
        <syntax>
          <list minItems="8" maxItems="8"/>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="7"/>
          </unsignedInt>
          <default type="object" value="0,1,2,3,4,5,6,7"/>
        </syntax>
      </parameter>

      <parameter name="PortState" access="readOnly">
        <description>
          Bridge Port state as defined in 802.1D {{bibref|802.1D-2004}} and
          802.1Q {{bibref|802.1Q-2005}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Blocking"/>
            <enumeration value="Listening"/>
            <enumeration value="Learning"/>
            <enumeration value="Forwarding"/>
            <enumeration value="Broken"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="PVID" access="readWrite">
        <description>
          PVID (or Port VID) is the VLAN ID with which an untagged or priority
          tagged frame that arrives on this port will be associated (i.e.
          default Port VLAN ID as defined in 802.1Q {{bibref|802.1Q-2005}}).
          For an 802.1D Bridge {{bibref|802.1D-2004}}, this parameter MUST be
          ignored.
        </description>
        <syntax>
          <int>
            <range minInclusive="1" maxInclusive="4094"/>
          </int>
          <default type="object" value="1"/>
        </syntax>
      </parameter>

      <parameter name="AcceptableFrameTypes" access="readWrite">
        <description>
          Indicates which types of frame arriving on this port will be admitted
          to the bridge (i.e. Bridge Port acceptable frame types as defined in
          802.1Q {{bibref|802.1Q-2005}}). {{enum}} For an 802.1D
          {{bibref|802.1D-2004}} Bridge, the value of this parameter MUST be
          {{enum|AdmitAll}}.
        </description>
        <syntax>
          <string>
            <enumeration value="AdmitAll"/>
            <enumeration value="AdmitOnlyVLANTagged" optional="true"/>
            <enumeration value="AdmitOnlyPrioUntagged" optional="true"/>
          </string>
          <default type="object" value="AdmitAll"/>
        </syntax>
      </parameter>

      <parameter name="IngressFiltering" access="readWrite">
        <description>
          Enables or disables Ingress Filtering as defined in 802.1Q
          {{bibref|802.1Q-2005}}. If enabled ({{true}}), causes frames arriving
          on this port to be discarded if the port is not in the VLAN ID's
          member set (which is configured via the {{object|#.VLANPort}} table).
          For an 802.1D {{bibref|802.1D-2004}} Bridge, the value of this
          parameter MUST be {{false}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="PriorityTagging" access="readWrite">
        <description>
          Enables or disables priority tagging on this Bridge Port. When
          {{true}}, egress frames leaving this interface will be priority
          tagged with the frame's associated priority value, which will either
          be derived directly from the ingress frame or else set via
          {{param|.QoS.Classification.{i}.EthernetPriorityMark}}. When
          {{false}}, egress frames leaving this interface will be untagged. The
          parameter does not affect reception of ingress frames. Only applies
          on bridge ports that are untagged member of one or more VLAN's.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Bridging.Bridge.{i}.Port.{i}.Stats."
        access="readOnly" minEntries="1" maxEntries="1">
      <description>
        Throughput statistics for this interface. The CPE MUST reset the
        interface's Stats parameters (unless otherwise stated in individual
        object or parameter descriptions) either when the interface becomes
        operationally down due to a previous administrative down (i.e. the
        interface's {{param|#.Status}} parameter transitions to a down state
        after the interface is disabled) or when the interface becomes
        administratively up (i.e. the interface's {{param|#.Enable}} parameter
        transitions from {{false}} to {{true}}). Administrative and operational
        interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>

      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes received on the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets transmitted out of the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received on the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets that contained errors preventing
          them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets requested for transmission which were not
          addressed to a multicast or broadcast address at this layer,
          including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of outbound packets which were chosen to be
          discarded even though no errors had been detected to prevent their
          being transmitted. One possible reason for discarding such a packet
          could be to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets which were chosen to be discarded
          even though no errors had been detected to prevent their being
          delivered. One possible reason for discarding such a packet could be
          to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a multicast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a broadcast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Bridging.Bridge.{i}.VLAN.{i}." access="readWrite"
        numEntriesParameter="VLANNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        Bridge VLAN table. If this table is supported, if MUST contain an entry
        for each VLAN known to the Bridge. This table only applies to an 802.1Q
        {{bibref|802.1Q-2005}} Bridge.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="VLANID"/>
      </uniqueKey>

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

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

      <parameter name="Name" access="readWrite">
        <description>
          Human-readable name for this VLAN table entry.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="VLANID" access="readWrite">
        <description>
          VLAN ID of the entry.
        </description>
        <syntax>
          <int>
            <range minInclusive="1" maxInclusive="4094"/>
          </int>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Bridging.Bridge.{i}.VLANPort.{i}." access="readWrite"
        numEntriesParameter="VLANPortNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        Bridge VLAN egress port and untagged port membership table. This table
        only applies to an 802.1Q {{bibref|802.1Q-2005}} Bridge. Note: The
        {{object}} table includes unique key parameters that are strong
        references. If a strongly referenced object is deleted, the CPE will
        set the referencing parameter to {{empty}}. However, doing so under
        these circumstances might cause the updated {{object}} row to then
        violate the table's unique key constraint; if this occurs, the CPE MUST
        disable the offending {{object}} row.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="VLAN"/>
        <parameter ref="Port"/>
      </uniqueKey>

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

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

      <parameter name="VLAN" access="readWrite">
        <description>
          {{reference}} Specifies the VLAN for which port membership is
          expressed.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.VLAN." targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Port" access="readWrite">
        <description>
          {{reference}} Specifies the bridge port that is member of the VLAN.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.Port." targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Untagged" access="readWrite">
        <description>
          Enables or disables untagged port membership to the VLAN and
          determines whether egress frames for this VLAN are sent untagged or
          tagged.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Bridging.Filter.{i}." access="readWrite"
        numEntriesParameter="FilterNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        Filter table containing classification filter entries, each of which
        expresses a set of classification criterion to classify ingress frames
        as member of a {{object|#.Bridge}} instance or a
        {{object|#.Bridge.{i}.VLAN}} instance. Bridge VLAN classification only
        applies for 802.1Q {{bibref|802.1Q-2005}} Bridges. For enabled table
        entries, if {{param|Bridge}} or {{param|Interface}} is {{empty}} then
        the table entry is inoperable and the CPE MUST set {{param|Status}} to
        {{enum|Error_Misconfigured|Status}}.

        Several of this object's parameters specify DHCP option values. Some
        cases are version neutral (the parameter can apply to both DHCPv4 and
        DHCPv6), but in other cases the representation of the option is
        different for DHCPv4 and DHCPv6, so it is necessary to define separate
        DHCPv4-specific and DHCPv6-specific parameters. Therefore, an instance
        of this object that uses DHCP option values as filter criteria will be
        associated with either DHCPv4 or DHCPv6, as indicated by the
        {{param|DHCPType}} parameter.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this Filter table entry. {{enum}} The
          {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid. The {{enum|Error}} value
          MAY be used by the CPE to indicate a locally defined error condition.
          If the Bridge Port table is supported, but none of its entries
          correspond to {{param|Interface}}, or if such an entry exists but is
          disabled, {{param}} MUST NOT indicate {{enum|Enabled}}. If the Bridge
          VLAN table is supported, but none of its entries correspond to
          {{param|VLANIDFilter}}, or if such an entry exists but is disabled,
          {{param}} MUST NOT indicate {{enum|Enabled}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="Bridge" access="readWrite">
        <description>
          {{reference|a {{object|.Bridging.Bridge}} object in case of a 802.1D
          bridge or a {{object|.Bridging.Bridge.{i}.VLAN}} object in case of a
          802.1Q bridge}} Note: either way, this identifies the bridge (because
          each bridge has a VLAN table). Defines the Bridge or Bridge VLAN to
          which ingress frames will be classified based upon matches of the
          classification criteria.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef
                refType="strong"
                targetParent="
                  #.Bridge.
                  #.Bridge.{i}.VLAN."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Order" access="readWrite">
        <description>
          Position of the {{object}} entry in the order of precedence. A value
          of ''1'' indicates the first entry considered (highest precedence).
          For each ingress frame on the {{param|Interface}}, the highest
          ordered entry that matches the filter criteria is applied. All lower
          order entries are ignored. When this value is modified, if the value
          matches that of an existing entry, the {{param}} value for the
          existing entry and all lower {{param}} entries is incremented
          (lowered in precedence) to ensure uniqueness of this value. A
          deletion causes {{param}} values to be compacted. When a value is
          changed, incrementing occurs before compaction. The value of
          {{param}} on creation of a {{object}} table entry MUST be one greater
          than the largest current value (initially assigned the lowest
          precedence).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} This MUST relate to the same bridge as does
          {{param|Bridge}}. Defines the Bridge Port on which ingress frame
          classification will occur.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.Bridge.{i}.Port."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DHCPType" access="readWrite"
          dmr:previousParameter="Interface">
        <description>
          The DHCP protocol associated with the {{object}} instance. Affects
          only parameters that specify DHCP option values as filter criteria
          (all such parameter descriptions note this fact). {{enum}} If
          {{param}} is {{enum|DHCPv4}}, then {{object}} parameters that are
          DHCPv6-specific are ignored. If {{param}} is {{enum|DHCPv6}}, then
          {{object}} parameters that are DHCPv4-specific are ignored.
        </description>
        <syntax>
          <string>
            <enumeration value="DHCPv4"/>
            <enumeration value="DHCPv6"/>
          </string>
          <default type="object" value="DHCPv4"/>
        </syntax>
      </parameter>

      <parameter name="VLANIDFilter" access="readWrite">
        <description>
          Classification criterion. The 802.1Q {{bibref|802.1Q-2005}} VLAN ID.
          For an 802.1D {{bibref|802.1D-2004}} Bridge, which has no concept of
          VLANs, the VLAN ID MUST be ''0''.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="4094"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="EthertypeFilterList" access="readWrite">
        <description>
          Classification criterion. {{list}} Each list item represents an
          Ethertype value. Note that neither 802.1D {{bibref|802.1D-2004}} nor
          802.1Q {{bibref|802.1Q-2005}} support classification based on
          Ethertype.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <unsignedInt/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="EthertypeFilterExclude" access="readWrite">
        <description>
          If {{false}}, on ingress to the interfaces associated with this
          Filter, the Bridge is defined to admit only those packets that match
          one of the {{param|EthertypeFilterList}} entries (in either the
          Ethernet or SNAP Type header). If the {{param|EthertypeFilterList}}
          is empty, no packets are admitted. If {{true}}, on ingress to the
          interfaces associated with this Filter, the Bridge is defined to
          admit all packets except those packets that match one of the
          {{param|EthertypeFilterList}} entries (in either the Ethernet or SNAP
          Type header). If the {{param|EthertypeFilterList}} is empty, packets
          are admitted regardless of Ethertype. Note that neither 802.1D
          {{bibref|802.1D-2004}} nor 802.1Q {{bibref|802.1Q-2005}} support
          classification based on Ethertype.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="SourceMACAddressFilterList" access="readWrite">
        <description>
          Classification criterion. {{list|each representing a MAC Address}}
          Each list entry MAY optionally specify a bit-mask, where matching of
          a packet's MAC address is only to be done for bit positions set to
          one in the mask. If no mask is specified, all bits of the MAC Address
          are to be used for matching. For example, the list might be:
          ''01:02:03:04:05:06, 1:22:33:00:00:00/FF:FF:FF:00:00:00,
          88:77:66:55:44:33'' Note that neither 802.1D {{bibref|802.1D-2004}}
          nor 802.1Q {{bibref|802.1Q-2005}} support classification based on
          source MAC address.
        </description>
        <syntax>
          <list>
            <size maxLength="512"/>
          </list>
          <string/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceMACAddressFilterExclude" access="readWrite">
        <description>
          If {{false}}, on ingress to the interfaces associated with this
          Filter, the Bridge admits only those packets whose source MAC Address
          matches one of the {{param|SourceMACAddressFilterList}} entries. If
          the {{param|SourceMACAddressFilterList}} is empty, no packets are
          admitted. If {{true}}, on ingress to the interfaces associated with
          this Filter, the Bridge admits all packets except those packets whose
          source MAC Address matches one of the
          {{param|SourceMACAddressFilterList}} entries. If the
          {{param|SourceMACAddressFilterList}} is empty, packets are admitted
          regardless of MAC address. Note that neither 802.1D
          {{bibref|802.1D-2004}} nor 802.1Q {{bibref|802.1Q-2005}} support
          classification based on source MAC address.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="DestMACAddressFilterList" access="readWrite">
        <description>
          Classification criterion. {{list}} Each list item specifies a MAC
          Address. List items MAY optionally specify a bit-mask after the MAC
          Address, where matching of a packet's MAC address is only to be done
          for bit positions set to one in the mask. If no mask is specified,
          all bits of the MAC Address are to be used for matching. For example,
          the list might be: ''01:02:03:04:05:06,
          1:22:33:00:00:00/FF:FF:FF:00:00:00, 88:77:66:55:44:33''
        </description>
        <syntax>
          <list>
            <size maxLength="512"/>
          </list>
          <string/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestMACAddressFilterExclude" access="readWrite">
        <description>
          If {{false}}, on ingress to the interfaces associated with this
          Filter, the Bridge admits only those packets whose destination MAC
          Address matches one of the {{param|DestMACAddressFilterList}}
          entries. If the {{param|DestMACAddressFilterList}} is empty, no
          packets are admitted. If {{true}}, on ingress to the interfaces
          associated with this Filter, the Bridge admits all packets except
          those packets whose destination MAC Address matches one of the
          {{param|DestMACAddressFilterList}} entries. If the
          {{param|DestMACAddressFilterList}} is empty, packets are admitted
          regardless of MAC address.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="SourceMACFromVendorClassIDFilter" access="readWrite">
        <description>
          Classification criterion. A string used to identify one or more
          devices via DHCP for which MAC address filtering would subsequently
          apply. A device is considered matching if its DHCPv4 Vendor Class
          Identifier (Option 60 as defined in {{bibref|RFC2132}}) in the most
          recent DHCP lease acquisition or renewal matches the specified value
          according to the match criterion in
          {{param|SourceMACFromVendorClassIDMode}}. Case sensitive. This is a
          normal string, e.g. "abc" is represented as "abc" and not "616263"
          hex. However, if the value includes non-printing characters then such
          characters have to be represented using XML escapes, e.g. #x0a for
          line-feed. Note that neither 802.1D {{bibref|802.1D-2004}} nor 802.1Q
          {{bibref|802.1Q-2005}} support classification based on source MAC
          address. Note: This parameter is DHCPv4-specific. It only applies
          when {{param|DHCPType}} is {{enum|DHCPv4|DHCPType}}.
        </description>
        <syntax>
          <string>
            <size maxLength="255"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceMACFromVendorClassIDFilterExclude"
          access="readWrite">
        <description>
          If {{false}}, on ingress to the interfaces associated with this
          Filter, the Bridge admits only those packets whose source MAC Address
          matches that of a LAN device previously identified as described in
          {{param|SourceMACFromVendorClassIDFilter}} (for
          {{enum|DHCPv4|DHCPType}}) or
          {{param|SourceMACFromVendorClassIDFilterv6}} (for
          {{enum|DHCPv6|DHCPType}}). If this corresponding filter parameter is
          {{empty}}, no packets are admitted. If {{true}}, on ingress to the
          interfaces associated with this Filter, the Bridge admits all packets
          except those packets whose source MAC Address matches that of a LAN
          device previously identified as described in
          {{param|SourceMACFromVendorClassIDFilter}} (for
          {{enum|DHCPv4|DHCPType}}) or
          {{param|SourceMACFromVendorClassIDFilterv6}} (for
          {{enum|DHCPv6|DHCPType}}). If this corresponding filter parameter is
          {{empty}}, packets are admitted regardless of MAC address. Note that
          neither 802.1D {{bibref|802.1D-2004}} nor 802.1Q
          {{bibref|802.1Q-2005}} support classification based on source MAC
          address.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="SourceMACFromVendorClassIDMode" access="readWrite">
        <description>
          {{param|SourceMACFromVendorClassIDFilter}} pattern match criterion.
          {{enum}} For example, if {{param|SourceMACFromVendorClassIDFilter}}
          is "Example" then an Option 60 value of "Example device" will match
          with {{param}} values of {{enum|Prefix}} or {{enum|Substring}}, but
          not with {{enum|Exact}} or {{enum|Suffix}}. Note that neither 802.1D
          {{bibref|802.1D-2004}} nor 802.1Q {{bibref|802.1Q-2005}} support
          classification based on source MAC address.
        </description>
        <syntax>
          <string>
            <enumeration value="Exact"/>
            <enumeration value="Prefix"/>
            <enumeration value="Suffix"/>
            <enumeration value="Substring"/>
          </string>
          <default type="object" value="Exact"/>
        </syntax>
      </parameter>

      <parameter name="DestMACFromVendorClassIDFilter" access="readWrite">
        <description>
          Classification criterion. A string used to identify one or more
          devices via DHCP for which MAC address filtering would subsequently
          apply. A device is considered matching if its DHCPv4 Vendor Class
          Identifier (Option 60 as defined in {{bibref|RFC2132}}) in the most
          recent DHCP lease acquisition or renewal matches the specified value
          according to the match criterion in
          {{param|DestMACFromVendorClassIDMode}}. Case sensitive. This is a
          normal string, e.g. "abc" is represented as "abc" and not say
          "616263" hex. However, if the value includes non-printing characters
          then such characters have to be represented using XML escapes, e.g.
          #x0a for line-feed. Note: This parameter is DHCPv4-specific. It only
          applies when {{param|DHCPType}} is {{enum|DHCPv4|DHCPType}}.
        </description>
        <syntax>
          <string>
            <size maxLength="255"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestMACFromVendorClassIDFilterExclude"
          access="readWrite">
        <description>
          If {{false}}, on ingress to the interfaces associated with this
          Filter, the Bridge admits only those packets whose destination MAC
          Address matches that of a LAN device previously identified as
          described in {{param|DestMACFromVendorClassIDFilter}} (for
          {{enum|DHCPv4|DHCPType}}) or
          {{param|DestMACFromVendorClassIDFilterv6}} (for
          {{enum|DHCPv6|DHCPType}}). If this corresponding filter parameter is
          {{empty}}, no packets are admitted. If {{true}}, on ingress to the
          interfaces associated with this Filter, the Bridge admits all packets
          except those packets whose destination MAC Address matches that of a
          LAN device previously identified as described in
          {{param|DestMACFromVendorClassIDFilter}} (for
          {{enum|DHCPv4|DHCPType}}) or
          {{param|DestMACFromVendorClassIDFilterv6}} (for
          {{enum|DHCPv6|DHCPType}}). If this corresponding filter parameter is
          {{empty}}, packets are admitted regardless of MAC address.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="DestMACFromVendorClassIDMode" access="readWrite">
        <description>
          {{param|DestMACFromVendorClassIDFilter}} pattern match criterion.
          {{enum}} For example, if {{param|DestMACFromVendorClassIDFilter}} is
          ''Example'' then an Option 60 value of "Example device" will match
          with {{param}} values of {{enum|Prefix}} or {{enum|Substring}}, but
          not with {{enum|Exact}} or {{enum|Suffix}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Exact"/>
            <enumeration value="Prefix"/>
            <enumeration value="Suffix"/>
            <enumeration value="Substring"/>
          </string>
          <default type="object" value="Exact"/>
        </syntax>
      </parameter>

      <parameter name="SourceMACFromClientIDFilter" access="readWrite">
        <description>
          Classification criterion. A hexbinary string used to identify one or
          more devices via DHCP for which MAC address filtering would
          subsequently apply. A device is considered matching if the most
          recent DHCP Client Identifier (via DHCP lease acquisition or renewal
          for DHCPv4) was equal to the specified value. The DHCP Client
          Identifier is Option 61 (as defined in {{bibref|RFC2132}}) for
          {{enum|DHCPv4|DHCPType}}, or is Option 1 (as defined in
          {{bibref|RFC3315}}) for {{enum|DHCPv6|DHCPType}}. The option value is
          binary, so an exact match is REQUIRED. Note that neither 802.1D
          {{bibref|802.1D-2004}} nor 802.1Q {{bibref|802.1Q-2005}} support
          classification based on source MAC address. Note: DHCPv4 Option
          values are limited to a length of 255, while DHCPv6 Option values can
          have a maximum length of 65535. Note: This parameter is DHCP version
          neutral. The specific DHCP version in use with this parameter is
          indicated by {{param|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceMACFromClientIDFilterExclude" access="readWrite">
        <description>
          If {{false}}, on ingress to the interfaces associated with this
          Filter, the Bridge admits only those packets whose source MAC Address
          matches that of a LAN device previously identified as described in
          {{param|SourceMACFromClientIDFilter}}. If
          {{param|SourceMACFromClientIDFilter}} is {{empty}}, no packets are
          admitted. If {{true}}, on ingress to the interfaces associated with
          this Filter, the Bridge admits all packets except those packets whose
          source MAC Address matches that of a LAN device previously identified
          as described in {{param|SourceMACFromClientIDFilter}}. If the
          {{param|SourceMACFromClientIDFilter}} is {{empty}}, packets are
          admitted regardless of MAC address. Note that neither 802.1D
          {{bibref|802.1D-2004}} nor 802.1Q {{bibref|802.1Q-2005}} support
          classification based on source MAC address.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="DestMACFromClientIDFilter" access="readWrite">
        <description>
          Classification criterion. A hexbinary string used to identify one or
          more devices via DHCP for which MAC address filtering would
          subsequently apply. A device is considered matching if the most
          recent DHCP Client Identifier (via DHCP lease acquisition or renewal
          for DHCPv4) was equal to the specified value. The DHCP Client
          Identifier is Option 61 (as defined in {{bibref|RFC2132}}) for
          {{enum|DHCPv4|DHCPType}}, or is Option 1 (as defined in
          {{bibref|RFC3315}}) for {{enum|DHCPv6|DHCPType}}. The option value is
          binary, so an exact match is REQUIRED. Note: DHCPv4 Option values are
          limited to a length of 255, while DHCPv6 Option values can have a
          maximum length of 65535. Note: This parameter is DHCP version
          neutral. The specific DHCP version in use with this parameter is
          indicated by {{param|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestMACFromClientIDFilterExclude" access="readWrite">
        <description>
          If {{false}}, on ingress to the interfaces associated with this
          Filter, the Bridge admits only those packets whose destination MAC
          Address matches that of a LAN device previously identified as
          described in {{param|DestMACFromClientIDFilter}}. If
          {{param|DestMACFromClientIDFilter}} is {{empty}}, no packets are
          admitted. If {{true}}, on ingress to the interfaces associated with
          this Filter, the Bridge admits all packets except those packets whose
          destination MAC Address matches that of a LAN device previously
          identified as described in {{param|DestMACFromClientIDFilter}}. If
          the {{param|DestMACFromClientIDFilter}} is {{empty}}, packets are
          admitted regardless of MAC address.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="SourceMACFromUserClassIDFilter" access="readWrite">
        <description>
          Classification criterion. A hexbinary string used to identify one or
          more devices via DHCP for which MAC address filtering would
          subsequently apply. A device is considered matching if the most
          recent DHCP User Class Identifier (via DHCP lease acquisition or
          renewal for DHCPv4) was equal to the specified value. The DHCP User
          Class Identifier is Option 77 (as defined in {{bibref|RFC3004}}) for
          {{enum|DHCPv4|DHCPType}}, or is Option 15 (as defined in
          {{bibref|RFC3315}}) for {{enum|DHCPv6|DHCPType}}. The option value is
          binary, so an exact match is REQUIRED. Note that neither 802.1D
          {{bibref|802.1D-2004}} nor 802.1Q {{bibref|802.1Q-2005}} support
          classification based on source MAC address. Note: DHCPv4 Option
          values are limited to a length of 255, while DHCPv6 Option values can
          have a maximum length of 65535. Note: This parameter is DHCP version
          neutral. The specific DHCP version in use with this parameter is
          indicated by {{param|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceMACFromUserClassIDFilterExclude"
          access="readWrite">
        <description>
          If {{false}}, on ingress to the interfaces associated with this
          Filter, the Bridge admits only those packets whose source MAC Address
          matches that of a LAN device previously identified as described in
          {{param|SourceMACFromUserClassIDFilter}}. If
          {{param|SourceMACFromUserClassIDFilter}} is {{empty}}, no packets are
          admitted. If {{true}}, on ingress to the interfaces associated with
          this Filter, the Bridge admits all packets except those packets whose
          source MAC Address matches that of a LAN device previously identified
          as described in {{param|SourceMACFromUserClassIDFilter}}. If the
          {{param|SourceMACFromUserClassIDFilter}} is {{empty}}, packets are
          admitted regardless of MAC address. Note that neither 802.1D
          {{bibref|802.1D-2004}} nor 802.1Q {{bibref|802.1Q-2005}} support
          classification based on source MAC address.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="DestMACFromUserClassIDFilter" access="readWrite">
        <description>
          Classification criterion. A hexbinary string used to identify one or
          more devices via DHCP for which MAC address filtering would
          subsequently apply. A device is considered matching if the most
          recent DHCP User Class Identifier (via DHCP lease acquisition or
          renewal for DHCPv4) was equal to the specified value. The DHCP User
          Class Identifier is Option 77 (as defined in {{bibref|RFC3004}}) for
          {{enum|DHCPv4|DHCPType}}, or is Option 15 (as defined in
          {{bibref|RFC3315}}) for {{enum|DHCPv6|DHCPType}}. The option value is
          binary, so an exact match is REQUIRED. Note: DHCPv4 Option values are
          limited to a length of 255, while DHCPv6 Option values can have a
          maximum length of 65535. Note: This parameter is DHCP version
          neutral. The specific DHCP version in use with this parameter is
          indicated by {{param|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestMACFromUserClassIDFilterExclude" access="readWrite">
        <description>
          If {{false}}, on ingress to the interfaces associated with this
          Filter, the Bridge admits only those packets whose destination MAC
          Address matches that of a LAN device previously identified as
          described in {{param|DestMACFromUserClassIDFilter}}. If
          {{param|DestMACFromUserClassIDFilter}} is {{empty}}, no packets are
          admitted. If {{true}}, on ingress to the interfaces associated with
          this Filter, the Bridge admits all packets except those packets whose
          destination MAC Address matches that of a LAN device previously
          identified as described in {{param|DestMACFromUserClassIDFilter}}. If
          the {{param|DestMACFromUserClassIDFilter}} is {{empty}}, packets are
          admitted regardless of MAC address.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="SourceMACFromVendorClassIDFilterv6" access="readWrite">
        <description>
          Classification criterion. A hexbinary string used to identify one or
          more devices via DHCP for which MAC address filtering would
          subsequently apply. A device is considered matching if the most
          recent DHCPv6 Vendor Class Identifier (Option 16 as defined in
          {{bibref|RFC3315}}) was equal to the specified value. The option
          value is binary, so an exact match is REQUIRED. Note that neither
          802.1D {{bibref|802.1D-2004}} nor 802.1Q {{bibref|802.1Q-2005}}
          support classification based on source MAC address. Note: This
          parameter is DHCPv6-specific. It only applies when {{param|DHCPType}}
          is {{enum|DHCPv6|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestMACFromVendorClassIDFilterv6" access="readWrite">
        <description>
          Classification criterion. A hexbinary string used to identify one or
          more devices via DHCP for which MAC address filtering would
          subsequently apply. A device is considered matching if the most
          recent DHCPv6 Vendor Class Identifier (Option 16 as defined in
          {{bibref|RFC3315}}) was equal to the specified value. The option
          value is binary, so an exact match is REQUIRED. Note: This parameter
          is DHCPv6-specific. It only applies when {{param|DHCPType}} is
          {{enum|DHCPv6|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PPP." access="readOnly" minEntries="1" maxEntries="1">
      <description>
        Point-to-Point Protocol {{bibref|RFC1661}}. This object contains the
        {{object|Interface}} table.
      </description>

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

      <parameter name="SupportedNCPs" access="readOnly">
        <description>
          The Network Control Protocols (NCPs) that are supported by the
          device. {{enum}} Note that {{enum|IPv6CP}} is an IPv6 capability.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="ATCP">
              <description>
                AppleTalk Control Protocol {{bibref|RFC1378}}
              </description>
            </enumeration>
            <enumeration value="IPCP">
              <description>{{bibref|RFC1332}}</description>
            </enumeration>
            <enumeration value="IPXCP">
              <description>{{bibref|RFC1552}}</description>
            </enumeration>
            <enumeration value="NBFCP">
              <description>{{bibref|RFC2097}}</description>
            </enumeration>
            <enumeration value="IPv6CP">
              <description>{{bibref|RFC5072}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PPP.Interface.{i}." access="readWrite"
        numEntriesParameter="InterfaceNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        PPP interface table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}).
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the interface. This parameter is based on
          ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the interface (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}} When {{param|Enable}} is
          {{false}} then {{param}} SHOULD normally be {{enum|Down}} (or
          {{enum|NotPresent}} or {{enum|Error}} if there is a fault condition
          on the interface). When {{param|Enable}} is changed to {{true}} then
          {{param}} SHOULD change to {{enum|Up}} if and only if the interface
          is able to transmit and receive network traffic; it SHOULD change to
          {{enum|Dormant}} if and only if the interface is operable but is
          waiting for external actions before it can transmit and receive
          network traffic (and subsequently change to {{enum|Up}} if still
          operable when the expected actions have completed); it SHOULD change
          to {{enum|LowerLayerDown}} if and only if the interface is prevented
          from entering the {{enum|Up}} state because one or more of the
          interfaces beneath it is down; it SHOULD remain in the {{enum|Error}}
          state if there is an error or other fault condition detected on the
          interface; it SHOULD remain in the {{enum|NotPresent}} state if the
          interface has missing (typically hardware) components; it SHOULD
          change to {{enum|Unknown}} if the state of the interface can not be
          determined for some reason. This parameter is based on
          ''ifOperStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent"/>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Down"/>
        </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 textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the interface entered its
          current operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowerLayers" access="readWrite">
        <description>
          {{list}} {{reference|an interface object that is stacked immediately
          below this interface object}} See {{bibref|TR-181i2|Section 4.2.1}}.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Reset" access="readWrite">
        <description>
          When set to {{true}}, the device MUST tear down the existing PPP
          connection represented by this object and establish a new one. The
          device MUST initiate the reset after completion of the current CWMP
          session. The device MAY delay resetting the connection in order to
          avoid interruption of a user service such as an ongoing voice call.
          Reset on a disabled interface is a no-op (not an error).
        </description>
        <syntax hidden="true" command="true">
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="ConnectionStatus" access="readOnly">
        <description>
          Current status of the connection.
        </description>
        <syntax>
          <string>
            <enumeration value="Unconfigured"/>
            <enumeration value="Connecting"/>
            <enumeration value="Authenticating"/>
            <enumeration value="Connected"/>
            <enumeration value="PendingDisconnect"/>
            <enumeration value="Disconnecting"/>
            <enumeration value="Disconnected"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastConnectionError" access="readOnly">
        <description>
          The cause of failure for the last connection setup attempt.
        </description>
        <syntax>
          <string>
            <enumeration value="ERROR_NONE"/>
            <enumeration value="ERROR_ISP_TIME_OUT"/>
            <enumeration value="ERROR_COMMAND_ABORTED"/>
            <enumeration value="ERROR_NOT_ENABLED_FOR_INTERNET"/>
            <enumeration value="ERROR_BAD_PHONE_NUMBER"/>
            <enumeration value="ERROR_USER_DISCONNECT"/>
            <enumeration value="ERROR_ISP_DISCONNECT"/>
            <enumeration value="ERROR_IDLE_DISCONNECT"/>
            <enumeration value="ERROR_FORCED_DISCONNECT"/>
            <enumeration value="ERROR_SERVER_OUT_OF_RESOURCES"/>
            <enumeration value="ERROR_RESTRICTED_LOGON_HOURS"/>
            <enumeration value="ERROR_ACCOUNT_DISABLED"/>
            <enumeration value="ERROR_ACCOUNT_EXPIRED"/>
            <enumeration value="ERROR_PASSWORD_EXPIRED"/>
            <enumeration value="ERROR_AUTHENTICATION_FAILURE"/>
            <enumeration value="ERROR_NO_DIALTONE"/>
            <enumeration value="ERROR_NO_CARRIER"/>
            <enumeration value="ERROR_NO_ANSWER"/>
            <enumeration value="ERROR_LINE_BUSY"/>
            <enumeration value="ERROR_UNSUPPORTED_BITSPERSECOND"/>
            <enumeration value="ERROR_TOO_MANY_LINE_ERRORS"/>
            <enumeration value="ERROR_IP_CONFIGURATION"/>
            <enumeration value="ERROR_UNKNOWN"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AutoDisconnectTime" access="readWrite">
        <description>
          The time in {{units}} since the establishment of the connection after
          which connection termination is automatically initiated by the CPE.
          This occurs irrespective of whether the connection is being used or
          not. A value of 0 (zero) indicates that the connection is not to be
          shut down automatically.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="IdleDisconnectTime" access="readWrite">
        <description>
          The time in {{units}} that if the connection remains idle, the CPE
          automatically terminates the connection. A value of 0 (zero)
          indicates that the connection is not to be shut down automatically.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="WarnDisconnectDelay" access="readWrite">
        <description>
          Time in {{units}} the {{param|ConnectionStatus}} remains in the
          {{enum|PendingDisconnect|ConnectionStatus}} state before
          transitioning to disconnecting state to drop the connection.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Username" access="readWrite">
        <description>
          Username to be used for authentication.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Password" access="readWrite">
        <description>
          Password to be used for authentication.
        </description>
        <syntax hidden="true">
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EncryptionProtocol" access="readOnly">
        <description>
          Describes the PPP encryption protocol.
        </description>
        <syntax>
          <string>
            <enumeration value="None"/>
            <enumeration value="MPPE"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="CompressionProtocol" access="readOnly">
        <description>
          Describes the PPP compression protocol.
        </description>
        <syntax>
          <string>
            <enumeration value="None"/>
            <enumeration value="Van Jacobson">
              <description>{{bibref|RFC1332}}</description>
            </enumeration>
            <enumeration value="STAC LZS">
              <description>{{bibref|RFC1974}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="AuthenticationProtocol" access="readOnly">
        <description>
          Describes the PPP authentication protocol.
        </description>
        <syntax>
          <string>
            <enumeration value="PAP"/>
            <enumeration value="CHAP"/>
            <enumeration value="MS-CHAP"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxMRUSize" access="readWrite">
        <description>
          The maximum allowed size of frames sent from the remote peer.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="64" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="1500"/>
        </syntax>
      </parameter>

      <parameter name="CurrentMRUSize" access="readOnly"
          activeNotify="canDeny">
        <description>
          The current MRU in use over this connection.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="64" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ConnectionTrigger" access="readWrite">
        <description>
          Trigger used to establish the PPP connection. {{enum}} Note that the
          reason for a PPP connection becoming disconnected to begin with might
          be either external to the CPE, such as termination by the BRAS or
          momentary disconnection of the physical interface, or internal to the
          CPE, such as use of the {{param|IdleDisconnectTime}} and/or
          {{param|AutoDisconnectTime}} parameters in this object.
        </description>
        <syntax>
          <string>
            <enumeration value="OnDemand">
              <description>
                If this PPP connection is disconnected for any reason, it is to
                remain disconnected until the CPE has one or more packets to
                communicate over this connection, at which time the CPE
                automatically attempts to reestablish the connection.
              </description>
            </enumeration>
            <enumeration value="AlwaysOn">
              <description>
                If this PPP connection is disconnected for any reason, the CPE
                automatically attempts to reestablish the connection (and
                continues to attempt to reestablish the connection as long it
                remains disconnected).
              </description>
            </enumeration>
            <enumeration value="Manual">
              <description>
                If this PPP connection is disconnected for any reason, it is to
                remain disconnected until the user of the CPE explicitly
                instructs the CPE to reestablish the connection.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="LCPEcho" access="readOnly">
        <description>
          PPP LCP Echo period in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LCPEchoRetry" access="readOnly">
        <description>
          Number of PPP LCP Echo retries within an echo period.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="IPCPEnable" access="readWrite">
        <description>
          Enables or disables IPCP ({{bibref|RFC1332}}) on this interface. If
          this parameter is present, {{enum|IPCP|#.SupportedNCPs}} MUST be
          included in {{param|#.SupportedNCPs}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv6CPEnable" access="readWrite">
        <description>
          Enables or disables IPv6CP ({{bibref|RFC5072}}) on this interface. If
          this parameter is present, {{enum|IPv6CP|#.SupportedNCPs}} MUST be
          included in {{param|#.SupportedNCPs}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PPP.Interface.{i}.PPPoE." access="readOnly"
        minEntries="0" maxEntries="1">
      <description>
        PPPoE object that functionally groups PPPoE related parameters.
      </description>

      <parameter name="SessionID" access="readOnly">
        <description>
          Represents the PPPoE Session ID.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ACName" access="readWrite">
        <description>
          PPPoE Access Concentrator.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ServiceName" access="readWrite">
        <description>
          PPPoE Service Name.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PPP.Interface.{i}.IPCP." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        IP Control Protocol (IPCP) client object for this PPP interface
        {{bibref|RFC1332}}. {{object}} only applies to IPv4.
      </description>

      <parameter name="LocalIPAddress" access="readOnly">
        <description>
          The local IPv4 address for this connection received via IPCP.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="RemoteIPAddress" access="readOnly">
        <description>
          The remote IPv4 address for this connection received via IPCP.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DNSServers" access="readOnly">
        <description>
          {{list}} Items represent DNS Server IPv4 address(es) received via
          IPCP {{bibref|RFC1877}}.
        </description>
        <syntax>
          <list maxItems="2"/>
          <dataType ref="IPv4Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="PassthroughEnable" access="readWrite">
        <description>
          If {{false}}, the PPP Interface retrieved information is configured
          on the IP Interface stacked on top of this PPP Interface. If
          {{true}}, the PPP Interface retrieved information is propagated to
          the parameters in the referenced {{param|PassthroughDHCPPool}}
          object, replacing any existing configuration (including
          ''MinAddress'', ''MaxAddress'', ''SubnetMask'', ''IPRouters'', and
          ''DNSServers'').
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="PassthroughDHCPPool" access="readWrite">
        <description>
          {{reference}}When {{param}} is set to {{empty}},
          {{param|PassthroughEnable}} MUST be set to {{false}} (i.e.
          passthrough can not be enabled without a pool reference specified).
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".DHCPv4.Server.Pool."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PPP.Interface.{i}.IPv6CP." access="readOnly"
        minEntries="1" maxEntries="1"
        dmr:previousObject="Device.PPP.Interface.{i}.IPCP.">
      <description>
        IPv6 Control Protocol (IPv6CP) client object for this PPP interface
        {{bibref|RFC5072}}. {{object}} only applies to IPv6.
      </description>

      <parameter name="LocalInterfaceIdentifier" access="readOnly">
        <description>
          The interface identifier for the local end of the PPP link,
          negotiated using the IPv6CP ''Interface-Identifier'' option
          {{bibref|RFC5072|Section 4.1}}. The identifier is represented as the
          rightmost 64 bits of an IPv6 address (the leftmost 64 bits MUST be
          zero and MUST be ignored by the recipient).
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>

      <parameter name="RemoteInterfaceIdentifier" access="readOnly">
        <description>
          The interface identifier for the remote end of the PPP link,
          negotiated using the IPv6CP ''Interface-Identifier'' option
          {{bibref|RFC5072|Section 4.1}}. The identifier is represented as the
          rightmost 64 bits of an IPv6 address (the leftmost 64 bits MUST be
          zero and MUST be ignored by the recipient).
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PPP.Interface.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Throughput statistics for this interface. The CPE MUST reset the
        interface's Stats parameters (unless otherwise stated in individual
        object or parameter descriptions) either when the interface becomes
        operationally down due to a previous administrative down (i.e. the
        interface's {{param|#.Status}} parameter transitions to a down state
        after the interface is disabled) or when the interface becomes
        administratively up (i.e. the interface's {{param|#.Enable}} parameter
        transitions from {{false}} to {{true}}). Administrative and operational
        interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>

      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes received on the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets transmitted out of the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received on the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets that contained errors preventing
          them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets requested for transmission which were not
          addressed to a multicast or broadcast address at this layer,
          including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of outbound packets which were chosen to be
          discarded even though no errors had been detected to prevent their
          being transmitted. One possible reason for discarding such a packet
          could be to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets which were chosen to be discarded
          even though no errors had been detected to prevent their being
          delivered. One possible reason for discarding such a packet could be
          to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a multicast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a broadcast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.PPP.Interface.{i}.PPPoA." access="readOnly"
        minEntries="0" maxEntries="1">
      <description>
        PPPoA object that functionally groups PPPoA related parameters.
      </description>
    </object>

    <object name="Device.IP." access="readOnly" minEntries="1" maxEntries="1">
      <description>
        IP object that contains the {{object|Interface}},
        {{object|ActivePort}}, and {{object|Diagnostics}} objects.
      </description>

      <parameter name="IPv4Capable" access="readOnly">
        <description>
          Indicates whether the device is IPv4 capable.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv4Enable" access="readWrite"
          dmr:previousParameter="IPv4Capable">
        <description>
          Enables or disables the IPv4 stack, and so the use of IPv4 on the
          device. This affects only layer 3 and above. When {{false}}, IP
          interfaces that had been operationally up and passing IPv4 packets
          will now no longer be able to do so, and will be operationally down
          (unless also attached to an enabled IPv6 stack).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

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

      <parameter name="IPv4Status" access="readOnly">
        <description>
          Indicates the status of the IPv4 stack. {{enum}} 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="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IPv6Capable" access="readOnly">
        <description>
          Indicates whether the device is IPv6 capable. Note: If {{false}}, it
          is expected that IPv6-related parameters, enumeration values, etc
          will not be implemented by the device.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv6Enable" access="readWrite">
        <description>
          Enables or disables the IPv6 stack, and so the use of IPv6 on the
          device. This affects only layer 3 and above. When {{false}}, IP
          interfaces that had been operationally up and passing IPv6 packets
          will now no longer be able to do so, and will be operationally down
          (unless also attached to an enabled IPv4 stack).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv6Status" access="readOnly">
        <description>
          Indicates the status of the IPv6 stack. {{enum}} 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="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ULAPrefix" access="readWrite">
        <description>
          The ULA /48 prefix {{bibref|RFC4193|Section 3}}.
        </description>
        <syntax>
          <dataType ref="IPv6Prefix"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IP.Interface.{i}." access="readWrite"
        numEntriesParameter="InterfaceNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        IP interface table (a stackable interface object as described in
        {{bibref|TR-181i2|Section 4.2}}). This table models the layer 3 IP
        interface.

        Each IP interface can be attached to the IPv4 and/or IPv6 stack. The
        interface's IP addresses and prefixes are listed in the
        {{object|IPv4Address}}, {{object|IPv6Address}} and
        {{object|IPv6Prefix}} tables. Note that support for manipulating
        {{param|Loopback}} interfaces is OPTIONAL, so the implementation MAY
        choose not to create (or allow the ACS to create) {{object}} instances
        of type {{enum|Loopback|Type}}. When the ACS administratively disables
        the interface, i.e. sets {{param|Enable}} to {{false}}, the interface's
        automatically-assigned IP addresses and prefixes MAY be retained. When
        the ACS administratively enables the interface, i.e. sets
        {{param|Enable}} to {{true}}, these IP addresses and prefixes MUST be
        refreshed. It's up to the implementation to decide exactly what this
        means: it SHOULD take all reasonable steps to refresh everything but if
        it is unable, for example, to refresh a prefix that still has a
        significant lifetime, it might well choose to retain rather than
        discard it.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the interface (regardless of {{param|IPv4Enable}}
          and {{param|IPv6Enable}}). This parameter is based on
          ''ifAdminStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="IPv4Enable" access="readWrite"
          dmr:previousParameter="Enable">
        <description>
          If set to {{true}}, attaches this interface to the IPv4 stack. If set
          to {{false}}, detaches this interface from the IPv4 stack. Once
          detached from the IPv4 stack, the interface will now no longer be
          able to pass IPv4 packets, and will be operationally down (unless
          also attached to an enabled IPv6 stack). For an IPv4 capable device,
          if {{param}} is not present this interface SHOULD be permanently
          attached to the IPv4 stack. Note that {{param}} is independent of
          {{param|Enable}}, and that to administratively enable an interface
          for IPv4 it is necessary for both {{param|Enable}} and {{param}} to
          be {{true}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational state of the interface (see
          {{bibref|TR-181i2|Section 4.2.2}}). {{enum}} When {{param|Enable}} is
          {{false}} then {{param}} SHOULD normally be {{enum|Down}} (or
          {{enum|NotPresent}} or {{enum|Error}} if there is a fault condition
          on the interface). When {{param|Enable}} is changed to {{true}} then
          {{param}} SHOULD change to {{enum|Up}} if and only if the interface
          is able to transmit and receive network traffic; it SHOULD change to
          {{enum|Dormant}} if and only if the interface is operable but is
          waiting for external actions before it can transmit and receive
          network traffic (and subsequently change to {{enum|Up}} if still
          operable when the expected actions have completed); it SHOULD change
          to {{enum|LowerLayerDown}} if and only if the interface is prevented
          from entering the {{enum|Up}} state because one or more of the
          interfaces beneath it is down; it SHOULD remain in the {{enum|Error}}
          state if there is an error or other fault condition detected on the
          interface; it SHOULD remain in the {{enum|NotPresent}} state if the
          interface has missing (typically hardware) components; it SHOULD
          change to {{enum|Unknown}} if the state of the interface can not be
          determined for some reason. This parameter is based on
          ''ifOperStatus'' from {{bibref|RFC2863}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Up"/>
            <enumeration value="Down"/>
            <enumeration value="Unknown"/>
            <enumeration value="Dormant"/>
            <enumeration value="NotPresent"/>
            <enumeration value="LowerLayerDown"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Down"/>
        </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 textual name of the interface as assigned by the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LastChange" access="readOnly" activeNotify="canDeny">
        <description>
          The accumulated time in {{units}} since the interface entered its
          current operational state.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="LowerLayers" access="readWrite">
        <description>
          {{list}} {{reference|an interface object that is stacked immediately
          below this interface object}} See {{bibref|TR-181i2|Section 4.2.1}}.
          {{param}} MUST be {{empty}} and read-only when {{param|Type}} is
          {{enum|Loopback|Type}}, {{enum|Tunnel|Type}}, or
          {{enum|Tunneled|Type}}.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Router" access="readWrite">
        <description>
          {{reference}} The ''Router'' instance that is associated with this IP
          Interface entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".Routing.Router."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Reset" access="readWrite">
        <description>
          When set to {{true}}, the device MUST tear down the existing IP
          connection represented by this object and establish a new one. The
          device MUST initiate the reset after completion of the current CWMP
          session. The device MAY delay resetting the connection in order to
          avoid interruption of a user service such as an ongoing voice call.
          Reset on a disabled interface is a no-op (not an error).
        </description>
        <syntax hidden="true" command="true">
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="MaxMTUSize" access="readWrite">
        <description>
          The maximum transmission unit (MTU); the largest allowed size of an
          IP packet (including IP headers, but excluding lower layer headers
          such as Ethernet, PPP, or PPPoE headers) that is allowed to be
          transmitted by or through this device.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="64" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Type" access="readOnly">
        <description>
          IP interface type. {{enum}} For {{enum|Loopback}}, {{enum|Tunnel}},
          and {{enum|Tunneled}} IP interface objects, the {{param|LowerLayers}}
          parameter MUST be {{empty}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Normal"/>
            <enumeration value="Loopback"/>
            <enumeration value="Tunnel"/>
            <enumeration value="Tunneled"/>
          </string>
          <default type="object" value="Normal"/>
        </syntax>
      </parameter>

      <parameter name="Loopback" access="readWrite">
        <description>
          When set to {{true}}, the IP interface becomes a loopback interface
          and the CPE MUST set {{param|Type}} to {{enum|Loopback|Type}}. In
          this case, the CPE MUST also set {{param|LowerLayers}} to {{empty}}
          and fail subsequent attempts at setting {{param|LowerLayers}} until
          the interface is no longer a loopback. Support for manipulating
          loopback interfaces is OPTIONAL.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

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

      <parameter name="IPv6AddressNumberOfEntries" access="readOnly"
          dmr:previousParameter="IPv4AddressNumberOfEntries">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AutoIPEnable" access="readWrite">
        <description>
          If {{true}}, enables auto-IP on the interface {{bibref|RFC3927}}.
          This mechanism is only used with IPv4. When auto-IP is enabled on an
          interface, an {{object|IPv4Address}} object will dynamically be
          created and configured with auto-IP parameter values. The exact
          conditions under which an auto-IP address is created (e.g. always
          when enabled or only in absence of dynamic IP addressing) is
          implementation specific.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="IPv6Enable" access="readWrite">
        <description>
          If set to {{true}}, attaches this interface to the IPv6 stack. If set
          to {{false}}, detaches this interface from the IPv6 stack. Once
          detached from the IPv6 stack, the interface will now no longer be
          able to pass IPv6 packets, and will be operationally down (unless
          also attached to an enabled IPv4 stack). For an IPv6 capable device,
          if {{param}} is not present this interface SHOULD be permanently
          attached to the IPv6 stack. Note that {{param}} is independent of
          {{param|Enable}}, and that to administratively enable an interface
          for IPv6 it is necessary for both {{param|Enable}} and {{param}} to
          be {{true}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="ULAEnable" access="readWrite">
        <description>
          Controls whether or not ULAs {{bibref|RFC4193}} are generated and
          used on this interface.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

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

    <object name="Device.IP.Interface.{i}.IPv4Address.{i}." access="readWrite"
        numEntriesParameter="IPv4AddressNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        IPv4 address table. Entries are auto-created and auto-deleted as IP
        addresses are added and deleted via DHCP, auto-IP, or IPCP. Static
        entries are created and configured by the ACS.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="IPAddress"/>
        <parameter ref="SubnetMask"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly"
          dmr:previousParameter="Enable">
        <description>
          The status of this {{object}} table entry. {{enum}} The
          {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid. 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="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny">
        <description>
          {{datatype|expand}} This parameter can only be modified if
          {{param|AddressingType}} is {{enum|Static|AddressingType}}.
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>

      <parameter name="IPAddress" access="readWrite">
        <description>
          IPv4 address. This parameter can only be modified if the
          {{param|AddressingType}} is {{enum|Static|AddressingType}}.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>

      <parameter name="SubnetMask" access="readWrite">
        <description>
          Subnet mask. This parameter can only be modified if the
          {{param|AddressingType}} is {{enum|Static|AddressingType}}.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="AddressingType" access="readOnly">
        <description>
          Addressing method used to assign the IP address. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="DHCP"/>
            <enumeration value="AutoIP"/>
            <enumeration value="IPCP"/>
            <enumeration value="Static"/>
          </string>
          <default type="object" value="Static"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IP.Interface.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Throughput statistics for this interface. The CPE MUST reset the
        interface's Stats parameters (unless otherwise stated in individual
        object or parameter descriptions) either when the interface becomes
        operationally down due to a previous administrative down (i.e. the
        interface's {{param|#.Status}} parameter transitions to a down state
        after the interface is disabled) or when the interface becomes
        administratively up (i.e. the interface's {{param|#.Enable}} parameter
        transitions from {{false}} to {{true}}). Administrative and operational
        interface status is discussed in {{bibref|TR-181i2|section 4.2.2}}.
      </description>

      <parameter name="BytesSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes transmitted out of the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BytesReceived" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of bytes received on the interface, including
          framing characters.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of packets transmitted out of the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="PacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received on the interface.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="ErrorsSent" access="readOnly" activeNotify="canDeny">
        <description>
          The total number of outbound packets that could not be transmitted
          because of errors.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="ErrorsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets that contained errors preventing
          them from being delivered to a higher-layer protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets requested for transmission which were not
          addressed to a multicast or broadcast address at this layer,
          including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnicastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were not addressed to a multicast or broadcast
          address at this layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of outbound packets which were chosen to be
          discarded even though no errors had been detected to prevent their
          being transmitted. One possible reason for discarding such a packet
          could be to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DiscardPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of inbound packets which were chosen to be discarded
          even though no errors had been detected to prevent their being
          delivered. One possible reason for discarding such a packet could be
          to free up buffer space.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a multicast address at this
          layer, including those that were discarded or not sent.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="MulticastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a multicast address at this
          layer.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsSent" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets that higher-level protocols requested for
          transmission and which were addressed to a broadcast address at this
          layer, including those that were discarded or not sent.

          Note that IPv6 does not define broadcast addresses, so IPv6 packets
          will never cause this counter to increment.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="BroadcastPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of received packets, delivered by this layer to a
          higher layer, which were addressed to a broadcast address at this
          layer.

          Note that IPv6 does not define broadcast addresses, so IPv6 packets
          will never cause this counter to increment.
        </description>
        <syntax>
          <unsignedLong/>
        </syntax>
      </parameter>

      <parameter name="UnknownProtoPacketsReceived" access="readOnly"
          activeNotify="canDeny">
        <description>
          The total number of packets received via the interface which were
          discarded because of an unknown or unsupported protocol.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IP.Interface.{i}.IPv6Address.{i}." access="readWrite"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="IPv6AddressNumberOfEntries"
        enableParameter="Enable">
      <description>
        This table contains the IP interface's IPv6 unicast addresses. There
        MUST be an entry for each such address, including anycast addresses.
        There are several ways in which entries can be added to and deleted
        from this table, including:

        * Automatically via SLAAC {{bibref|RFC4862}}, which covers generation
          of link-local addresses (for all types of device) and global
          addresses (for non-router devices).

        * Automatically via DHCPv6 {{bibref|RFC3315}}, which covers generation
          of any type of address (subject to the configured DHCP server
          policy).

        * Manually via a GUI or some other local management interface.

        * Manually via factory default configuration.

        * By the ACS. This table MUST NOT include entries for the Subnet-Router
          anycast address {{bibref|RFC4291|Section 2.6.1}}. Such entries would
          be identical to others but with a zero interface identifier, and
          would add no value. A loopback interface will always have address
          ''::1'' {{bibref|RFC4291|Section 2.5.3}} and MAY also have link-local
          address ''fe80::1''. This object is based on ''ipAddressTable'' from
          {{bibref|RFC4293}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="IPAddress"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this {{object}} table entry. {{enum}} The
          {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid. 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="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="IPAddressStatus" access="readOnly">
        <description>
          The status of {{param|IPAddress}}, indicating whether it can be used
          for communication. See also {{param|PreferredLifetime}} and
          {{param|ValidLifetime}}. {{enum}} This parameter is based on
          ''ipAddressStatus'' and ''ipAddressStatusTC'' from
          {{bibref|RFC4293}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Preferred">
              <description>
                Valid address that can appear as the destination or source
                address of a packet.
              </description>
            </enumeration>
            <enumeration value="Deprecated">
              <description>
                Valid but deprecated address that is not intended to be used as
                a source address.
              </description>
            </enumeration>
            <enumeration value="Invalid">
              <description>
                Invalid address that is not intended to appear as the
                destination or source address of a packet.
              </description>
            </enumeration>
            <enumeration value="Inaccessible">
              <description>
                Valid address that is not accessible because the interface to
                which it is assigned is not operational.
              </description>
            </enumeration>
            <enumeration value="Unknown">
              <description>
                Address status cannot be determined for some reason.
              </description>
            </enumeration>
            <enumeration value="Tentative">
              <description>
                The uniqueness of the address on the link is being verified.
              </description>
            </enumeration>
            <enumeration value="Duplicate">
              <description>
                Invalid address that has been determined to be non-unique on
                the link.
              </description>
            </enumeration>
            <enumeration value="Optimistic">
              <description>
                Valid address that is available for use, subject to
                restrictions, while its uniqueness on a link is being verified.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Invalid"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny">
        <description>
          {{datatype|expand}} This parameter can only be modified if
          {{param|Origin}} is {{enum|Static|Origin}}.
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>

      <parameter name="IPAddress" access="readWrite">
        <description>
          IPv6 address. This parameter can only be modified if the
          {{param|Origin}} is {{enum|Static|Origin}}. This parameter is based
          on ''ipAddressAddr'' from {{bibref|RFC4293}}.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Origin" access="readOnly">
        <description>
          Mechanism via which the IP address was assigned. {{enum}} This
          parameter is based on ''ipOrigin'' from {{bibref|RFC4293}}.
        </description>
        <syntax>
          <string>
            <enumeration value="AutoConfigured">
              <description>
                Automatically generated. For example, a link-local address as
                specified by SLAAC {{bibref|RFC4862|Section 5.3}}, a global
                address as specified by SLAAC {{bibref|RFC4862|Section 5.5}},
                or generated via CPE logic (e.g. from delegated prefix as
                specified by {{bibref|RFC3633}}), or from ULA /48 prefix as
                specified by {{bibref|RFC4193}}.
              </description>
            </enumeration>
            <enumeration value="DHCPv6">
              <description>Assigned by DHCPv6 {{bibref|RFC3315}}.</description>
            </enumeration>
            <enumeration value="WellKnown">
              <description>
                Specified by a standards organization, e.g. the ''::1''
                loopback address, which is defined in {{bibref|RFC4291}}.
              </description>
            </enumeration>
            <enumeration value="Static">
              <description>
                For example, present in the factory default configuration (but
                not {{enum|WellKnown}}), created by the ACS, or created by some
                other management entity (e.g. via a GUI).
              </description>
            </enumeration>
          </string>
          <default type="object" value="Static"/>
        </syntax>
      </parameter>

      <parameter name="Prefix" access="readWrite">
        <description>
          IPv6 address prefix. Some addresses, e.g. addresses assigned via the
          DHCPv6 IA_NA option, are not associated with a prefix, and some
          {{enum|WellKnown|#.IPv6Prefix.{i}.Origin}} prefixes might not be
          modeled. In both of these cases {{param}} will be {{null}}. This
          parameter can only be modified if the {{param|Origin}} is
          {{enum|Static|Origin}}. This parameter is based on
          ''ipAddressPrefix'' from {{bibref|RFC4293}}.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.IPv6Prefix."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="PreferredLifetime" access="readWrite">
        <description>
          The time at which this address will cease to be preferred (i.e. will
          become deprecated), or {{null}} if not known. For an infinite
          lifetime, the parameter value MUST be 9999-12-31T23:59:59Z. This
          parameter can only be modified if the {{param|Origin}} is
          {{enum|Static|Origin}}.
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value="9999-12-31T23:59:59Z"/>
        </syntax>
      </parameter>

      <parameter name="ValidLifetime" access="readWrite">
        <description>
          The time at which this address will cease to be valid (i.e. will
          become invalid), or {{null}} if unknown. For an infinite lifetime,
          the parameter value MUST be 9999-12-31T23:59:59Z. This parameter can
          only be modified if the {{param|Origin}} is {{enum|Static|Origin}}.
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value="9999-12-31T23:59:59Z"/>
        </syntax>
      </parameter>

      <parameter name="Anycast" access="readWrite">
        <description>
          Indicates whether this is an anycast address {{bibref|RFC4291|Section
          2.6}}. Anycast addresses are syntactically identical to unicast
          addresses and so need to be configured explicitly. This parameter can
          only be modified if the {{param|Origin}} is {{enum|Static|Origin}}.
          This parameter is based on ''ipAddressType'' from {{bibref|RFC4293}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IP.Interface.{i}.IPv6Prefix.{i}." access="readWrite"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="IPv6PrefixNumberOfEntries"
        enableParameter="Enable">
      <description>
        This table contains the interface's IPv6 prefixes. There MUST be an
        entry for each such prefix, not only for prefixes learned from router
        advertisements. There are several ways in which entries can be added to
        and deleted from this table, including:

        * Automatically via {{bibref|RFC4861}} Router Advertisements. See also
          {{object|.RouterAdvertisement}}.

        * Automatically via DHCPv6 {{bibref|RFC3315}} prefix delegation
          {{bibref|RFC3633}}. See also {{object|.DHCPv6.Client}}.

        * Automatically via internal CPE logic, e.g. creation of child prefixes
          derived from a parent prefix.

        * Manually via a GUI or some other local management interface.

        * Manually via factory default configuration.

        * By the ACS. The CPE MAY choose not to create {{object}} entries for
          {{enum|WellKnown|Origin}} prefixes or for the ULA /48 prefix
          {{bibref|RFC4193}}. If an {{object}} entry exists for the ULA /48
          prefix, it MUST be on a downstream interface (i.e. an interface for
          which the physical layer interface object has ''Upstream'' =
          {{false}}). This object is based on ''ipAddressPrefixTable'' from
          {{bibref|RFC4293}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="Prefix"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this {{object}} table entry. {{enum}} 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="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="PrefixStatus" access="readOnly">
        <description>
          The status of {{param|Prefix}}, indicating whether it can be used for
          communication. See also {{param|PreferredLifetime}} and
          {{param|ValidLifetime}}. {{enum}} This parameter is based on
          ''ipAddressStatus'' and ''ipAddressStatusTC'' from
          {{bibref|RFC4293}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Preferred">
              <description>Valid prefix.</description>
            </enumeration>
            <enumeration value="Deprecated">
              <description>Valid but deprecated prefix.</description>
            </enumeration>
            <enumeration value="Invalid">
              <description>Invalid prefix.</description>
            </enumeration>
            <enumeration value="Inaccessible">
              <description>
                Valid prefix that is not accessible because the interface to
                which it is assigned is not operational.
              </description>
            </enumeration>
            <enumeration value="Unknown">
              <description>
                Prefix status cannot be determined for some reason.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Invalid"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny">
        <description>
          {{datatype|expand}} This parameter can only be modified if
          {{param|Origin}} is {{enum|Static|Origin}}.
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>

      <parameter name="Prefix" access="readWrite">
        <description>
          IPv6 address prefix. This parameter can only be modified if the
          {{param|Origin}} is {{enum|Static|Origin}}. This parameter is based
          on ''ipAddressPrefixPrefix'' from {{bibref|RFC4293}}.
        </description>
        <syntax>
          <dataType ref="IPv6Prefix"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Origin" access="readOnly">
        <description>
          Mechanism via which the prefix was assigned or most recently updated.
          {{enum}} Note that:

          * {{enum|PrefixDelegation}} and {{enum|RouterAdvertisement}} prefixes
            can exist only on upstream interfaces (i.e. interfaces for which
            the physical layer interface object has ''Upstream'' = {{true}}),

          * {{enum|AutoConfigured}} and {{enum|WellKnown}} prefixes can exist
            on any interface, and

          * {{enum|Static}} and {{enum|Child}} prefixes can exist only on
            downstream interfaces (i.e. interfaces for which the physical layer
            interface object has ''Upstream'' = {{false}}). Also note that a
            {{enum|Child}} prefix's {{param|ParentPrefix}} will always be an
            {{enum|AutoConfigured}}, {{enum|PrefixDelegation}}, or
            {{enum|RouterAdvertisement}} prefix. This parameter is based on
            ''ipAddressOrigin'' from {{bibref|RFC4293}}.
        </description>
        <syntax>
          <string>
            <enumeration value="AutoConfigured">
              <description>
                Generated via internal CPE logic (e.g. the ULA /48 prefix) or
                derived from an internal prefix that is not modeled in any
                {{object}} table.
              </description>
            </enumeration>
            <enumeration value="PrefixDelegation">
              <description>
                Delegated via DHCPv6 {{bibref|RFC3633}} or some other protocol,
                e.g. IPv6rd {{bibref|RFC5969}}. Also see {{param|StaticType}}.
              </description>
            </enumeration>
            <enumeration value="RouterAdvertisement">
              <description>
                Discovered via router advertisement {{bibref|RFC4861}} Prefix
                Information Option.
              </description>
            </enumeration>
            <enumeration value="WellKnown">
              <description>
                Specified by a standards organization, e.g. ''fe80::/10'' for
                link-local addresses, or ''::1/128'' for the loopback address,
                both of which are defined in {{bibref|RFC4291}}.
              </description>
            </enumeration>
            <enumeration value="Static">
              <description>
                Created by the ACS, by some other management entity (e.g. via a
                GUI), or present in the factory default configuration (but not
                {{enum|WellKnown}}). Unrelated to any shorter length prefix
                that might exist on the CPE. Also see {{param|StaticType}}. Can
                be used for RA (Prefix Information), DHCPv6 address assignment
                (IA_NA) or DHCPv6 prefix delegation (IA_PD).
              </description>
            </enumeration>
            <enumeration value="Child">
              <description>
                Derived from an associated {{enum|AutoConfigured}} or
                {{enum|PrefixDelegation}} parent prefix. Also see
                {{param|StaticType}}, {{param|ParentPrefix}} and
                {{param|ChildPrefixBits}}. Can be used for RA (Prefix
                Information), DHCPv6 address assignment (IA_NA) or DHCPv6
                prefix delegation (IA_PD).
              </description>
            </enumeration>
          </string>
          <default type="object" value="Static"/>
        </syntax>
      </parameter>

      <parameter name="StaticType" access="readWrite">
        <description>
          Static prefix sub-type. For a {{enum|Static|Origin}} prefix, this can
          be set to {{enum|PrefixDelegation}} or {{enum|Child}}, thereby
          creating an unconfigured prefix of the specified type that will be
          populated in preference to creating a new instance. This allows the
          ACS to pre-create "prefix slots" with known path names that can be
          referenced from elsewhere in the data model before they have been
          populated. {{enum}} This mechanism works as follows:

          * When this parameter is set to {{enum|PrefixDelegation}} or
            {{enum|Child}}, the instance becomes a "prefix slot" of the
            specified type.

          * Such an instance can be administratively enabled ({{param|Enable}}
            = {{true}}) but will remain operationally disabled
            ({{param|Status}} = {{enum|Disabled|Status}}) until it has been
            populated.

          * When a new prefix of of type T is needed, the CPE will look for a
            matching unpopulated instance, i.e. an instance with
            ({{param|Origin}},{{param}},{{param|Prefix}}) =
            ({{enum|Static|Origin}},T,""). If the CPE finds at least one such
            instance it will choose one and populate it. If already
            administratively enabled it will immediately become operationally
            enabled. If the CPE finds no such instances, it will create and
            populate a new instance with ({{param|Origin}},{{param}}) = (T,T).
            If the CPE finds more than one such instance, the algorithm via
            which it chooses which instance to populate is
            implementation-specific.

          * When a prefix that was populated via this mechanism becomes
            invalid, the CPE will reset {{param|Prefix}} to {{empty}}. This
            does not affect the value of the {{param|Enable}} parameter. The
            prefix {{param}} can only be modified if {{param|Origin}} is
            {{enum|Static|Origin}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Static">
              <description>
                Prefix is a "normal" {{enum|Static|Origin}} prefix.
              </description>
            </enumeration>
            <enumeration value="Inapplicable" access="readOnly">
              <description>
                Prefix is not {{enum|Static|Origin}}, so this parameter does
                not apply.
              </description>
            </enumeration>
            <enumeration value="PrefixDelegation">
              <description>
                Prefix will be populated when a
                {{enum|PrefixDelegation|Origin}} prefix needs to be created.
              </description>
            </enumeration>
            <enumeration value="Child">
              <description>
                Prefix will be populated when a {{enum|Child|Origin}} prefix
                needs to be created. In this case, the ACS needs also to set
                {{param|ParentPrefix}} and might want to set
                {{param|ChildPrefixBits}} (if parent prefix is not set, or goes
                away, then the child prefix will become operationally
                disabled).
              </description>
            </enumeration>
          </string>
          <default type="object" value="Static"/>
        </syntax>
      </parameter>

      <parameter name="ParentPrefix" access="readWrite">
        <description>
          Indicates the parent prefix from which this prefix was derived. The
          parent prefix is relevant only for {{enum|Child|Origin}} prefixes and
          for {{enum|Static|Origin}} {{enum|Child|StaticType}} prefixes (both
          of which will always be on downstream interfaces), i.e. for
          {{param|Origin}}={{enum|Child|Origin}} and for
          ({{param|Origin}},{{param|StaticType}}) =
          ({{enum|Static|Origin}},{{enum|Child|StaticType}}) prefixes. This
          parameter can only be modified if {{param|Origin}} is
          {{enum|Static|Origin}} (which makes sense only for a prefix whose
          {{param|StaticType}} is already or will be changed to
          {{enum|Child|StaticType}}).
        </description>
        <syntax>
          <string>
            <pathRef refType="strong"
                targetParent=".IP.Interface.{i}.IPv6Prefix." targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ChildPrefixBits" access="readWrite">
        <description>
          A prefix that specifies the length of {{enum|Static|Origin}}
          {{enum|Child|StaticType}} prefixes and how they are derived from
          their {{param|ParentPrefix}}. It will be used if and only if it is
          not {{empty}} and is longer than the parent prefix (if it is not
          used, derivation of such prefixes is implementation-specific). Any
          bits to the right of the parent prefix are set to the bits in this
          prefix. For example, for a parent prefix of fedc::/56, if this
          parameter had the value 123:4567:89ab:cdef::/64, the child /64 would
          be fedc:0:0:ef::/64. For a parent prefix of fedc::/60, the child /64
          would be fedc:0:0:f::/64. This parameter can only be modified if
          {{param|Origin}} is {{enum|Static|Origin}}.
        </description>
        <syntax>
          <dataType ref="IPv6Prefix"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="OnLink" access="readWrite">
        <description>
          On-link flag {{bibref|RFC4861|Section 4.6.2}} as received (in the RA)
          for RouterAdvertisement. Indicates whether this prefix can be used
          for on-link determination. This parameter can only be modified if
          {{param|Origin}} is {{enum|Static|Origin}}. This parameter is based
          on ''ipAddressPrefixOnLinkFlag'' from {{bibref|RFC4293}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Autonomous" access="readWrite">
        <description>
          Autonomous address configuration flag {{bibref|RFC4861|Section
          4.6.2}} as received (in the RA) for RouterAdvertisement. Indicates
          whether this prefix can be used for generating global addresses as
          specified by SLAAC {{bibref|RFC4862}}. This parameter can only be
          modified if {{param|Origin}} is {{enum|Static|Origin}}. This
          parameter is based on ''ipAddressPrefixAutonomousFlag'' from
          {{bibref|RFC4293}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="PreferredLifetime" access="readWrite">
        <description>
          This parameter is based on ''ipAddressPrefixAdvPreferredLifetime''
          from {{bibref|RFC4293}}. The time at which this prefix will cease to
          be preferred (i.e. will become deprecated), or {{null}} if not known.
          For an infinite lifetime, the parameter value MUST be
          9999-12-31T23:59:59Z. This parameter can only be modified if
          {{param|Origin}} is {{enum|Static|Origin}}.
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value="9999-12-31T23:59:59Z"/>
        </syntax>
      </parameter>

      <parameter name="ValidLifetime" access="readWrite">
        <description>
          This parameter is based on ''ipAddressPrefixAdvValidLifetime'' from
          {{bibref|RFC4293}}. The time at which this prefix will cease to be
          valid (i.e. will become invalid), or {{null}} if not known. For an
          infinite lifetime, the parameter value MUST be 9999-12-31T23:59:59Z.
          This parameter can only be modified if {{param|Origin}} is
          {{enum|Static|Origin}}.
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value="9999-12-31T23:59:59Z"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IP.ActivePort.{i}." access="readOnly"
        numEntriesParameter="ActivePortNumberOfEntries" minEntries="0"
        maxEntries="unbounded">
      <description>
        This table lists the ports on which TCP connections are listening or
        established.
      </description>
      <uniqueKey>
        <parameter ref="LocalIPAddress"/>
        <parameter ref="LocalPort"/>
        <parameter ref="RemoteIPAddress"/>
        <parameter ref="RemotePort"/>
      </uniqueKey>

      <parameter name="LocalIPAddress" access="readOnly">
        <description>
          Connection local IP address.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="LocalPort" access="readOnly">
        <description>
          Connection local port.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RemoteIPAddress" access="readOnly">
        <description>
          The remote IP address of the source of inbound packets. This will be
          {{null}} for listening connections (only connections in
          {{enum|ESTABLISHED|Status}} state have remote addresses).
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="RemotePort" access="readOnly">
        <description>
          The remote port of the source of inbound packets. This will be
          {{null}} for listening connections (only connections in
          {{enum|ESTABLISHED|Status}} state have remote addresses).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Current operational status of the connection. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="LISTEN"/>
            <enumeration value="ESTABLISHED"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IP.Diagnostics." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        The IP Diagnostics object.
      </description>
    </object>

    <object name="Device.IP.Diagnostics.IPPing." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object provides access to an IP-layer ping test.
      </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" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error_CannotResolveHostName" access="readOnly"/>
            <enumeration value="Error_Internal" access="readOnly"/>
            <enumeration value="Error_Other" access="readOnly"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} The IP-layer interface over which the test is to be
          performed. This identifies the source IP address to use when
          performing the test. Example: Device.IP.Interface.1 If {{empty}} is
          specified, the CPE MUST use the interface as directed by its routing
          policy (''Forwarding'' table entries) to determine the appropriate
          interface.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Host" access="readWrite">
        <description>
          Host name or address of the host to ping.

          In the case where {{param}} is specified by name, and the name
          resolves to more than one address, it is up to the device
          implementation to choose which address to use.
        </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 {{units}} for the ping test.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="milliseconds"/>
          </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 {{units}}
          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>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MinimumResponseTime" access="readOnly"
          activeNotify="canDeny">
        <description>
          Result parameter indicating the minimum response time in {{units}}
          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>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaximumResponseTime" access="readOnly"
          activeNotify="canDeny">
        <description>
          Result parameter indicating the maximum response time in {{units}}
          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>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IP.Diagnostics.TraceRoute." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        This object defines access to an IP-layer trace-route test for the
        specified 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 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.
        </description>
        <syntax>
          <string>
            <enumeration value="None" access="readOnly"/>
            <enumeration value="Requested"/>
            <enumeration value="Complete" access="readOnly"/>
            <enumeration value="Error_CannotResolveHostName" access="readOnly"/>
            <enumeration value="Error_MaxHopCountExceeded" access="readOnly"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} The IP-layer interface over which the test is to be
          performed. This identifies the source IP address to use when
          performing the test. Example: Device.IP.Interface.1
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="weak" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Host" access="readWrite">
        <description>
          Host name or address of the host to find a route to.

          In the case where {{param}} is specified by name, and the name
          resolves to more than one address, it is up to the device
          implementation to choose which address to use.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="NumberOfTries" access="readWrite">
        <description>
          Number of tries per hop. Set prior to running Diagnostic. By default,
          the CPE SHOULD set this value to 3.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="3"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Timeout" access="readWrite">
        <description>
          Timeout in {{units}} for each hop of the trace route test. By default
          the CPE SHOULD set this value to 5000.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="DataBlockSize" access="readWrite">
        <description>
          Size of the data block in bytes to be sent for each trace route. By
          default, the CPE SHOULD set this value to 38.
        </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 0.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="63"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="MaxHopCount" access="readWrite">
        <description>
          The maximum number of hop used in outgoing probe packets (max TTL).
          By default the CPE SHOULD set this value to 30.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="64"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

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

    <object name="Device.IP.Diagnostics.TraceRoute.RouteHops.{i}."
        access="readOnly" numEntriesParameter="RouteHopsNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true">
      <description>
        Contains the array of hop results returned. If a route could not be
        determined, this array will be empty
      </description>

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

      <parameter name="HostAddress" access="readOnly" activeNotify="canDeny">
        <description>
          If this parameter is not {{empty}} it will contain the last IP
          address of the host returned for this hop and the {{param|Host}} will
          contain the Host Name returned from the reverse DNS query.
        </description>
        <syntax>
          <string/>
        </syntax>
      </parameter>

      <parameter name="ErrorCode" access="readOnly" activeNotify="canDeny">
        <description>
          Contains the error code returned for this hop. This code is directly
          from the ICMP CODE field.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RTTimes" access="readOnly" activeNotify="canDeny">
        <description>
          {{list}} Each list item contains one or more round trip times in
          {{units}} (one for each repetition) for this hop.
        </description>
        <syntax>
          <list>
            <size maxLength="16"/>
          </list>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IP.Diagnostics.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 {{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_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="DownloadTransports" access="readOnly"
          dmr:previousParameter="DownloadURL">
        <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="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.IP.Diagnostics.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="UploadTransports" access="readOnly"
          dmr:previousParameter="UploadURL">
        <description>
          Supported ''UploadDiagnostics'' transport protocols for a CPE device.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="HTTP"/>
            <enumeration value="FTP" optional="true"/>
          </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.IP.Diagnostics.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.CaptivePortal." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object contains parameters relating to the captive portal
        configuration on the CPE. The captive portal configuration defines the
        CPE's upstream HTTP (port 80) traffic redirect behavior. When the
        captive portal is disabled, upstream HTTP (port 80) traffic MUST be
        permitted to all destinations. When the captive portal is enabled,
        upstream HTTP (port 80) traffic MUST be permitted only to destinations
        listed in the {{param|AllowedList}}; traffic to all other destinations
        MUST be redirected to the {{param|URL}}.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the captive portal.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Indicates the status of the captive portal. {{enum}} 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="Enabled"/>
            <enumeration value="Error_URLEmpty">
              <description>{{param|URL}} is {{empty}}</description>
            </enumeration>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AllowedList" access="readWrite">
        <description>
          {{list}} List items represent IP addresses to which HTTP (port 80)
          traffic MUST always be permitted, regardless of whether the captive
          portal is enabled. Each entry in the list MUST be either an IP
          address, or an IP prefix specified using Classless Inter-Domain
          Routing (CIDR) notation {{bibref|RFC4632}}. An IP prefix is specified
          as an IP address followed (with no intervening white space) by "/n",
          where ''n'' (the prefix size) is an integer in the range 0-32 (for
          IPv4) or 0-128 (for IPv6) that indicates the number of (leftmost) '1'
          bits of the prefix. IPv4 example:

          * 1.2.3.4 specifies a single IPv4 address, and 1.2.3.4/24 specifies a
            class C subnet with subnet mask 255.255.255.0.

          * 1.2.0.0/22 represents the 1024 IPv4 addresses from 1.2.0.0 to
            1.2.3.255. IPv6 example:

          * fec0::220:edff:fe6a:f76 specifies a single IPv6 address.

          * 2001:edff:fe6a:f76::/64 represents the IPv6 addresses from
            2001:edff:fe6a:f76:0:0:0:0 to
            2001:edff:fe6a:f76:ffff:ffff:ffff:ffff.
        </description>
        <syntax>
          <list>
            <size maxLength="10000"/>
          </list>
          <string/>
        </syntax>
      </parameter>

      <parameter name="URL" access="readWrite">
        <description>
          Captive portal URL to which upstream HTTP (port 80) traffic to
          destinations not listed in the {{param|AllowedList}} will be
          redirected. The captive portal URL MUST be an HTTP (not HTTPS) URL.
          The CPE MUST permit the captive portal URL to be set to {{empty}},
          which has the effect of disabling the captive portal (if
          {{param|Enable}} is {{true}} and the captive portal URL is {{empty}},
          {{param|Status}} MUST be {{enum|Error_URLEmpty|Status}}).
        </description>
        <syntax>
          <string>
            <size maxLength="2000"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Routing." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        Routing object that contains the {{object|Router}} table and
        {{object|RIP}} protocol object.
      </description>

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

    <object name="Device.NeighborDiscovery." access="readOnly" minEntries="1"
        maxEntries="1" dmr:previousObject="Device.Routing.">
      <description>
        The Neighbor Discovery Protocol (NDP) object {{bibref|RFC4861}}. This
        object applies only to IPv6. It contains an {{object|InterfaceSetting}}
        table that defines the NDP configuration for individual IP interfaces.
      </description>

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

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

    <object name="Device.RouterAdvertisement." access="readOnly"
        minEntries="1" maxEntries="1"
        dmr:previousObject="Device.NeighborDiscovery.">
      <description>
        The Router Advertisement (RA) object {{bibref|RFC4861}}. This object
        applies only to IPv6. It contains an {{object|InterfaceSetting}} table
        that defines the RA configuration for individual IP interfaces.
        Information received via router advertisement messages is automatically
        propagated to the relevant {{object|.IP.Interface}} sub-objects, e.g.
        to the {{object|.IP.Interface.{i}.IPv6Address}} and
        {{object|.IP.Interface.{i}.IPv6Prefix}} tables.
      </description>

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

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

    <object name="Device.RouterAdvertisement.InterfaceSetting.{i}."
        access="readWrite" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="InterfaceSettingNumberOfEntries"
        enableParameter="Enable">
      <description>
        Per-interface Router Advertisement (RA) configuration
        {{bibref|RFC4861}}. Table entries are created for use in sending Router
        Advertisements. For enabled table entries, if {{param|Interface}} is
        not a valid reference to an IPv6-capable interface (that is attached to
        the IPv6 stack), then the table entry is inoperable and the CPE MUST
        set {{param|Status}} to {{enum|Error_Misconfigured|Status}}. Note: The
        {{object}} table includes a unique key parameter that is a strong
        reference. If a strongly referenced object is deleted, the CPE will set
        the referencing parameter to {{empty}}. However, doing so under these
        circumstances might cause the updated {{object}} row to then violate
        the table's unique key constraint; if this occurs, the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}} and disable the
        offending {{object}} row.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="Interface"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables this {{object}} entry. Defines the value of the
          ''IsRouter'' and ''AdvSendAdvertisements'' flags from
          {{bibref|RFC4861|Section 4.2}}
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}} The {{enum|Error_Misconfigured}}
          value indicates that a necessary configuration value is undefined or
          invalid. 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="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="Interface" access="readWrite">
        <description>
          This is the IP interface associated with this {{object}} entry.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ManualPrefixes" access="readWrite">
        <description>
          {{list}} {{reference}} Manually-configured prefixes that will be sent
          in Router Advertisement messages. Each referenced prefix MUST have a
          {{param|.IP.Interface.{i}.IPv6Prefix.{i}.StaticType}} of
          {{enum|Static|.IP.Interface.{i}.IPv6Prefix.{i}.StaticType}} or
          {{enum|Child|.IP.Interface.{i}.IPv6Prefix.{i}.StaticType}}. Router
          Advertisement messages MUST include Prefix Information Options
          {{bibref|RFC4861}} for all ''Valid''
          ({{param|.IP.Interface.{i}.IPv6Prefix.{i}.ValidLifetime}} is infinite
          or in the future) prefixes in this list. Prefixes MUST be associated
          with the interface instance referenced by {{param|Interface}}.
        </description>
        <syntax>
          <list maxItems="8"/>
          <string>
            <pathRef refType="strong"
                targetParent=".IP.Interface.{i}.IPv6Prefix." targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Prefixes" access="readOnly">
        <description>
          {{list}} {{reference}} All prefixes that will be included in Router
          Advertisement (RA) messages sent out this interface. This list can
          include:

          * Prefixes from {{param|ManualPrefixes}} that are included in RA
            messages.

          * Prefixes with {{param|.IP.Interface.{i}.IPv6Prefix.{i}.Origin}} =
            {{enum|Child|.IP.Interface.{i}.IPv6Prefix.{i}.Origin}} or
            {{enum|AutoConfigured|.IP.Interface.{i}.IPv6Prefix.{i}.Origin}}
            associated with the interface instance referenced by
            {{param|Interface}}.
        </description>
        <syntax>
          <list maxItems="8"/>
          <string>
            <pathRef refType="strong"
                targetParent=".IP.Interface.{i}.IPv6Prefix." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxRtrAdvInterval" access="readWrite">
        <description>
          The maximum time allowed between sending unsolicited multicast Router
          Advertisements from the interface, in {{units}} (see
          {{bibref|RFC4861|Section 4.2}}).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="4" maxInclusive="1800"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="600"/>
        </syntax>
      </parameter>

      <parameter name="MinRtrAdvInterval" access="readWrite">
        <description>
          The minimum time allowed between sending unsolicited multicast Router
          Advertisements from the interface, in {{units}} (see
          {{bibref|RFC4861|Section 4.2}}). The value MUST be no greater than
          3/4 * {{param|MaxRtrAdvInterval}}. Note: The ''1350'' maximum was
          derived from the RFC, based on 3/4 times the maximum value of
          {{param|MaxRtrAdvInterval}}. Similarly, the ''200'' default was
          derived from the RFC, based on 1/3 times the default value of
          {{param|MaxRtrAdvInterval}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="3" maxInclusive="1350"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="200"/>
        </syntax>
      </parameter>

      <parameter name="AdvDefaultLifetime" access="readWrite">
        <description>
          The value placed in the "Router Lifetime" field of Router
          Advertisement messages on this interface, in {{units}} (see
          {{bibref|RFC4861|Section 4.2}}). The value can be zero or between
          {{param|MaxRtrAdvInterval}} and 9000 {{units}}, but these limits can
          be overridden by specific documents that describe how IPv6 operates
          over different link layers. A value of zero indicates that the router
          is not to be used as a default router. Note: The ''1800'' default was
          derived from the RFC, based on 3 times the default value of
          {{param|MaxRtrAdvInterval}}.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="65535"/>
            <units value="seconds"/>
          </unsignedInt>
          <default type="object" value="1800"/>
        </syntax>
      </parameter>

      <parameter name="AdvManagedFlag" access="readWrite">
        <description>
          The value placed in the "Managed address configuration" (M) flag
          field of Router Advertisement messages on this interafce (see
          {{bibref|RFC4861|Section 4.2}}, and {{bibref|RFC4862}}).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="AdvOtherConfigFlag" access="readWrite">
        <description>
          The value placed in the "Other configuration" (O) flag field of
          Router Advertisement messages on this interface (see
          {{bibref|RFC4861|Section 4.2}}, and {{bibref|RFC4862}}).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="AdvMobileAgentFlag" access="readWrite">
        <description>
          The value placed in the "Home agent" (H) flag field of Router
          Advertisement messages on this interface (see
          {{bibref|RFC3775|Section 7.1}}).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="AdvPreferredRouterFlag" access="readWrite">
        <description>
          The value placed in the "Default Router Preference" (Prf) field of
          Router Advertisement messages on this interface, as defined in
          {{bibref|RFC4191|Section 2.2}}. {{enum}} Also see
          {{bibref|RFC4191|Section 2.1}} which discusses how this flag is
          encoded on the wire.
        </description>
        <syntax>
          <string>
            <enumeration value="High"/>
            <enumeration value="Medium"/>
            <enumeration value="Low"/>
          </string>
          <default type="object" value="Medium"/>
        </syntax>
      </parameter>

      <parameter name="AdvNDProxyFlag" access="readWrite">
        <description>
          The value placed in the "Proxy" (P) flag field of Router
          Advertisement messages on this interface (see
          {{bibref|RFC4389|Section 4.1.3.3}}).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="AdvLinkMTU" access="readWrite">
        <description>
          The value placed in MTU options of Router Advertisement messages on
          this interface. A value of zero indicates that no MTU options are
          included (see {{bibref|RFC4861|Section 4.6.4}}).
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="AdvReachableTime" access="readWrite">
        <description>
          The value placed in the "Reachable Time" field of Router
          Advertisement messages on this interface, in {{units}} (see
          {{bibref|RFC4861|Section 4.2}}). The value zero means unspecified (by
          the router).
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="3600000"/>
            <units value="milliseconds"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="AdvRetransTimer" access="readWrite">
        <description>
          The value placed in the "Retrans Timer" field of Router Advertisement
          messages on this interface (see {{bibref|RFC4861|Section 4.2}}). The
          value zero means unspecified (by the router).
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="AdvCurHopLimit" access="readWrite">
        <description>
          The value placed in the "Cur Hop Limit" field of Router Advertisement
          messages on this interface (see {{bibref|RFC4861|Section 4.2}}). The
          value zero means unspecified (by the router). Note: The default can
          be overridden with the value specified in {{bibref|RFC3232}} that was
          in effect at the time of implementation.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="255"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

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

    <object name="Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}."
        access="readWrite" numEntriesParameter="OptionNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        This object specifies the options in a Router Advertisement (RA)
        message {{bibref|RFC4861|Section 4.6}}. {{object}} entries are created
        for use in sending Router Advertisements (enabled options MUST be
        included in RA messages sent). This includes support for sending DNS
        information in the RA message as described in {{bibref|RFC6106}}. This
        table is intended only for options that are not modeled elsewhere. For
        example, it is not appropriate for the MTU option (which is modeled via
        {{param|#.AdvLinkMTU}}).
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="Tag"/>
      </uniqueKey>

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

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

      <parameter name="Tag" access="readWrite">
        <description>
          Option tag (type) {{bibref|RFC4861|Section 4.6}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readWrite">
        <description>
          A hexbinary encoded option value {{bibref|RFC4861|Section 4.6}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="65535"/>
          </hexBinary>
        </syntax>
      </parameter>
    </object>

    <object name="Device.NeighborDiscovery.InterfaceSetting.{i}."
        access="readWrite" minEntries="0" maxEntries="unbounded"
        numEntriesParameter="InterfaceSettingNumberOfEntries"
        enableParameter="Enable">
      <description>
        Per-interface Neighbor Discovery Protocol (NDP) configuration
        {{bibref|RFC4861}}. For enabled table entries, if {{param|Interface}}
        is not a valid reference to an IPv6-capable interface (that is attached
        to the IPv6 stack), then the table entry is inoperable and the CPE MUST
        set {{param|Status}} to {{enum|Error_Misconfigured|Status}}. Note: The
        {{object}} table includes a unique key parameter that is a strong
        reference. If a strongly referenced object is deleted, the CPE will set
        the referencing parameter to {{empty}}. However, doing so under these
        circumstances might cause the updated {{object}} row to then violate
        the table's unique key constraint; if this occurs, the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}} and disable the
        offending {{object}} row.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="Interface"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}} The {{enum|Error_Misconfigured}}
          value indicates that a necessary configuration value is undefined or
          invalid. 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="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="Interface" access="readWrite">
        <description>
          This is the IP interface associated with this {{object}} entry.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="RetransTimer" access="readWrite">
        <description>
          Retransmission interval in {{units}}, as defined in
          {{bibref|RFC4861}}. For auto-configuration purposes, {{param}}
          specifies the delay between consecutive Neighbor Solicitation
          transmissions performed during Duplicate Address Detection (DAD)
          {{bibref|RFC4862|Section 5.4}}, as well as the time a node waits
          after sending the last Neighbor Solicitation before ending the DAD
          process.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
          <default type="object" value="1000"/>
        </syntax>
      </parameter>

      <parameter name="RtrSolicitationInterval" access="readWrite">
        <description>
          Retransmission interval in {{units}}, as defined in
          {{bibref|RFC4861}}. For auto-configuration purposes, {{param}}
          specifies the delay between consecutive Router Solicitation
          transmissions.
        </description>
        <syntax>
          <unsignedInt>
            <units value="milliseconds"/>
          </unsignedInt>
          <default type="object" value="4"/>
        </syntax>
      </parameter>

      <parameter name="MaxRtrSolicitations" access="readWrite">
        <description>
          Maximum Number of Router Solicitation Transmission messages, as
          defined in {{bibref|RFC4861}}. For auto-configuration purposes
          {{param}} specifies the Maximum Number of Router Solicitation
          Transmission messages to help the host to conclude that there are no
          routers on the link.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="3"/>
        </syntax>
      </parameter>

      <parameter name="NUDEnable" access="readWrite">
        <description>
          Enables or disables Neighbor Unreachability Detection (NUD)
          {{bibref|RFC4861|Section 7}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="RSEnable" access="readWrite">
        <description>
          Enables or disables Router Solicitation (RS) on {{param|Interface}}
          {{bibref|RFC4861|Section 4.1}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Routing.Router.{i}." access="readWrite"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="RouterNumberOfEntries" enableParameter="Enable">
      <description>
        This object allows the handling of the routing and forwarding
        configuration of the device.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this ''Router'' entry. {{enum}} 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="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

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

      <parameter name="IPv6ForwardingNumberOfEntries" access="readOnly"
          dmr:previousParameter="IPv4ForwardingNumberOfEntries">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Routing.Router.{i}.IPv4Forwarding.{i}."
        access="readWrite" numEntriesParameter="IPv4ForwardingNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        Layer 3 IPv4 forwarding table. In addition to statically configured
        routes, this table MUST include dynamic routes learned through layer 3
        routing protocols, including RIP (i.e. RIP version 2), OSPF, DHCPv4,
        and IPCP. The CPE MAY reject attempts to delete or modify a dynamic
        route entry. For each incoming packet, the layer 3 forwarding decision
        is conceptually made as follows:

        * Only enabled table entries with a matching {{param|ForwardingPolicy}}
          are considered, i.e. those that either do not specify a
          {{param|ForwardingPolicy}}, or else specify a
          {{param|ForwardingPolicy}} that matches that of the incoming packet.

        * Next, table entries that also have a matching destination
          address/mask are considered, and the matching entry with the longest
          prefix is applied to the packet (i.e. the entry with the most
          specific network). An unspecified destination address is a wild-card
          and always matches, but with a prefix length of zero. For enabled
          table entries, if {{param|Interface}} is not a valid reference to an
          IPv4-capable interface (that is attached to the IPv4 stack), then the
          table entry is inoperable and the CPE MUST set {{param|Status}} to
          {{enum|Error_Misconfigured|Status}}. Note: The {{object}} table
          includes a unique key parameter that is a strong reference. If a
          strongly referenced object is deleted, the CPE will set the
          referencing parameter to {{empty}}. However, doing so under these
          circumstances might cause the updated {{object}} row to then violate
          the table's unique key constraint; if this occurs, the CPE MUST
          disable the offending {{object}} row.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="DestIPAddress"/>
        <parameter ref="DestSubnetMask"/>
        <parameter ref="ForwardingPolicy"/>
        <parameter ref="GatewayIPAddress"/>
        <parameter ref="Interface"/>
        <parameter ref="ForwardingMetric"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the forwarding entry. On creation, an entry is
          disabled by default.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          Indicates the status of the forwarding entry. {{enum}} The
          {{enum|Error}} value MAY be used by the CPE to indicate a locally
          defined error condition.

          The {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="StaticRoute" access="readOnly">
        <description>
          If {{true}}, this route is a Static route.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="DestIPAddress" access="readWrite">
        <description>
          Destination IPv4 address. {{empty}} indicates no destination address
          is specified. A Forwarding table entry for which {{param}} and
          {{param|DestSubnetMask}} are both {{empty}} is a default route.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestSubnetMask" access="readWrite">
        <description>
          Destination subnet mask. {{empty}} indicates no destination subnet
          mask is specified. If a destination subnet mask is specified, the
          {{param}} is ANDed with the destination address before comparing with
          the {{param|DestIPAddress}}. Otherwise, the full destination address
          is used as is. A Forwarding table entry for which
          {{param|DestIPAddress}} and {{param}} are both {{empty}} is a default
          route.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ForwardingPolicy" access="readWrite">
        <description>
          Identifier of a set of classes or flows that have the corresponding
          {{param}} value as defined in the {{object|Device.QoS}} object. A
          value of -1 indicates no {{param}} is specified. If specified, this
          forwarding entry is to apply only to traffic associated with the
          specified classes and flows.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="GatewayIPAddress" access="readWrite">
        <description>
          IPv4 address of the gateway. Only one of {{param}} and Interface
          SHOULD be configured for a route. If both are configured, {{param}}
          and {{param|Interface}} MUST be consistent with each other.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} Specifies the egress layer 3 interface associated with
          this entry. Example: Device.IP.Interface.1. Only one of
          {{param|GatewayIPAddress}} and {{param}} SHOULD be configured for a
          route. If both are configured, {{param|GatewayIPAddress}} and
          {{param}} MUST be consistent with each other. For a route that was
          configured by setting {{param|GatewayIPAddress}} but not {{param}},
          read access to {{param}} MUST return the full hierarchical parameter
          name for the routes egress interface.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"
                targetParent=".IP.Interface."/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Origin" access="readOnly"
          dmr:previousParameter="Interface">
        <description>
          Protocol via which the IPv4 forwarding rule was learned. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="DHCPv4"/>
            <enumeration value="OSPF"/>
            <enumeration value="IPCP"/>
            <enumeration value="RIP"/>
            <enumeration value="Static">
              <description>
                For example, present in the factory default configuration,
                created by the ACS, or created by some other management entity
                (e.g. via a GUI).
              </description>
            </enumeration>
          </string>
          <default type="object" value="Static"/>
        </syntax>
      </parameter>

      <parameter name="ForwardingMetric" access="readWrite">
        <description>
          Forwarding metric. A value of -1 indicates this metric is not used.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Routing.Router.{i}.IPv6Forwarding.{i}."
        access="readWrite" numEntriesParameter="IPv6ForwardingNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded"
        dmr:previousObject="Device.Routing.Router.{i}.IPv4Forwarding.{i}.">
      <description>
        Layer 3 IPv6 forwarding table. In addition to statically configured
        routes, this table MUST include dynamic routes learned through layer 3
        routing protocols, including RIPng, OSPF, DHCPv6, and RA. The CPE MAY
        reject attempts to delete or modify a dynamic route entry. For each
        incoming packet, the layer 3 forwarding decision is conceptually made
        as follows:

        * Only enabled table entries with a matching {{param|ForwardingPolicy}}
          are considered, i.e. those that either do not specify a
          {{param|ForwardingPolicy}}, or else specify a
          {{param|ForwardingPolicy}} that matches that of the incoming packet.

        * Next, table entries that also have a matching destination prefix are
          considered, and the matching entry with the longest prefix length is
          applied to the packet (i.e. the entry with the most specific
          network). An unspecified destination address is a wild-card and
          always matches, but with a prefix length of zero. For enabled table
          entries, if {{param|Interface}} is not a valid reference to an
          IPv6-capable interface (that is attached to the IPv6 stack), then the
          table entry is inoperable and the CPE MUST set {{param|Status}} to
          {{enum|Error_Misconfigured|Status}}. This object is based on
          ''inetCidrRouteTable'' from {{bibref|RFC4292}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="DestIPPrefix"/>
        <parameter ref="ForwardingPolicy"/>
        <parameter ref="NextHop"/>
        <parameter ref="Interface"/>
        <parameter ref="ForwardingMetric"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          Indicates the status of the forwarding entry. {{enum}} The
          {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid. 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="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="DestIPPrefix" access="readWrite">
        <description>
          Destination IPv6 prefix. {{empty}} indicates that it matches all
          destination prefixes (i.e. equivalent to "::/0"). All bits to the
          right of the prefix MUST be zero, e.g. 2001:edff:fe6a:f76::/64.
          Routes with a 128-bit prefix length (/128) are host routes for a
          specific IPv6 destination, e.g.
          2001:db8:28:2:713e:a426:d167:37ab/128.
        </description>
        <syntax>
          <dataType ref="IPv6Prefix"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ForwardingPolicy" access="readWrite">
        <description>
          Identifier of a set of classes or flows that have the corresponding
          {{param}} value as defined in the {{object|.QoS}} object. A value of
          -1 indicates no {{param}} is specified. If specified, this forwarding
          entry is to apply only to traffic associated with the specified
          classes and flows.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="NextHop" access="readWrite">
        <description>
          IPv6 address of the next hop. Only one of {{param}} and
          {{param|Interface}} SHOULD be configured for a route. {{empty}}
          indicates no {{param}} is specified. If both are configured,
          {{param}} and {{param|Interface}} MUST be consistent with each other.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} Specifies the egress layer 3 interface associated with
          this entry. Example: ''Device.IP.Interface.1''. Only one of
          {{param|NextHop}} and {{param}} SHOULD be configured for a route.
          {{empty}} indicates no {{param}} is specified. If both are
          configured, {{param|NextHop}} and {{param}} MUST be consistent with
          each other. For a route that was configured by setting
          {{param|NextHop}} but not {{param}}, read access to {{param}} MUST
          return the full hierarchical parameter name for the route's egress
          interface.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Origin" access="readOnly">
        <description>
          Protocol via which the IPv6 forwarding rule was learned. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="DHCPv6"/>
            <enumeration value="OSPF"/>
            <enumeration value="RA">
              <description>
                Router Advertisement Route Information Option
                {{bibref|RFC4191}}.
              </description>
            </enumeration>
            <enumeration value="RIPng">
              <description>RIPng for IPv6 {{bibref|RFC2080}}</description>
            </enumeration>
            <enumeration value="Static">
              <description>
                For example, present in the factory default configuration,
                created by the ACS, or created by some other management entity
                (e.g. via a GUI).
              </description>
            </enumeration>
          </string>
          <default type="object" value="Static"/>
        </syntax>
      </parameter>

      <parameter name="ForwardingMetric" access="readWrite">
        <description>
          Forwarding metric. A value of -1 indicates this metric is not used.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="ExpirationTime" access="readOnly">
        <description>
          The time at which the route will expire, or {{null}} if not known.
          For an infinite lifetime, the parameter value MUST be
          9999-12-31T23:59:59Z. {{param}} is provided by an underlying dynamic
          routing protocol, e.g. by an {{bibref|RFC4191}} route information
          option.
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value="9999-12-31T23:59:59Z"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Routing.RIP." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        Routing Information Protocol (RIP) object.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables RIP on the device.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SupportedModes" access="readOnly">
        <description>
          The supported RIP protocol modes. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Send"/>
            <enumeration value="Receive"/>
            <enumeration value="Both"/>
          </string>
        </syntax>
      </parameter>

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

    <object name="Device.Routing.RIP.InterfaceSetting.{i}." access="readWrite"
        numEntriesParameter="InterfaceSettingNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        IP Interface RIP configuration table. For enabled table entries, if
        {{param|Interface}} is not a valid reference then the table entry is
        inoperable and the CPE MUST set {{param|Status}} to
        {{enum|Error_Misconfigured|Status}}. Note: The {{object}} table
        includes a unique key parameter that is a strong reference. If a
        strongly referenced object is deleted, the CPE will set the referencing
        parameter to {{empty}}. However, doing so under these circumstances
        might cause the updated {{object}} row to then violate the table's
        unique key constraint; if this occurs, the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}} and disable the
        offending {{object}} row.

        Note: This object only applies to RIP2; i.e. version 2 of the RIP
        protocol is used to accept or send over the specified
        {{param|Interface}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="Interface"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}} The {{enum|Error_Misconfigured}}
          value indicates that a necessary configuration value is undefined or
          invalid. 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="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} This is the IP interface associated with this
          {{object}} entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Version" access="readWrite" status="deleted">
        <description>
          Defines the RIP protocol version used to accept or send over
          {{param|Interface}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="2"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="AcceptRA" access="readWrite">
        <description>
          When set to {{true}}, RIP route advertisements received over
          {{param|Interface}} are accepted. When set to {{false}}, RIP route
          advertisements received over {{param|Interface}} are rejected.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SendRA" access="readWrite">
        <description>
          When set to {{true}}, RIP route advertisements are to be sent over
          {{param|Interface}}. When set to {{false}}, no RIP route
          advertisements will be sent over {{param|Interface}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Routing.RouteInformation." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        Received Router Advertisement (RA) route information
        {{bibref|RFC4191}}.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables receiving route information from the RA.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

    <object name="Device.Routing.RouteInformation.InterfaceSetting.{i}."
        access="readOnly" numEntriesParameter="InterfaceSettingNumberOfEntries"
        minEntries="0" maxEntries="unbounded">
      <description>
        IP Interface RA route information table. Contains received RA route
        information {{bibref|RFC4191}}. As such, the data in this table cannot
        be modified.
      </description>
      <uniqueKey>
        <parameter ref="Interface"/>
      </uniqueKey>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}} The {{enum|Error}} value MAY be
          used by the CPE to indicate a locally defined error condition.
        </description>
        <syntax>
          <string>
            <enumeration value="ForwardingEntryCreated"/>
            <enumeration value="NoForwardingEntry"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readOnly">
        <description>
          {{reference}} This is the IP interface associated with this
          {{object}} entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="SourceRouter" access="readOnly">
        <description>
          IPv6 Address of the router that sent the RA that included this route
          info.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>

      <parameter name="PreferredRouteFlag" access="readOnly">
        <description>
          Flag included in a specific Route Information Option within an RA
          message (Prf flag), as defined in {{bibref|RFC4191|Section 2.3}}.
          {{enum}} Note that this is not the Prf flag included in the base RA
          message. Also see {{bibref|RFC4191|Section 2.1}} which discusses how
          this flag is encoded on the wire.
        </description>
        <syntax>
          <string>
            <enumeration value="High"/>
            <enumeration value="Medium"/>
            <enumeration value="Low"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Prefix" access="readOnly">
        <description>
          IPv6 address prefix, as received in an instance of the Route
          Information Option of a RA message.
        </description>
        <syntax>
          <dataType ref="IPv6Prefix"/>
        </syntax>
      </parameter>

      <parameter name="RouteLifetime" access="readOnly">
        <description>
          The time at which {{param|Prefix}} will cease to be usable for use as
          a forwarding entry, or {{null}} if not known. For an infinite
          lifetime, the parameter value MUST be 9999-12-31T23:59:59Z. {{param}}
          is received in an instance of the Route Information Option of a RA
          message.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

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

      <parameter name="MaxClassificationEntries" access="readOnly"
          activeNotify="canDeny">
        <description>
          The maximum number of entries available in the Classification table.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

      <parameter name="MaxAppEntries" access="readOnly" activeNotify="canDeny">
        <description>
          The maximum number of entries available in the {{object|App}} table.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

      <parameter name="MaxFlowEntries" access="readOnly"
          activeNotify="canDeny">
        <description>
          The maximum number of entries available in the {{object|Flow}} table.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

      <parameter name="MaxPolicerEntries" access="readOnly"
          activeNotify="canDeny">
        <description>
          The maximum number of entries available in the {{object|Policer}}
          table.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

      <parameter name="MaxQueueEntries" access="readOnly"
          activeNotify="canDeny">
        <description>
          The maximum number of entries available in the {{object|Queue}}
          table.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

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

      <parameter name="MaxShaperEntries" access="readOnly"
          activeNotify="canDeny">
        <description>
          The maximum number of entries available in the {{object|Shaper}}
          table.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

      <parameter name="DefaultForwardingPolicy" access="readWrite">
        <description>
          Identifier of the forwarding policy associated with traffic not
          associated with any specified classifier.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DefaultTrafficClass" access="readWrite">
        <description>
          Identifier of the traffic class associated with traffic not
          associated with any specified classifier.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DefaultPolicer" access="readWrite">
        <description>
          {{reference}} Indicates the ''Policer'' table entry for traffic not
          associated with any specified classifier. {{empty}} indicates a null
          policer.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="Policer." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DefaultQueue" access="readWrite">
        <description>
          {{reference}} Indicates the ''Queue'' table entry for traffic not
          associated with any specified classifier. Note: The interpretation of
          {{empty}} value is implementation specific.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="Queue." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="DefaultDSCPMark" access="readWrite">
        <description>
          DSCP to mark traffic not associated with any specified classifier. A
          value of -1 indicates no change from the incoming packet. A value of
          -2 indicates automatic marking of DSCP based upon the
          EthernetPriority value of the incoming packet as defined in
          {{bibref|TR-181i2|Annex A}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="-2"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="DefaultEthernetPriorityMark" access="readWrite">
        <description>
          Ethernet priority code (as defined in 802.1D) to mark traffic not
          associated with any specified classifier. A value of -1 indicates no
          change from the incoming packet. A value of -2 indicates automatic
          marking of EthernetPriority based upon the DSCP value of the incoming
          packet as defined in {{bibref|TR-181i2|Annex A}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="-2"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="AvailableAppList" access="readOnly">
        <description>
          {{list}} List items represent URNs, each indicating a protocol
          supported for use as a ProtocolIdentifier in the App table. This list
          MAY include any of the URNs defined in {{bibref|TR-181i2|Annex A}} as
          well as other URNs defined elsewhere.
        </description>
        <syntax>
          <list>
            <size maxLength="1024"/>
          </list>
          <string/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.QoS.Classification.{i}." access="readWrite"
        numEntriesParameter="ClassificationNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        Classification table. For enabled table entries, if {{param|Interface}}
        is not a valid reference and {{param|AllInterfaces}} is {{false}}, then
        the table entry is inoperable and the CPE MUST set {{param|Status}} to
        {{enum|Error_Misconfigured|Status}}.

        Several of this object's parameters specify DHCP option values. Some
        cases are version neutral (the parameter can apply to both DHCPv4 and
        DHCPv6), but in other cases the representation of the option is
        different for DHCPv4 and DHCPv6, so it is necessary to define separate
        DHCPv4-specific and DHCPv6-specific parameters. Therefore, an instance
        of this object that uses DHCP option values as classification criteria
        will be associated with either DHCPv4 or DHCPv6, as indicated by the
        {{param|DHCPType}} parameter.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this classifier. {{enum}} The
          {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid. 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="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="Order" access="readWrite">
        <description>
          Position of the {{object}} entry in the order of precedence. A value
          of ''1'' indicates the first entry considered (highest precedence).
          For each packet, the highest ordered entry that matches the
          classification criteria is applied. All lower order entries are
          ignored. When this value is modified, if the value matches that of an
          existing entry, the {{param}} value for the existing entry and all
          lower {{param}} entries is incremented (lowered in precedence) to
          ensure uniqueness of this value. A deletion causes {{param}} values
          to be compacted. When a value is changed, incrementing occurs before
          compaction. The value of {{param}} on creation of a {{object}} table
          entry MUST be one greater than the largest current value (initially
          assigned the lowest precedence).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

      <parameter name="DHCPType" access="readWrite"
          dmr:previousParameter="Alias">
        <description>
          The DHCP protocol associated with the {{object}} instance. Affects
          only parameters that specify DHCP option values as classification
          criteria (all such parameter descriptions note this fact). {{enum}}
          If {{param}} is {{enum|DHCPv4}}, then {{object}} parameters that are
          DHCPv6-specific are ignored. If {{param}} is {{enum|DHCPv6}}, then
          {{object}} parameters that are DHCPv4-specific are ignored.
        </description>
        <syntax>
          <string>
            <enumeration value="DHCPv4"/>
            <enumeration value="DHCPv6"/>
          </string>
          <default type="object" value="DHCPv4"/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          Classification criterion. {{reference}} This specifies the ingress
          interface associated with the entry. It MAY be a layer 1, 2 or 3
          interface, however, the types of interfaces for which
          ''Classifications'' can be instantiated is a local matter to the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="AllInterfaces" access="readWrite">
        <description>
          Classification criterion. This specifies that all ingress interfaces
          are associated with the entry. If {{true}}, the value of
          {{param|Interface}} is ignored since all ingress interfaces are
          indicated.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestIP" access="readWrite">
        <description>
          Classification criterion. Destination IP address. {{empty}} indicates
          this criterion is not used for classification.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestMask" access="readWrite">
        <description>
          Destination IP address mask, but represented as an IP routing prefix
          using CIDR notation {{bibref|RFC4632}} (e.g. 192.168.0.0/16 in IPv4,
          and 2001:db8:3210:11aa::/64 in IPv6). If not {{empty}}, only the
          indicated portion of the DestIP address is to be used for
          classification. {{empty}} indicates that the full DestIP address is
          to be used for classification.
        </description>
        <syntax>
          <dataType ref="IPPrefix"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestIPExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          (masked) DestIP entry, if specified. If {{true}}, the class includes
          all packets except those that match the (masked) DestIP entry, if
          specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourceIP" access="readWrite">
        <description>
          Classification criterion. Source IP address. {{empty}} indicates this
          criterion is not used for classification.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceMask" access="readWrite">
        <description>
          Source IP address mask, but represented as an IP routing prefix using
          CIDR notation {{bibref|RFC4632}} (e.g. 192.168.0.0/16 in IPv4, and
          2001:db8:3210:11aa::/64 in IPv6). If not {{empty}}, only the
          indicated portion of the {{param|SourceIP}} address is to be used for
          classification. {{empty}} indicates that the full SourceIP address is
          to be used for classification.
        </description>
        <syntax>
          <dataType ref="IPPrefix"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceIPExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          (masked) {{param|SourceIP}} entry, if specified. If {{true}}, the
          class includes all packets except those that match the (masked)
          {{param|SourceIP}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          Classification criterion. Protocol number. A value of -1 indicates
          this criterion is not used for classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="255"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="ProtocolExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|Protocol}} entry, if specified. If {{true}}, the class
          includes all packets except those that match the {{param|Protocol}}
          entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestPort" access="readWrite">
        <description>
          Classification criterion. Destination port number. A value of -1
          indicates this criterion is not used for classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DestPortRangeMax" access="readWrite">
        <description>
          Classification criterion. If specified, indicates the classification
          criterion is to include the port range from {{param|DestPort}}
          through {{param}} (inclusive). If specified, {{param}} MUST be
          greater than or equal to {{param|DestPort}}. A value of -1 indicates
          that no port range is specified.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DestPortExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|DestPort}} entry (or port range), if specified. If {{true}},
          the class includes all packets except those that match the
          {{param|DestPort}} entry (or port range), if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourcePort" access="readWrite">
        <description>
          Classification criterion. Source port number. A value of -1 indicates
          this criterion is not used for classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="SourcePortRangeMax" access="readWrite">
        <description>
          Classification criterion. If specified, indicates the classification
          criterion is to include the port range from {{param|SourcePort}}
          through {{param}} (inclusive). If specified, {{param}} MUST be
          greater than or equal to SourcePort. A value of -1 indicates that no
          port range is specified.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="SourcePortExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|SourcePort}} entry (or port range), if specified. If
          {{true}}, the class includes all packets except those that match the
          {{param|SourcePort}} entry (or port range), if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourceMACAddress" access="readWrite">
        <description>
          Classification criterion. Source MAC Address. {{empty}} indicates
          this criterion is not used for classification.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceMACMask" access="readWrite">
        <description>
          Bit-mask for the MAC address, where matching of a packet's MAC
          address with the {{param|SourceMACAddress}} is only to be done for
          bit positions set to one in the mask. A mask of ''FF:FF:FF:FF:FF:FF''
          or {{empty}} indicates all bits of the {{param|SourceMACAddress}} are
          to be used for classification.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceMACExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          (masked) {{param|SourceMACAddress}} entry, if specified. If {{true}},
          the class includes all packets except those that match the (masked)
          {{param|SourceMACAddress}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestMACAddress" access="readWrite">
        <description>
          Classification criterion. Destination MAC Address. {{empty}}
          indicates this criterion is not used for classification. The use of
          destination MAC address as a classification criterion is primarily
          useful only for bridged traffic.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestMACMask" access="readWrite">
        <description>
          Bit-mask for the MAC address, where matching of a packet's MAC
          address with the {{param|DestMACAddress}} is only to be done for bit
          positions set to one in the mask. A mask of ''FF:FF:FF:FF:FF:FF'' or
          {{empty}} indicates all bits of the {{param|DestMACAddress}} are to
          be used for classification.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestMACExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          (masked) {{param|DestMACAddress}} entry, if specified. If {{true}},
          the class includes all packets except those that match the (masked)
          {{param|DestMACAddress}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Ethertype" access="readWrite">
        <description>
          Classification criterion. Ethertype as indicated in either the
          Ethernet or SNAP Type header. A value of -1 indicates this criterion
          is not used for classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="EthertypeExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|Ethertype}} entry, if specified. If {{true}}, the class
          includes all packets except those that match the {{param|Ethertype}}
          entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SSAP" access="readWrite">
        <description>
          Classification criterion. SSAP element in the LLC header. A value of
          -1 indicates this criterion is not used for classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="SSAPExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|SSAP}} entry, if specified. If {{true}}, the class includes
          all packets except those that match the {{param|SSAP}} entry, if
          specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DSAP" access="readWrite">
        <description>
          Classification criterion. DSAP element in the LLC header. A value of
          -1 indicates this criterion is not used for classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DSAPExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|DSAP}} entry, if specified. If {{true}}, the class includes
          all packets except those that match the {{param|DSAP}} entry, if
          specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="LLCControl" access="readWrite">
        <description>
          Classification criterion. Control element in the LLC header. A value
          of -1 indicates this criterion is not used for classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="LLCControlExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|LLCControl}} entry, if specified. If {{true}}, the class
          includes all packets except those that match the {{param|LLCControl}}
          entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SNAPOUI" access="readWrite">
        <description>
          Classification criterion. OUI element in the SNAP header. A value of
          -1 indicates this criterion is not used for classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="SNAPOUIExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|SNAPOUI}} entry, if specified. If {{true}}, the class
          includes all packets except those that match the {{param|SNAPOUI}}
          entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourceVendorClassID" access="readWrite">
        <description>
          Classification criterion. Used to identify one or more LAN devices,
          value of the DHCPv4 Vendor Class Identifier (Option 60) as defined in
          {{bibref|RFC2132}}, matched according to the criterion in
          {{param|SourceVendorClassIDMode}}. Case sensitive. This is a normal
          string, e.g. "abc" is represented as "abc" and not say "616263" hex.
          However, if the value includes non-printing characters then such
          characters have to be represented using XML escapes, e.g. #x0a for
          line-feed. {{empty}} indicates this criterion is not used for
          classification. Note: This parameter is DHCPv4-specific. It only
          applies when {{param|DHCPType}} is {{enum|DHCPv4|DHCPType}}.
        </description>
        <syntax>
          <string>
            <size maxLength="255"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceVendorClassIDExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets sourced from LAN
          devices that match the {{param|SourceVendorClassID}} entry (for
          {{enum|DHCPv4|DHCPType}}) or the {{param|SourceVendorClassIDv6}}
          entry (for {{enum|DHCPv6|DHCPType}}), if specified. If {{true}}, the
          class includes all packets except those sourced from LAN devices that
          match the {{param|SourceVendorClassID}} entry (for
          {{enum|DHCPv4|DHCPType}}) or the {{param|SourceVendorClassIDv6}}
          entry (for {{enum|DHCPv6|DHCPType}}), if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourceVendorClassIDMode" access="readWrite">
        <description>
          SourceVendorClassID pattern match criterion. {{enum}} For example, if
          {{param|SourceVendorClassID}} is "Example" then an Option 60 value of
          "Example device" will match with {{param}} values of {{enum|Prefix}}
          or {{enum|Substring}}, but not with {{enum|Exact}} or
          {{enum|Suffix}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Exact"/>
            <enumeration value="Prefix"/>
            <enumeration value="Suffix"/>
            <enumeration value="Substring"/>
          </string>
          <default type="object" value="Exact"/>
        </syntax>
      </parameter>

      <parameter name="DestVendorClassID" access="readWrite">
        <description>
          Classification criterion. Used to identify one or more LAN devices,
          value of the DHCPv4 Vendor Class Identifier (Option 60) as defined in
          {{bibref|RFC2132}}, matched according to the criterion in
          {{param|DestVendorClassIDMode}}. Case sensitive. This is a normal
          string, e.g. "abc" is represented as "abc" and not say "616263" hex.
          However, if the value includes non-printing characters then such
          characters have to be represented using XML escapes, e.g. #x0a for
          line-feed. {{empty}} indicates this criterion is not used for
          classification. Note: This parameter is DHCPv4-specific. It only
          applies when {{param|DHCPType}} is {{enum|DHCPv4|DHCPType}}.
        </description>
        <syntax>
          <string>
            <size maxLength="255"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestVendorClassIDExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets destined for LAN
          devices that match the {{param|DestVendorClassID}} entry (for
          {{enum|DHCPv4|DHCPType}}) or the {{param|DestVendorClassIDv6}} entry
          (for {{enum|DHCPv6|DHCPType}}), if specified. If {{true}}, the class
          includes all packets except those destined for LAN devices that match
          the {{param|DestVendorClassID}} entry (for {{enum|DHCPv4|DHCPType}})
          or the {{param|DestVendorClassIDv6}} entry (for
          {{enum|DHCPv6|DHCPType}}), if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestVendorClassIDMode" access="readWrite">
        <description>
          {{param|DestVendorClassID}} pattern match criterion. {{enum}} For
          example, if {{param|DestVendorClassID}} is "Example" then an Option
          60 value of "Example device" will match with {{param}} values of
          {{enum|Prefix}} or {{enum|Substring}}, but not with {{enum|Exact}} or
          {{enum|Suffix}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Exact"/>
            <enumeration value="Prefix"/>
            <enumeration value="Suffix"/>
            <enumeration value="Substring"/>
          </string>
          <default type="object" value="Exact"/>
        </syntax>
      </parameter>

      <parameter name="SourceClientID" access="readWrite">
        <description>
          Classification criterion. A hexbinary string used to identify one or
          more LAN devices, value of the DHCP Client Identifier. The DHCP
          Client Identifier is Option 61 (as defined in {{bibref|RFC2132}}) for
          {{enum|DHCPv4|DHCPType}}, or is Option 1 (as defined in
          {{bibref|RFC3315}}) for {{enum|DHCPv6|DHCPType}}. The option value is
          binary, so an exact match is REQUIRED. {{empty}} indicates this
          criterion is not used for classification. Note: DHCPv4 Option values
          are limited to a length of 255, while DHCPv6 Option values can have a
          maximum length of 65535. Note: This parameter is DHCP version
          neutral. The specific DHCP version in use with this parameter is
          indicated by {{param|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceClientIDExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets sourced from LAN
          devices that match the {{param|SourceClientID}} entry, if specified.
          If {{true}}, the class includes all packets except those sourced from
          LAN devices that match the {{param|SourceClientID}} entry, if
          specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestClientID" access="readWrite">
        <description>
          Classification criterion. A hexbinary string used to identify one or
          more LAN devices, value of the DHCP Client Identifier. The DHCP
          Client Identifier is Option 61 (as defined in {{bibref|RFC2132}}) for
          {{enum|DHCPv4|DHCPType}}, or is Option 1 (as defined in
          {{bibref|RFC3315}}) for {{enum|DHCPv6|DHCPType}}. The option value is
          binary, so an exact match is REQUIRED. {{empty}} indicates this
          criterion is not used for classification. Note: DHCPv4 Option values
          are limited to a length of 255, while DHCPv6 Option values can have a
          maximum length of 65535. Note: This parameter is DHCP version
          neutral. The specific DHCP version in use with this parameter is
          indicated by {{param|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestClientIDExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets destined for LAN
          devices that match the {{param|DestClientID}} entry, if specified. If
          {{true}}, the class includes all packets except those destined for
          LAN devices that match the {{param|DestClientID}} entry, if
          specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourceUserClassID" access="readWrite">
        <description>
          Classification criterion. A hexbinary string used to identify one or
          more LAN devices, value of the DHCP User Class Identifier. The DHCP
          User Class Identifier is Option 77 (as defined in {{bibref|RFC3004}})
          for {{enum|DHCPv4|DHCPType}}, or is Option 15 (as defined in
          {{bibref|RFC3315}}) for {{enum|DHCPv6|DHCPType}}. The option value is
          binary, so an exact match is REQUIRED. {{empty}} indicates this
          criterion is not used for classification. Note: DHCPv4 Option values
          are limited to a length of 255, while DHCPv6 Option values can have a
          maximum length of 65535. Note: This parameter is DHCP version
          neutral. The specific DHCP version in use with this parameter is
          indicated by {{param|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceUserClassIDExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets sourced from LAN
          devices that match the {{param|SourceUserClassID}} entry, if
          specified. If {{true}}, the class includes all packets except those
          sourced from LAN devices that match the {{param|SourceUserClassID}}
          entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestUserClassID" access="readWrite">
        <description>
          Classification criterion. A hexbinary string used to identify one or
          more LAN devices, value of the DHCP User Class Identifier. The DHCP
          User Class Identifier is Option 77 (as defined in {{bibref|RFC3004}})
          for {{enum|DHCPv4|DHCPType}}, or is Option 15 (as defined in
          {{bibref|RFC3315}}) for {{enum|DHCPv6|DHCPType}}. The option value is
          binary, so an exact match is REQUIRED. {{empty}} indicates this
          criterion is not used for classification. Note: DHCPv4 Option values
          are limited to a length of 255, while DHCPv6 Option values can have a
          maximum length of 65535. Note: This parameter is DHCP version
          neutral. The specific DHCP version in use with this parameter is
          indicated by {{param|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestUserClassIDExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets destined for LAN
          devices that match the {{param|DestUserClassID}} entry, if specified.
          If {{true}}, the class includes all packets except those destined for
          LAN devices that match the {{param|DestUserClassID}} entry, if
          specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourceVendorSpecificInfo" access="readWrite">
        <description>
          Classification criterion. A hexbinary string used to identify one or
          more LAN devices, value of the DHCP Vendor-specific Information,
          matched according to the criteria in
          {{param|SourceVendorSpecificInfoEnterprise}} and
          {{param|SourceVendorSpecificInfoSubOption}}. The DHCP Vendor-specific
          Information is Option 125 (as defined in {{bibref|RFC3925}}) for
          {{enum|DHCPv4|DHCPType}}, or is Option 17 (as defined in
          {{bibref|RFC3315}}) for {{enum|DHCPv6|DHCPType}}. {{empty}} indicates
          this criterion is not used for classification. Note: DHCPv4 Option
          values are limited to a length of 255, while DHCPv6 Option values can
          have a maximum length of 65535. Note: This parameter is DHCP version
          neutral. The specific DHCP version in use with this parameter is
          indicated by {{param|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceVendorSpecificInfoExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets sourced from LAN
          devices that match the {{param|SourceVendorSpecificInfo}} entry, if
          specified. If {{true}}, the class includes all packets except those
          sourced from LAN devices that match the
          {{param|SourceVendorSpecificInfo}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourceVendorSpecificInfoEnterprise" access="readWrite">
        <description>
          {{param|SourceVendorSpecificInfo}} Enterprise Number as defined in
          {{bibref|RFC3925}}. The default value (0) is assigned to IANA and
          will probably need to be replaced with an appropriate enterprise
          number.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="SourceVendorSpecificInfoSubOption" access="readWrite">
        <description>
          {{param|SourceVendorSpecificInfo}} Sub Option Code as defined in
          {{bibref|RFC3925}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="0" maxInclusive="255"/>
          </int>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="DestVendorSpecificInfo" access="readWrite">
        <description>
          Classification criterion. A hexbinary string used to identify one or
          more LAN devices, value of the DHCP Vendor-specific Information,
          matched according to the criteria in
          {{param|DestVendorSpecificInfoEnterprise}} and
          {{param|DestVendorSpecificInfoSubOption}}. The DHCP Vendor-specific
          Information is Option 125 (as defined in {{bibref|RFC3925}}) for
          {{enum|DHCPv4|DHCPType}}, or is Option 17 (as defined in
          {{bibref|RFC3315}}) for {{enum|DHCPv6|DHCPType}}. {{empty}} indicates
          this criterion is not used for classification. Note: DHCPv4 Option
          values are limited to a length of 255, while DHCPv6 Option values can
          have a maximum length of 65535. Note: This parameter is DHCP version
          neutral. The specific DHCP version in use with this parameter is
          indicated by {{param|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestVendorSpecificInfoExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets destined for LAN
          devices that match the {{param|DestVendorSpecificInfo}} entry, if
          specified. If {{true}}, the class includes all packets except those
          destined for LAN devices that match the
          {{param|DestVendorSpecificInfo}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestVendorSpecificInfoEnterprise" access="readWrite">
        <description>
          {{param|DestVendorSpecificInfo}} Enterprise Number as defined in
          {{bibref|RFC3925}}. The default value (0) is assigned to IANA and
          will probably need to be replaced with an appropriate enterprise
          number.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="DestVendorSpecificInfoSubOption" access="readWrite">
        <description>
          {{param|DestVendorSpecificInfo}} Sub Option Code as defined in
          {{bibref|RFC3925}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="0" maxInclusive="255"/>
          </int>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="TCPACK" access="readWrite">
        <description>
          Classification criterion. If {{false}}, this criterion is not used
          for classification. If {{true}}, this criterion matches with all TCP
          segments that have the ACK control bit set.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="TCPACKExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|TCPACK}} entry, if specified. If {{true}}, the class includes
          all packets except those that match the {{param|TCPACK}} entry, if
          specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="IPLengthMin" access="readWrite">
        <description>
          Classification criterion. Minimum IP Packet Length (including header)
          in bytes.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="IPLengthMax" access="readWrite">
        <description>
          Classification criterion. Maximum IP Packet Length (including header)
          in bytes. A value of zero indicates that no maximum is specified (an
          umlimited maximum length).
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="IPLengthExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets whose length
          (including header) falls within the inclusive range
          {{param|IPLengthMin}} through {{param|IPLengthMax}}. A value of zero
          for both {{param|IPLengthMin}} and {{param|IPLengthMax}} allows any
          length packet. An equal non-zero value of {{param|IPLengthMin}} and
          {{param|IPLengthMax}} allows only a packet with the exact length
          specified. If {{true}}, the class includes all packets except those
          whose length (including header) falls within the inclusive range
          {{param|IPLengthMin}} through {{param|IPLengthMax}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DSCPCheck" access="readWrite">
        <description>
          Classification criterion. DiffServ codepoint (defined in
          {{bibref|RFC2474}}). If set to a Class Selector Codepoint (defined in
          {{bibref|RFC2474}}), all DSCP values that match the first 3 bits will
          be considered a valid match. A value of -1 indicates this criterion
          is not used for classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="63"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DSCPExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|DSCPCheck}} entry, if specified. If {{true}}, the class
          includes all packets except those that match the {{param|DSCPCheck}}
          entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DSCPMark" access="readWrite">
        <description>
          Classification result. DSCP to mark traffic with that falls into this
          classification entry. A value of -1 indicates no change from the
          incoming packet. A value of -2 indicates automatic marking of DSCP
          based upon the EthernetPriority value of the incoming packet as
          defined in {{bibref|TR-181i2|Annex A}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="-2"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="EthernetPriorityCheck" access="readWrite">
        <description>
          Classification criterion. Current Ethernet priority as defined in
          802.1D. A value of -1 indicates this criterion is not used for
          classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="EthernetPriorityExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|EthernetPriorityCheck}} entry, if specified. If {{true}}, the
          class includes all packets except those that match the
          {{param|EthernetPriorityCheck}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="EthernetPriorityMark" access="readWrite">
        <description>
          Classification result. Ethernet priority code (as defined in 802.1D)
          to mark traffic with that falls into this classification entry. A
          value of -1 indicates no change from the incoming packet. A value of
          -2 indicates automatic marking of EthernetPriority based upon the
          DSCP value of the incoming packet as defined in
          {{bibref|TR-181i2|Annex A}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="-2"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="VLANIDCheck" access="readWrite">
        <description>
          Classification criterion. Current Ethernet VLAN ID as defined in
          802.1Q. A value of -1 indicates this criterion is not used for
          classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="VLANIDExclude" access="readWrite">
        <description>
          If {{false}}, the class includes only those packets that match the
          {{param|VLANIDCheck}} entry, if specified. If {{true}}, the class
          includes all packets except those that match the
          {{param|VLANIDCheck}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="OutOfBandInfo" access="readWrite">
        <description>
          Classification criterion. Allows traffic to be distinguished based on
          out-of-band information such as physical port or application ID.
          Primarily intended for, but not restricted to, locally sourced
          traffic. If specified, this entry applies to traffic with matching
          out-of-band information. A value of -1 indicates this criterion is
          not used for classification.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="ForwardingPolicy" access="readWrite">
        <description>
          Classification result. Identifier of the forwarding policy associated
          with traffic that falls in this classification.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="TrafficClass" access="readWrite">
        <description>
          Classification result. Identifier of the traffic class associated
          with traffic that falls in this classification. If specified, at
          least one {{object|#.Queue}} table entry MUST include this traffic
          class in its {{param|#.Queue.{i}.TrafficClasses}} parameter (which is
          a comma-separated list). A value of -1 indicates a null traffic
          class. {{param}} and {{param|App}} are mutually exclusive and one of
          the two MUST be specified. If {{param}} is {{null}}, {{param|App}}
          MUST be specified, and vice versa.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="Policer" access="readWrite">
        <description>
          Classification result. {{reference}} Indicates the ''Policer'' table
          entry for traffic that falls in this classification. {{empty}}
          indicates a null policer. {{param}} MAY optionally be specified in
          conjunction with {{param|TrafficClass}}. {{param}} and {{param|App}}
          are mutually exclusive.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.Policer."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="App" access="readWrite">
        <description>
          Classification result. {{reference}} Indicates the ''App'' table
          entry for traffic that falls in this classification. {{empty}}
          indicates a null ''App''. {{param|TrafficClass}} and {{param}} are
          mutually exclusive and one of the two MUST be specified. If
          {{param|TrafficClass}} is null, {{param}} MUST be specified, and vice
          versa.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.App." targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceVendorClassIDv6" access="readWrite">
        <description>
          Classification criterion. A hexbinary string used to identify one or
          more LAN devices, value of the DHCPv6 Vendor Class Identifier (Option
          16) as defined in {{bibref|RFC3315}}. The option value is binary, so
          an exact match is REQUIRED. {{empty}} indicates this criterion is not
          used for classification. Note: This parameter is DHCPv6-specific. It
          only applies when {{param|DHCPType}} is {{enum|DHCPv6|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestVendorClassIDv6" access="readWrite">
        <description>
          Classification criterion. A hexbinary string used to identify one or
          more LAN devices, value of the DHCPv6 Vendor Class Identifier (Option
          16) as defined in {{bibref|RFC3315}}. The option value is binary, so
          an exact match is REQUIRED. {{empty}} indicates this criterion is not
          used for classification. Note: This parameter is DHCPv6-specific. It
          only applies when {{param|DHCPType}} is {{enum|DHCPv6|DHCPType}}.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.QoS.App.{i}." access="readWrite"
        numEntriesParameter="AppNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        Application table.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this App table entry. {{enum}} 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="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="ProtocolIdentifier" access="readWrite">
        <description>
          URN identifying the protocol associated with the given application. A
          set of defined URNs is given in {{bibref|TR-181i2|Annex A}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          Human-readable name associated with this entry in the App table.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DefaultForwardingPolicy" access="readWrite">
        <description>
          Identifier of the forwarding policy associated with traffic
          associated with this App table entry, but not associated with any
          specified flow.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="DefaultTrafficClass" access="readWrite">
        <description>
          Identifier of the traffic class associated with traffic associated
          with this App table entry, but not associated with any specified
          flow.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="DefaultPolicer" access="readWrite">
        <description>
          {{reference}} Indicates the ''Policer'' table entry for traffic
          associated with this {{object}} table entry, but not associated with
          any specified flow. {{empty}} indicates a null policer.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.Policer."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DefaultDSCPMark" access="readWrite">
        <description>
          DSCP to mark traffic associated with this App table entry, but not
          associated with any specified flow. A value of -1 indicates no change
          from the incoming packet. A value of -2 indicates automatic marking
          of DSCP based upon the EthernetPriority value of the incoming packet
          as defined in {{bibref|TR-181i2|Annex A}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="-2"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DefaultEthernetPriorityMark" access="readWrite">
        <description>
          Ethernet priority code (as defined in 802.1D) to mark traffic
          associated with this App table entry, but not associated with any
          specified flow. A value of -1 indicates no change from the incoming
          packet. A value of -2 indicates automatic marking of EthernetPriority
          based upon the DSCP value of the incoming packet as defined in
          {{bibref|TR-181i2|Annex A}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="-2"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.QoS.Flow.{i}." access="readWrite"
        numEntriesParameter="FlowNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        Flow table.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this Flow table entry. {{enum}} 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="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="Type" access="readWrite">
        <description>
          URN identifying the type of flow to be associated with the specified
          policer. A set of defined URNs is given in {{bibref|TR-181i2|Annex
          A}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="TypeParameters" access="readWrite">
        <description>
          List of name-value pairs representing additional criteria to identify
          the flow type. The use and interpretation is specific to the
          particular FlowType URN.Encoded using the "x-www-form-urlencoded"
          content type defined in {{bibref|HTML4.01}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Name" access="readWrite">
        <description>
          Human-readable name associated with this entry in the Flow table.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="App" access="readWrite">
        <description>
          {{reference}} Indicates the ''App'' table entry associated with this
          flow. {{empty}} indicates the flow table is not associated with any
          App table entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.App." targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ForwardingPolicy" access="readWrite">
        <description>
          Identifier of the forwarding policy associated with this flow.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="TrafficClass" access="readWrite">
        <description>
          Identifier of the traffic class associated with this flow.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Policer" access="readWrite">
        <description>
          {{reference}} Indicates the ''Policer'' table entry for traffic that
          falls in this flow. {{empty}} indicates a null policer.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.Policer."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DSCPMark" access="readWrite">
        <description>
          DSCP to mark traffic with that falls into this flow. A value of -1
          indicates no change from the incoming packet. A value of -2 indicates
          automatic marking of DSCP based upon the EthernetPriority value of
          the incoming packet as defined in {{bibref|TR-181i2|Annex A}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="-2"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="EthernetPriorityMark" access="readWrite">
        <description>
          Ethernet priority code (as defined in 802.1D) to mark traffic with
          that falls into this flow. A value of -1 indicates no change from the
          incoming packet. A value of -2 indicates automatic marking of
          EthernetPriority based upon the DSCP value of the incoming packet as
          defined in {{bibref|TR-181i2|Annex A}}.
        </description>
        <syntax>
          <int>
            <range minInclusive="-2"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.QoS.Policer.{i}." access="readWrite"
        numEntriesParameter="PolicerNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        Policer table.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this policer. {{enum}} 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="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="CommittedRate" access="readWrite">
        <description>
          Committed rate allowed for this policer in {{units}}.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bits per second"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="CommittedBurstSize" access="readWrite">
        <description>
          Committed Burstsize in bytes.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="ExcessBurstSize" access="readWrite">
        <description>
          Excess Burstsize in bytes. Applied for a
          {{enum|SingleRateThreeColor|MeterType}} meter.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="PeakRate" access="readWrite">
        <description>
          Peak rate allowed for this Meter in {{units}}. Applied for
          {{enum|TwoRateThreeColor|MeterType}} meters.
        </description>
        <syntax>
          <unsignedInt>
            <units value="bits per second"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="PeakBurstSize" access="readWrite">
        <description>
          Peak Burstsize in bytes. Applied for
          {{enum|TwoRateThreeColor|MeterType}} meters.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="MeterType" access="readWrite">
        <description>
          Identifies the method of traffic measurement to be used for this
          policer. {{enum}} {{enum|SimpleTokenBucket}} makes use of
          {{param|CommittedRate}} and {{param|CommittedBurstSize}}.
          {{enum|SingleRateThreeColor}} makes use of {{param|CommittedRate}},
          {{param|CommittedBurstSize}}, and {{param|ExcessBurstSize}} as
          defined in {{bibref|RFC2697}}. {{enum|TwoRateThreeColor}} makes use
          of {{param|CommittedRate}}, {{param|CommittedBurstSize}},
          {{param|PeakRate}}, and {{param|PeakBurstSize}} as defined in
          {{bibref|RFC2698}}.
        </description>
        <syntax>
          <string>
            <enumerationRef targetParam="PossibleMeterTypes"/>
          </string>
          <default type="object" value="SimpleTokenBucket"/>
        </syntax>
      </parameter>

      <parameter name="PossibleMeterTypes" access="readOnly"
          activeNotify="canDeny">
        <description>
          {{list}} Indicates supported meter types.
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="SimpleTokenBucket"/>
            <enumeration value="SingleRateThreeColor"/>
            <enumeration value="TwoRateThreeColor"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ConformingAction" access="readWrite">
        <description>
          Instructions for how to handle traffic that is conforming.
          {{pattern}} {{pattern|Null}} corresponds with no action. ''&lt;DSCP
          Value&gt;'' is an unsigned integer that corresponds with a mark
          action overwriting the traffic's DSCP with the configured DSCP.
          ''&lt;:Ethernet Priority&gt;'' is a colon (":") followed by an
          unsigned integer (no white space). It corresponds with a mark action
          overwriting the traffic's Ethernet Priority with the configured
          Ethernet Priority. ''&lt;DSCP Value:Ethernet Priority&gt;'' is an
          unsigned integer followed by a colon (":") and a second unsigned
          integer (no white space). It corresponds with a mark action
          overwriting the traffic's DSCP and Ethernet Priority with the
          configured values. For example, "24" specifies a DSCP value of 24,
          ":3" specifies an Ethernet Priority of 3, and "24:3" specifies both.
        </description>
        <syntax>
          <string>
            <pattern value="Null"/>
            <pattern value="Drop"/>
            <pattern value="[0-9]|[1-5][0-9]|6[0-3]">
              <description>&lt;DSCP Value&gt;</description>
            </pattern>
            <pattern value=":[0-7]">
              <description>&lt;Ethernet Priority&gt;</description>
            </pattern>
            <pattern value="([0-9]|[1-5][0-9]|6[0-3]):[0-7]">
              <description>&lt;DSCP Value:Ethernet Priority&gt;</description>
            </pattern>
          </string>
          <default type="object" value="Null"/>
        </syntax>
      </parameter>

      <parameter name="PartialConformingAction" access="readWrite">
        <description>
          Instructions for how to handle traffic that is partially conforming
          (colored yellow). {{pattern}} {{pattern|Null}} corresponds with no
          action. ''&lt;DSCP Value&gt;'' is an unsigned integer that
          corresponds with a mark action overwriting the traffic's DSCP with
          the configured DSCP.Only applies for three-color meters.
          ''&lt;:Ethernet Priority&gt;'' is a colon (":") followed by an
          unsigned integer (no white space). It corresponds with a mark action
          overwriting the traffic's Ethernet Priority with the configured
          Ethernet Priority. ''&lt;DSCP Value:Ethernet Priority&gt;'' is an
          unsigned integer followed by a colon (":") and a second unsigned
          integer (no white space). It corresponds with a mark action
          overwriting the traffic's DSCP and Ethernet Priority with the
          configured values. For example, "24" specifies a DSCP value of 24,
          ":3" specifies an Ethernet Priority of 3, and "24:3" specifies both.
        </description>
        <syntax>
          <string>
            <pattern value="Null"/>
            <pattern value="Drop"/>
            <pattern value="[0-9]|[1-5][0-9]|6[0-3]">
              <description>&lt;DSCP Value&gt;</description>
            </pattern>
            <pattern value=":[0-7]">
              <description>&lt;Ethernet Priority&gt;</description>
            </pattern>
            <pattern value="([0-9]|[1-5][0-9]|6[0-3]):[0-7]">
              <description>&lt;DSCP Value:Ethernet Priority&gt;</description>
            </pattern>
          </string>
          <default type="object" value="Drop"/>
        </syntax>
      </parameter>

      <parameter name="NonConformingAction" access="readWrite">
        <description>
          Instructions for how to handle traffic that is non-conforming.
          {{pattern}} {{pattern|Null}} corresponds with no action. ''&lt;DSCP
          Value&gt;'' is an unsigned integer that corresponds with a mark
          action overwriting the traffic's DSCP with the configured DSCP.
          ''&lt;:Ethernet Priority&gt;'' is a colon (":") followed by an
          unsigned integer (no white space). It corresponds with a mark action
          overwriting the traffic's Ethernet Priority with the configured
          Ethernet Priority. ''&lt;DSCP Value:Ethernet Priority&gt;'' is an
          unsigned integer followed by a colon (":") and a second unsigned
          integer (no white space). It corresponds with a mark action
          overwriting the traffic's DSCP and Ethernet Priority with the
          configured values. For example, "24" specifies a DSCP value of 24,
          ":3" specifies an Ethernet Priority of 3, and "24:3" specifies both.
        </description>
        <syntax>
          <string>
            <pattern value="Null"/>
            <pattern value="Drop"/>
            <pattern value="[0-9]|[1-5][0-9]|6[0-3]">
              <description>&lt;DSCP Value&gt;</description>
            </pattern>
            <pattern value=":[0-7]">
              <description>&lt;Ethernet Priority&gt;</description>
            </pattern>
            <pattern value="([0-9]|[1-5][0-9]|6[0-3]):[0-7]">
              <description>&lt;DSCP Value:Ethernet Priority&gt;</description>
            </pattern>
          </string>
          <default type="object" value="Drop"/>
        </syntax>
      </parameter>

      <parameter name="TotalCountedPackets" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of Packets counted by this policer, regardless of meter
          action.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="TotalCountedBytes" access="readOnly"
          activeNotify="canDeny">
        <description>
          Total number of Bytes counted by this policer, regardless of meter
          action.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="ConformingCountedPackets" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of conforming Packets counted by this policer, regardless of
          meter action.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="ConformingCountedBytes" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of conforming Bytes counted by this policer, regardless of
          meter action.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="PartiallyConformingCountedPackets" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of partially conforming Packets counted by this policer,
          regardless of meter action.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="PartiallyConformingCountedBytes" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of partially conforming Bytes counted by this policer,
          regardless of meter action.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="NonConformingCountedPackets" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of non-conforming Packets counted by this policer, regardless
          of meter action.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="NonConformingCountedBytes" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of non-conforming Bytes counted by this policer, regardless of
          meter action.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.QoS.Queue.{i}." access="readWrite"
        numEntriesParameter="QueueNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        Queue table. Each entry is associated with a set of traffic classes,
        which are specified via the {{param|TrafficClasses}} parameter, and is
        configured with weight, precedence, drop algorithm, scheduler algorithm
        etc as appropriate for the traffic classes. An entry can be associated
        either with all egress interfaces (in which case an actual queue will
        be instantiated on each egress interface on which traffic of that
        traffic class can be generated) or else with a single specified egress
        interface. For enabled table entries, if {{param|Interface}} is not a
        valid reference and {{param|AllInterfaces}} is {{false}}, then the
        table entry is inoperable and the CPE MUST set {{param|Status}} to
        {{enum|Error_Misconfigured|Status}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this queue. {{enum}} The {{enum|Error_Misconfigured}}
          value indicates that a necessary configuration value is undefined or
          invalid. 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="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="TrafficClasses" access="readWrite">
        <description>
          {{list}} Each list item identifies the set of traffic classes
          associated with this queue. Traffic is sent to this queue if a
          {{object|#.Classification}}, {{object|#.App}} or {{object|#.Flow}}
          table entry specifies a traffic class, e.g. via the
          {{param|#.Classification.{i}.TrafficClass}} parameter. If more than
          one queue on a given egress interface is associated with a given
          traffic class, the implementation will choose which queue to send
          traffic of this class to.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <unsignedInt/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} Specifies the egress interface for which the specified
          queue MUST exist. This MAY be a layer 1, 2 or 3 interface, however,
          the types of interfaces for which ''Queues'' can be instantiated is a
          local matter to the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="AllInterfaces" access="readWrite">
        <description>
          Indicates that the specified queue MUST exist for all egress
          interfaces (i.e. this queue entry is to apply to all egress
          interfaces). If {{true}}, the value of {{param|Interface}} is ignored
          since all egress interfaces are indicated.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="HardwareAssisted" access="readOnly">
        <description>
          Indicates whether ''all'' the queues corresponding to this table
          entry are hardware assisted. If any of the queues corresponding to
          this table entry are not hardware assisted, the parameter value MUST
          be {{false}}.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="BufferLength" access="readOnly">
        <description>
          Number of bytes in the buffer. Queue buffer size for all egress
          interfaces for which this queue exists. If the buffer size is not the
          same for all such egress interfaces, this parameter MUST be 0.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="Weight" access="readWrite">
        <description>
          Weight of this queue in case of {{enum|WFQ|SchedulerAlgorithm}} or
          {{enum|WRR|SchedulerAlgorithm}}, but only used for queues of equal
          precedence.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="Precedence" access="readWrite">
        <description>
          Precedence of this queue relative to others. Lower numbers imply
          greater precedence.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
          <default type="object" value="1"/>
        </syntax>
      </parameter>

      <parameter name="REDThreshold" access="readWrite">
        <description>
          Random Early Detection threshold, used only when
          {{param|DropAlgorithm}} is {{enum|RED|DropAlgorithm}}. This is the
          minimum threshold (''min_th'') and is measured as a percentage of the
          queue size. If the value is set to zero, the CPE MUST choose a
          sensible value, e.g. 5 (but the value MUST still read back as zero).
          In this version of the data model, there is no way to set the maximum
          threshold (''max_th''). The CPE MUST choose a sensible value, e.g.
          three times the minimum threshold. In this version of the data model,
          there is no way to set the RED weight (''w_q''). The CPE MUST choose
          a sensible value, e.g. 0.002.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="100"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="REDPercentage" access="readWrite">
        <description>
          Random Early Detection percentage, used only when
          {{param|DropAlgorithm}} is {{enum|RED|DropAlgorithm}}. This is the
          maximum value of the packet marking probability (''max_p''). If the
          value is set to zero, the CPE MUST choose a sensible value, e.g. 10
          (but the value MUST still read back as zero). In this version of the
          data model, there is no way to set the RED weight (''w_q''). The CPE
          MUST choose a sensible value, e.g. 0.002.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="100"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="DropAlgorithm" access="readWrite">
        <description>
          Dropping algorithm used for this queue if congested.
        </description>
        <syntax>
          <string>
            <enumeration value="RED">
              <description>Random Early Detection {{bibref|RED}}</description>
            </enumeration>
            <enumeration value="DT">
              <description>Drop Tail</description>
            </enumeration>
            <enumeration value="WRED">
              <description>Weighted RED</description>
            </enumeration>
            <enumeration value="BLUE">
              <description>{{bibref|BLUE}}</description>
            </enumeration>
          </string>
          <default type="object" value="DT"/>
        </syntax>
      </parameter>

      <parameter name="SchedulerAlgorithm" access="readWrite">
        <description>
          Scheduling Algorithm used by scheduler.
        </description>
        <syntax>
          <string>
            <enumeration value="WFQ">
              <description>Weighted Fair Queueing</description>
            </enumeration>
            <enumeration value="WRR">
              <description>Weighted Round Robin</description>
            </enumeration>
            <enumeration value="SP">
              <description>Strict Priority</description>
            </enumeration>
          </string>
          <default type="object" value="SP"/>
        </syntax>
      </parameter>

      <parameter name="ShapingRate" access="readWrite">
        <description>
          Rate to shape this queue's traffic to. For leaky bucket (constant
          rate shaping), this is the constant rate. For token bucket (variable
          rate shaping), this is the average rate. If &lt;= 100, in percent of
          the rate of the highest rate-constrained layer over which the packet
          will travel on egress. If &gt; 100, in bits per second. A value of -1
          indicates no shaping. For example, for packets destined for a WAN DSL
          interface, if the egress will be on a PPP or IP link with a specified
          ''ShapingRate'', the percentage is calculated relative to this rate.
          Otherwise, if the ATM layer is rate-constrained, then the rate is
          calculated relative to this rate. Otherwise, the rate is calculated
          relative to the physical-layer DSL rate.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="ShapingBurstSize" access="readWrite">
        <description>
          Burst size in bytes. For both leaky bucket (constant rate shaping)
          and token bucket (variable rate shaping) this is the bucket size and
          is therefore the maximum burst size.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.QoS.QueueStats.{i}." access="readWrite"
        numEntriesParameter="QueueStatsNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        Queue statistics table. This table is managed by the ACS, which will
        create entries only for those {Queue, Interface} combinations for which
        statistics are to be collected. Note: The {{object}} table includes
        unique key parameters that are strong references. If a strongly
        referenced object is deleted, the CPE will set the referencing
        parameter to {{empty}}. However, doing so under these circumstances
        might cause the updated {{object}} row to then violate the table's
        unique key constraint; if this occurs, the CPE MUST disable the
        offending {{object}} row.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="Queue"/>
        <parameter ref="Interface"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this object.
        </description>
        <syntax>
          <string>
            <enumeration value="Disabled"/>
            <enumeration value="Enabled">
              <description>Enabled and {Queue,Interface} is valid</description>
            </enumeration>
            <enumeration value="Error">
              <description>
                Enabled but {Queue,Interface} is invalid
              </description>
            </enumeration>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="Queue" access="readWrite">
        <description>
          {{reference}} Indicates ''Queue'' entry with which this object is
          associated.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.Queue." targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} Specifies the egress interface for which this object
          contains statistics. This MAY be a layer 1, 2 or 3 interface,
          however, the types of interfaces for which ''QueueStats'' can be
          instantiated is a local matter to the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="OutputPackets" access="readOnly" activeNotify="canDeny">
        <description>
          Number of packets output through the queue.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="OutputBytes" access="readOnly" activeNotify="canDeny">
        <description>
          Number of bytes output through the queue.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="DroppedPackets" access="readOnly"
          activeNotify="canDeny">
        <description>
          Number of packets dropped by the queue.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="DroppedBytes" access="readOnly" activeNotify="canDeny">
        <description>
          Number of bytes dropped by the queue.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="QueueOccupancyPackets" access="readOnly"
          activeNotify="canDeny">
        <description>
          Queue occupancy in packets (gives a measure of queue latency).
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="QueueOccupancyPercentage" access="readOnly"
          activeNotify="canDeny">
        <description>
          Queue occupancy measured as a {{units}}, i.e. 100 * queue occupancy
          in bytes / queue size in bytes (gives a measure of queue usage).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="100"/>
            <units value="percent"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.QoS.Shaper.{i}." access="readWrite"
        numEntriesParameter="ShaperNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        Shaper table. Used to shape the queue(s) associated with
        {{param|Interface}}. In case of a single queue for that interface,
        determines the egress rate of the queue. In case of multiple queues for
        that interface (possibly with per queue shaping rates), determines the
        aggregate egress rate on that interface. For enabled table entries, if
        {{param|Interface}} is not a valid reference then the table entry is
        inoperable and the CPE MUST set {{param|Status}} to
        {{enum|Error_Misconfigured|Status}}. Note: The {{object}} table
        includes a unique key parameter that is a strong reference. If a
        strongly referenced object is deleted, the CPE will set the referencing
        parameter to {{empty}}. However, doing so under these circumstances
        might cause the updated {{object}} row to then violate the table's
        unique key constraint; if this occurs, the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}} and disable the
        offending {{object}} row.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="Interface"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this shaper. {{enum}} The {{enum|Error_Misconfigured}}
          value indicates that a necessary configuration value is undefined or
          invalid. 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="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}}The interface object associated with this ''Shaper''
          entry. It MAY be a layer 1, 2 or 3 interface, however, the types of
          interfaces for which ''Shapers'' can be instantiated is a local
          matter to the CPE.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ShapingRate" access="readWrite">
        <description>
          Rate to shape the associated interface connection's egress traffic
          to. For leaky bucket (constant rate shaping), this is the constant
          rate. For token bucket (variable rate shaping), this is the average
          rate. If &lt;= 100, in percent of the rate of the highest
          rate-constrained layer over which the packet will travel on egress.
          If &gt; 100, in bits per second. A value of -1 indicates no shaping.
          For example, for packets destined for a WAN DSL interface, if the ATM
          layer is rate-constrained, then the rate is calculated relative to
          this rate. Otherwise, the rate is calculated relative to the
          physical-layer DSL rate.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="ShapingBurstSize" access="readWrite">
        <description>
          Burst size in bytes. For both leaky bucket (constant rate shaping)
          and token bucket (variable rate shaping) this is the bucket size and
          is therefore the maximum burst size.
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.LANConfigSecurity." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object contains generic device configuration information.
      </description>

      <parameter name="ConfigPassword" access="readWrite">
        <description>
          A password to allow LAN access to protected auto-configuration
          services. If the CPE supports TR-064 (LAN-side DSL CPE Configuration
          Protocol), this parameter is to be used as the ''dslf-config''
          password (as defined in TR-064). If the CPE has a user interface with
          password protection enabled, this parameter is also to be used as the
          user password for password-protected operations. However, this
          parameter MUST NOT be used to set the user password if the parameter
          {{param|.UserInterface.PasswordUserSelectable}} is {{true}}.
        </description>
        <syntax hidden="true">
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Hosts." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object provides information about each of the hosts on the LAN,
        including those whose IP address was allocated by the CPE using DHCP as
        well as hosts with statically allocated IP addresses. It can also
        include non-IP hosts.
      </description>

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

    <object name="Device.Hosts.Host.{i}." access="readOnly"
        numEntriesParameter="HostNumberOfEntries" minEntries="0"
        maxEntries="unbounded">
      <description>
        Host table.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="PhysAddress"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" status="deprecated">
        <description>
          A non-volatile handle used to reference this instance. {{param}}
          provides a mechanism for an ACS to label this instance for future
          reference. An initial unique value MUST be assigned when the CPE
          creates an instance of this object.

          This parameter is DEPRECATED because {{object}} is a transient
          object.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PhysAddress" access="readOnly">
        <description>
          Unique physical identifier of the host. For many layer 2 technologies
          this is typically a MAC address.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IPAddress" access="readOnly">
        <description>
          Current IP Address of the host. {{empty}} if no address is available.

          If more than one IP address for this host is known, the CPE will
          choose a ''primary'' address. All known IP addresses can be listed in
          the {{object|IPv4Address}} and {{object|IPv6Address}} tables.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="AddressSource" access="readOnly" status="deprecated">
        <description>
          Indicates whether the IP address of the host was allocated by the CPE
          using DHCP, was assigned to the host statically, or was assigned
          using automatic IP address allocation.

          {{enum}} This parameter is DEPRECATED because only {{enum|None}} and
          {{enum|DHCP}} made sense (the CPE doesn't know whether the address is
          {{enum|Static}} or {{enum|AutoIP}}). The {{enum|DHCP}} case is now
          handled via the {{param|DHCPClient}} reference.
        </description>
        <syntax>
          <string>
            <enumeration value="DHCP"/>
            <enumeration value="Static"/>
            <enumeration value="AutoIP"/>
            <enumeration value="None"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="LeaseTimeRemaining" access="readOnly"
          activeNotify="canDeny" status="deprecated">
        <description>
          DHCP lease time remaining in {{units}}. A value of -1 indicates an
          infinite lease. The value MUST be 0 (zero) if the
          {{param|AddressSource}} is not {{enum|DHCP|AddressSource}}.

          This parameter is DEPRECATED because DHCP lease/lifetime information
          can be accessed via the {{param|DHCPClient}} reference.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="seconds"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="Layer1Interface" access="readOnly">
        <description>
          {{noreference}}The value MUST be the path name of a row in a layer 1
          interface table. For example: ''Device.Ethernet.Interface.2''
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Layer3Interface" access="readOnly">
        <description>
          {{reference}} If the entry represents a non-IP device, then {{param}}
          will be {{empty}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="VendorClassID" access="readOnly" status="deprecated">
        <description>
          Vendor Class Identifier DHCP option (Option 60) of the host. This is
          a normal string, e.g. "abc" is represented as "abc" and not say
          "616263" hex. However, if the value includes non-printing characters
          then such characters have to be represented using XML escapes, e.g.
          #x0a for line-feed. It MAY be defined when {{param|AddressSource}} is
          {{enum|DHCP|AddressSource}}. {{empty}} indicates this option is not
          used. Note: DHCPv4 Option values are limited to a length of 255,
          while DHCPv6 Option values can have a maximum length of 65535.

          This parameter is DEPRECATED because host-supplied DHCP options can
          be accessed via the {{param|DHCPClient}} reference.
        </description>
        <syntax>
          <string>
            <size maxLength="255"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="ClientID" access="readOnly" status="deprecated">
        <description>
          A hexbinary string, Client Identifier DHCP option (Option 61) for the
          specific IP connection of the client. The option value is binary, so
          an exact match is REQUIRED. It MAY be defined when
          {{param|AddressSource}} is {{enum|DHCP|AddressSource}}. {{empty}}
          indicates this option is not used. Note: DHCPv4 Option values are
          limited to a length of 255, while DHCPv6 Option values can have a
          maximum length of 65535.

          This parameter is DEPRECATED because host-supplied DHCP options can
          be accessed via the {{param|DHCPClient}} reference.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="UserClassID" access="readOnly" status="deprecated">
        <description>
          A hexbinary string, User Class Identifier DHCP option (Option 77) of
          the host. It MAY be defined when {{param|AddressSource}} is
          {{enum|DHCP|AddressSource}}. {{empty}} indicates this option is not
          used. Note: DHCPv4 Option values are limited to a length of 255,
          while DHCPv6 Option values can have a maximum length of 65535.

          This parameter is DEPRECATED because host-supplied DHCP options can
          be accessed via the {{param|DHCPClient}} reference.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="HostName" access="readOnly">
        <description>
          The device's host name or {{empty}} if unknown.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Active" access="readOnly">
        <description>
          Whether or not the host is currently present on the LAN. The method
          of presence detection is a local matter to the CPE. The ability to
          list inactive hosts is OPTIONAL. If the CPE includes inactive hosts
          in this table, {{param}} MUST be set to {{false}} for each inactive
          host. The length of time an inactive host remains listed in this
          table is a local matter to the CPE.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IPv4AddressNumberOfEntries" access="readOnly"
          dmr:previousParameter="Active">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="DHCPClient" access="readOnly">
        <description>
          {{reference}} Each list item is the DHCPv4 or DHCPv6 server's client
          entry that corresponds to the host.
        </description>
        <syntax>
          <list maxItems="2"/>
          <string>
            <pathRef
                refType="strong"
                targetParent="
                  .DHCPv4.Server.Pool.{i}.Client.
                  .DHCPv6.Server.Pool.{i}.Client."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AssociatedDevice" access="readOnly">
        <description>
          {{noreference}}The value MUST the path name of the
          ''AssociatedDevice'' (or equivalent) table row that models the host,
          or {{null}} if there is no such table. For example:
          ''Device.WiFi.AccessPoint.1.AssociatedDevice.2''
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"/>
          </string>
        </syntax>
      </parameter>

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

    <object name="Device.Hosts.Host.{i}.IPv4Address.{i}." access="readOnly"
        numEntriesParameter="IPv4AddressNumberOfEntries" minEntries="0"
        maxEntries="unbounded">
      <description>
        The host's known IPv4 addresses. This includes any addresses assigned
        via DHCP, which can also be accessed via the {{param|#.DHCPClient}}
        reference.
      </description>
      <uniqueKey>
        <parameter ref="IPAddress"/>
      </uniqueKey>

      <parameter name="IPAddress" access="readOnly">
        <description>
          IPv4 address.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Hosts.Host.{i}.IPv6Address.{i}." access="readOnly"
        numEntriesParameter="IPv6AddressNumberOfEntries" minEntries="0"
        maxEntries="unbounded">
      <description>
        The host's known IPv6 addresses. This includes any addresses assigned
        via DHCP, which can also be accessed via the {{param|#.DHCPClient}}
        reference.
      </description>
      <uniqueKey>
        <parameter ref="IPAddress"/>
      </uniqueKey>

      <parameter name="IPAddress" access="readOnly">
        <description>
          IPv6 address.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DNS." access="readOnly" minEntries="1" maxEntries="1">
      <description>
        Properties for Domain Name Service (DNS). It contains the
        {{object|Client}}, {{object|Relay}}, and {{object|Diagnostics}}
        objects.
      </description>

      <parameter name="SupportedRecordTypes" access="readOnly">
        <description>
          The DNS record types that are supported by the device. {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="A">
              <description>{{bibref|RFC1035}}</description>
            </enumeration>
            <enumeration value="AAAA">
              <description>{{bibref|RFC3596}}</description>
            </enumeration>
            <enumeration value="SRV">
              <description>{{bibref|RFC2782}}</description>
            </enumeration>
            <enumeration value="PTR">
              <description>{{bibref|RFC1035}}</description>
            </enumeration>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DNS.Client." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        Client properties for Domain Name Service (DNS). The DNS client
        resolves FQDN on behalf of device internal (client) applications.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the DNS client.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of the DNS client. {{enum}} 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="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

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

    <object name="Device.DNS.Client.Server.{i}." access="readWrite"
        numEntriesParameter="ServerNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        This table contains the DNS Server IP address to be used by the DHCP
        Client (it does ''not'' model a DNS Server). Entries are either
        automatically created as result of DHCP (v4 or v6), IPCP, or RA
        received DNS server information, or are statically configured by the
        ACS.
      </description>
      <uniqueKey>
        <parameter ref="DNSServer"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}} 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="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="DNSServer" access="readWrite">
        <description>
          DNS server IP addresses. Note: {{param}} is only writable when
          {{param|Type}} is {{enum|Static|Type}}; otherwise, {{param}} is
          automatically configured as result of DHCP, IPCP, or RA received DNS
          server information.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} This parameter specifies the IP interface over which
          the DNS query is sent. If {{empty}} is specified, the CPE MUST use
          its routing policy (Forwarding table entries), if necessary, to
          determine the appropriate interface. Note: {{param}} is only writable
          when {{param|Type}} is {{enum|Static|Type}}; otherwise, {{param}} is
          automatically configured as result of DHCP, IPCP, or RA received DNS
          server information.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Type" access="readOnly">
        <description>
          Method used to assign the {{param|DNSServer}} address. {{enum}} Table
          entries that are automatically created as result of DHCP, IPCP, or RA
          received DNS server information will have {{param}} set to
          {{enum|DHCPv4}}, {{enum|DHCPv6}}, {{enum|IPCP}}, or
          {{enum|RouterAdvertisement}}, as the case may be. Manually created
          table entires will have their {{param}} set to {{enum|Static}}.
        </description>
        <syntax>
          <string>
            <enumeration value="DHCP" status="deprecated">
              <description action="replace">Replaced by {{enum|DHCPv4}}.</description>
            </enumeration>
            <enumeration value="DHCPv4"/>
            <enumeration value="DHCPv6"/>
            <enumeration value="RouterAdvertisement"/>
            <enumeration value="IPCP"/>
            <enumeration value="Static"/>
          </string>
          <default type="object" value="Static"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DNS.Relay." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        DNS Relay object. The DNS proxy (or relay) function allows the
        forwarding of local network DNS queries to local or external DNS
        server(s) {{bibref|RFC5625}}.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the DNS Relay function.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of the DNS relay. {{enum}} 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="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

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

    <object name="Device.DNS.Relay.Forwarding.{i}." access="readWrite"
        numEntriesParameter="ForwardNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        DNS Server forwarding policy to be used by the DNS Relay. Entries are
        either automatically created as result of DHCP (v4 or v6), IPCP, or RA
        received DNS server information, or are statically configured by the
        ACS. Note: Management of re-directing queries to the device embedded
        DNS server is not defined in this version of the specification.
      </description>
      <uniqueKey>
        <parameter ref="DNSServer"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}} 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="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="DNSServer" access="readWrite">
        <description>
          DNS server IP addresses. Note: {{param}} is only writable when
          {{param|Type}} is {{enum|Static|Type}}; otherwise, {{param}} is
          automatically configured as result of DHCP, IPCP, or RA received DNS
          server information.
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} Specifies the IP interface over which the DNS query is
          sent. If {{empty}} is specified, the CPE MUST use its routing policy
          (IP Forwarding table entries), if necessary, to determine the
          appropriate interface. Note: {{param}} is only writable when
          {{param|Type}} is {{enum|Static|Type}}; otherwise, {{param}} is
          automatically configured as result of DHCP, IPCP, or RA received DNS
          server information.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Type" access="readOnly">
        <description>
          Method used to assign the {{param|DNSServer}} address. {{enum}} Table
          entries that are automatically created as result of DHCP, IPCP, or RA
          received DNS server information will have {{param}} set to
          {{enum|DHCPv4}}, {{enum|DHCPv6}}, {{enum|IPCP}}, or
          {{enum|RouterAdvertisement}}, as the case may be. Manually created
          table entires will have their {{param}} set to {{enum|Static}}.
        </description>
        <syntax>
          <string>
            <enumeration value="DHCP" status="deprecated">
              <description action="replace">Replaced by {{enum|DHCPv4}}.</description>
            </enumeration>
            <enumeration value="DHCPv4"/>
            <enumeration value="DHCPv6"/>
            <enumeration value="RouterAdvertisement"/>
            <enumeration value="IPCP"/>
            <enumeration value="Static"/>
          </string>
          <default type="object" value="Static"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DNS.Diagnostics." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        The DNS Diagnostics object containing the
        {{object|NSLookupDiagnostics}} test.
      </description>
    </object>

    <object name="Device.DNS.Diagnostics.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.DNS.Diagnostics.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.NAT." access="readOnly" minEntries="1" maxEntries="1">
      <description>
        Properties for Network Address Translation (NAT). The entire {{object}}
        object only applies to IPv4.
      </description>

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

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

    <object name="Device.NAT.InterfaceSetting.{i}." access="readWrite"
        numEntriesParameter="InterfaceSettingNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        NAT settings for an associated IP Interface on which NAT is enabled.
        For enabled table entries, if {{param|Interface}} is not a valid
        reference then the table entry is inoperable and the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}}. Note: The
        {{object}} table includes a unique key parameter that is a strong
        reference. If a strongly referenced object is deleted, the CPE will set
        the referencing parameter to {{empty}}. However, doing so under these
        circumstances might cause the updated {{object}} row to then violate
        the table's unique key constraint; if this occurs, the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}} and disable the
        offending {{object}} row.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="Interface"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the {{object}} entry, indicating if NAT is
          enabled for the referenced IP Interface instance. On creation, an
          {{object}} entry is disabled by default.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}} The {{enum|Error_Misconfigured}}
          value indicates that a necessary configuration value is undefined or
          invalid. 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="Enabled"/>
            <enumeration value="Enabled_PortMappingDisabled">
              <description>
                NAT enabled but port mapping has been operationally disabled by
                a third party, e.g. because this is REQUIRED by the current
                {{object|##.Firewall}} level.
              </description>
            </enumeration>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} The associated IP interface on which NAT is to be
          enabled.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.NAT.PortMapping.{i}." access="readWrite"
        numEntriesParameter="PortMappingNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        Port mapping table. This table MUST contain all NAT port mappings
        associated with this connection, including static and dynamic port
        mappings programmatically created via local control protocol, such as
        UPnP. This table MUST NOT contain dynamic NAT binding entries
        associated with the normal operation of NAT. If the CPE hosts a
        firewall, it is assumed that it will appropriately configure the
        firewall for the port mapping. For enabled table entries, if
        {{param|InternalClient}} is {{empty}} then the table entry is
        inoperable and the CPE MUST set {{param|Status}} to
        {{enum|Error_Misconfigured|Status}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="RemoteHost"/>
        <parameter ref="ExternalPort"/>
        <parameter ref="Protocol"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the port mapping instance. On creation, an entry
          is disabled by default.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}} The {{enum|Error_Misconfigured}}
          value indicates that a necessary configuration value is undefined or
          invalid. 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="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny">
        <description>
          {{datatype|expand}} Note: There is no guarantee that the {{param}}
          value on automatically-created {{object}} instances will be retained.
          This is because automatically-created {{object}} instances can be
          transitory.
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} Specifies the IP interface to which this port mapping
          applies.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="AllInterfaces" access="readWrite">
        <description>
          Indicates whether this port mapping applies to all IP interfaces that
          support port mappings. If {{true}}, the value of {{param|Interface}}
          is ignored since all supported IP interfaces are indicated.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="LeaseDuration" access="readWrite"
          activeNotify="canDeny">
        <description>
          Determines the time to live, in {{units}}, of a port mapping lease,
          where "time to live" means the number of seconds before the port
          mapping expires. A value of 0 means the port mapping is static.
          Support for dynamic (non-static) port mappings is OPTIONAL. That is,
          the only value for {{param}} that MUST be supported is 0. For a
          dynamic (non-static) port mapping, when this parameter is read, the
          value represents the time remaining on the port mapping lease. That
          is, for a dynamic port mapping, the value counts down toward 0. When
          a dynamic port mapping lease expires, the CPE MUST automatically
          terminate that port mapping, and MUST automatically delete the
          corresponding {{object}} table entry.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="RemoteHost" access="readWrite">
        <description>
          This parameter is the IP address of the source of inbound packets.
          {{empty}} indicates a "wildcard", i.e. any IP address (this will be
          {{empty}} in most cases). CPE are REQUIRED only to support {{empty}}.
          When {{param}} is {{empty}}, all traffic sent to the
          {{param|ExternalPort}} on the WAN interface of the gateway is
          forwarded to the {{object|.IP.Interface}} associated with the
          {{param|InternalClient}} on the {{param|InternalPort}}. When
          {{param}} is specified as one external IP address, the NAT will only
          forward inbound packets from this {{param}} to the
          {{param|InternalClient}}, all other packets will be dropped. If a CPE
          supports non-empty values for {{param}}, it MAY additionally support
          the ability to have more than one port mapping with the same
          {{param|ExternalPort}} and {{param|Protocol}}, but with differing
          values of {{param}}. When wildcard values are used for {{param}}
          and/or {{param|ExternalPort}}, the following precedence order applies
          (with the highest precedence listed first):

          # Explicit {{param}}, explicit {{param|ExternalPort}}

          # Explicit {{param}}, zero {{param|ExternalPort}}

          # Empty {{param}}, explicit {{param|ExternalPort}}

          # Empty {{param}}, zero {{param|ExternalPort}} If an incoming packet
            matches the criteria associated with more than one entry in this
            table, the CPE MUST apply the port mapping associated with the
            highest precedence entry.
        </description>
        <syntax>
          <string/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ExternalPort" access="readWrite">
        <description>
          The external port (or the first port of a range of external ports)
          that the NAT gateway would listen on for connection requests to a
          corresponding {{param|InternalPort}}. Inbound packets to this
          external port on the WAN interface SHOULD be forwarded to the
          {{object|.IP.Interface}} associated with the {{param|InternalClient}}
          on the {{param|InternalPort}}. A value of zero ({{null}}) represents
          a "wildcard", i.e. any port number. If this value is {{null}},
          connection requests on all external ports (that are not otherwise
          mapped) will be forwarded to {{param|InternalClient}}, and the
          value(s) of {{param|InternalPort}} on {{param|InternalClient}} are
          ignored. When wildcard values are used for {{param|RemoteHost}}
          and/or {{param}}, the following precedence order applies (with the
          highest precedence listed first):

          # Explicit {{param|RemoteHost}}, explicit {{param}}

          # Explicit {{param|RemoteHost}}, zero {{param}}

          # Empty {{param|RemoteHost}}, explicit {{param}}

          # Empty {{param|RemoteHost}}, zero {{param}} If an incoming packet
            matches the criteria associated with more than one entry in this
            table, the CPE MUST apply the port mapping associated with the
            highest precedence entry.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="ExternalPortEndRange" access="readWrite">
        <description>
          Indicates the last port of the external port range that starts with
          {{param|ExternalPort}}. If an external port range is specified, then
          the behavior described for {{param|ExternalPort}} applies to all
          ports within the range. A value of zero (0) indicates that no
          external port range is specified, i.e. that the range consists only
          of {{param|ExternalPort}}. If {{param|ExternalPort}} is zero
          (wildcard), the value of this parameter MUST be ignored. If
          specified, the value of this parameter MUST be greater than or equal
          to the value of {{param|ExternalPort}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="InternalPort" access="readWrite">
        <description>
          The port on {{param|InternalClient}} that the gateway SHOULD forward
          connection requests to.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          The protocol of the port mapping. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="TCP"/>
            <enumeration value="UDP"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="InternalClient" access="readWrite">
        <description>
          The IP address or DNS host name of an internal client (on the LAN).
          Support for an IP address is mandatory. If {{param}} is specified as
          an IP address and the LAN device's IP address subsequently changes,
          the port mapping MUST remain associated with the original IP address.
          Support for DNS host names is OPTIONAL. If {{param}} is specified as
          a DNS host name and the LAN device's IP address subsequently changes,
          the port mapping MUST remain associated with this LAN device. In this
          case, it is the responsibility of the CPE to maintain the
          name-to-address mapping in the event of IP address changes. This can
          be accomplished, for example, by assigning the DNS host name via use
          of DHCP option 12 (Host Name) or option 81 (FQDN). Note that the ACS
          can learn the host name associated with a given LAN device via the
          {{object|.Hosts.Host.}} table. Read access to this parameter MUST
          always return the exact value that was last set by the ACS. For
          example, if the internal client is set to a DNS host name, it MUST
          read back as a DNS host name and not as an IP address. It MUST be
          possible to set the {{param}} to the broadcast IP address
          255.255.255.255 for UDP mappings. This is to enable multiple NAT
          clients to use the same well-known port simultaneously.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Description" access="readWrite">
        <description>
          User-readable description of this port mapping.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv4." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        The Dynamic Host Configuration Protocol (DHCP) IPv4 object
        {{bibref|RFC2131}}. This entire object applies to IPv4 only. It
        contains the {{object|Client}}, {{object|Server}}, and {{object|Relay}}
        objects.
      </description>

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

    <object name="Device.DHCPv6." access="readOnly" minEntries="1"
        maxEntries="1" dmr:previousObject="Device.DHCPv4.">
      <description>
        The Dynamic Host Configuration Protocol (DHCP) IPv6 object
        {{bibref|RFC3315}}. This entire object applies to IPv6 only. It
        contains the {{object|Client}} and {{object|Server}} objects.
      </description>

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

    <object name="Device.DHCPv6.Client.{i}." access="readWrite"
        numEntriesParameter="ClientNumberOfEntries" enableParameter="Enable"
        minEntries="1" maxEntries="unbounded">
      <description>
        This object contains DHCPv6 client settings for an associated ''IP
        Interface'' indicated by {{param|Interface}}. For enabled table
        entries, if {{param|Interface}} is not a valid reference to an
        IPv6-capable interface (that is attached to the IPv6 stack), then the
        table entry is inoperable and the CPE MUST set {{param|Status}} to
        {{enum|Error_Misconfigured|Status}}. Note: The {{object}} table
        includes a unique key parameter that is a strong reference. If a
        strongly referenced object is deleted, the CPE will set the referencing
        parameter to {{empty}}. However, doing so under these circumstances
        might cause the updated {{object}} row to then violate the table's
        unique key constraint; if this occurs, the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}} and disable the
        offending {{object}} row.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="Interface"/>
      </uniqueKey>

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

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

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} The IP Interface associated with the {{object}} entry.
          This will reference an IPv6-capable interface (that is attached to
          the IPv6 stack), otherwise the table entry will be inoperable.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this table entry. {{enum}} The
          {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid. 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="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="DUID" access="readOnly">
        <description>
          The client's DHCP Unique Identifier (DUID) {{bibref|RFC3315|Section
          9}}. {{param}} is set by the CPE.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="130"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="RequestAddresses" access="readWrite">
        <description>
          Enables or disables inclusion of the ''Identity Association (IA) for
          Non-Temporary Address'' option OPTION_IA_NA(3)
          {{bibref|RFC3315|Section 22.4}} in Solicit messages.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="RequestPrefixes" access="readWrite">
        <description>
          Enables or disables inclusion of the ''Identity Association (IA) for
          Prefix Delegation'' option OPTION_IA_PD(25) {{bibref|RFC3633|Section
          10}} in Solicit messages. Note that this is only appropriate for an
          upstream interface on a requesting router, e.g. for an RG WAN
          interface.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="RapidCommit" access="readWrite">
        <description>
          Enables or disables inclusion of the ''Rapid Commit'' option
          OPTION_RAPID_COMMIT(14) {{bibref|RFC3315|Section 22.14}} in Solicit
          messages.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Renew" access="readWrite">
        <description>
          When set to {{true}}, the {{object}} will renew its DHCPv6-supplied
          information (i.e. the CPE will do a renew or information request as
          needed, updating both stateful and stateless parameter values
          discovered by this Client instance).
        </description>
        <syntax command="true">
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SuggestedT1" access="readWrite">
        <description>
          T1 value, in {{units}}, that the client SHOULD use when sending IA
          options, e.g. OPTION_IA_NA {{bibref|RFC3315|Section 22.4}} and
          OPTION_IA_PD {{bibref|RFC3633|Section 10}}. A value of -1 indicates
          that no T1 value is specified.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="seconds"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="SuggestedT2" access="readWrite">
        <description>
          T2 value, in {{units}}, that the client SHOULD use when sending IA
          options, e.g. OPTION_IA_NA {{bibref|RFC3315|Section 22.4}} and
          OPTION_IA_PD {{bibref|RFC3633|Section 10}}. A value of -1 indicates
          that no T2 value is specified.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="seconds"/>
          </int>
        </syntax>
      </parameter>

      <parameter name="SupportedOptions" access="readOnly">
        <description>
          {{list}} The options that the client is able to process in server
          responses. This list MUST include both top-level and encapsulated
          options, e.g. if the client is able to process OPTION_IA_NA (3) with
          an encapsulated OPTION_IAADDR (5), the list would be expected to
          include both 3 and 5.
        </description>
        <syntax>
          <list/>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="RequestedOptions" access="readWrite">
        <description>
          {{list}} An ordered list of the top-level options (i.e. not
          encapsulated options) that the client will explicitly request from
          the server. This parameter is intended only for options that are not
          necessary for the basic operation of the protocol, and are not
          modeled elsewhere. For example, it is appropriate for
          OPTION_DNS_SERVERS {{bibref|RFC3646}} but is not appropriate for
          OPTION_SERVERID (which is part of the protocol), OPTION_IA_NA (which
          is modeled via {{param|RequestAddresses}}) or OPTION_IA_PD (which is
          modeled via {{param|RequestPrefixes}}). However, the CPE MUST NOT
          reject an attempt to set this parameter to a value that includes
          options that it regards as inappropriate; instead, it MUST accept the
          requested options and handle them as best it can. Loosely speaking,
          these are the options that the client will include in OPTION_ORO
          {{bibref|RFC3315}} but the client is free to decide (in accordance
          with {{bibref|RFC3315}}) in which messages to request which option,
          whether also to request additional options, whether not to request
          inappropriate options, and in which order to request any options that
          are also in {{param|SupportedOptions}}.
        </description>
        <syntax>
          <list/>
          <unsignedInt/>
        </syntax>
      </parameter>

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

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

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

    <object name="Device.DHCPv6.Client.{i}.Server.{i}." access="readOnly"
        numEntriesParameter="ServerNumberOfEntries" minEntries="0"
        maxEntries="unbounded">
      <description>
        This is a transitory table that lists the discovered DHCPv6 servers (it
        does ''not'' model a local DHCP server). Table entries are
        automatically created to correspond with these servers. However, it is
        a local matter to the CPE when to delete old table entries.
      </description>
      <uniqueKey>
        <parameter ref="SourceAddress"/>
      </uniqueKey>

      <parameter name="SourceAddress" access="readOnly">
        <description>
          The IP address from which the message most recently received from
          this server was sent.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>

      <parameter name="DUID" access="readOnly">
        <description>
          The server's DHCP Unique Identifier (DUID) {{bibref|RFC3315|Section
          9}} as received via OPTION_SERVERID.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="130"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="InformationRefreshTime" access="readOnly">
        <description>
          The OPTION_INFORMATION_REFRESH_TIME value {{bibref|RFC4242}} that was
          most recently received from this server, converted to the
          ''dateTime'' at which the associated information will expire. If no
          such option has been received, the parameter value MUST be the
          "Unknown Time" {{null}}. If the information will never expire, the
          parameter value MUST be infinite time 9999-12-31T23:59:59Z.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv6.Client.{i}.SentOption.{i}." access="readWrite"
        numEntriesParameter="SentOptionNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        The top-level options and option values (including any encapsulated
        options) that the client will send to the server. This table is
        intended only for options that are not part of the basic operation of
        the protocol, and whose values are simple, do not often change and are
        not modeled elsewhere. For example, it is appropriate for
        OPTION_USER_CLASS (whose value is a list of user classes) but is not
        appropriate for OPTION_RECONF_MSG (which is part of the protocol),
        OPTION_IA_NA (which is modeled via {{param|#.RequestAddresses}}) or
        OPTION_RAPID_COMMIT (which is modeled via {{param|#.RapidCommit}}).
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="Tag"/>
      </uniqueKey>

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

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

      <parameter name="Tag" access="readWrite">
        <description>
          Option tag (code) {{bibref|RFC3315|Section 22.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readWrite">
        <description>
          A hexbinary encoded option data {{bibref|RFC3315|Section 22.1}}.
          Note: The length of the option data is ''option-len'' octets, as
          specified in {{bibref|RFC3315|Section 22.1}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv6.Client.{i}.ReceivedOption.{i}."
        access="readOnly" numEntriesParameter="ReceivedOptionNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true">
      <description>
        This is a transitory table that lists all the options received from all
        servers. Table entries are automatically created to correspond with
        received options. However, it is a local matter to the CPE when to
        delete old table entries. If the same option is received multiple
        times, whether from one or more servers, it is up to the CPE to decide
        which entries to include (i.e. whether the same option will be present
        multiple times). In order to allow for the same option to be present
        multiple times within the table, this table has no unique key defined.
      </description>

      <parameter name="Tag" access="readOnly">
        <description>
          Option tag (code) {{bibref|RFC3315|Section 22.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readOnly">
        <description>
          A hexbinary encoded option data {{bibref|RFC3315|Section 22.1}}.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="65535"/>
          </hexBinary>
        </syntax>
      </parameter>

      <parameter name="Server" access="readOnly">
        <description>
          {{reference}} This is the server that sent the option to the client.
          Each {{object}} entry MUST have an associated server.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent="#.Server."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

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

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the DHCPv6 server function.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

    <object name="Device.DHCPv6.Server.Pool.{i}." access="readWrite"
        numEntriesParameter="PoolNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        DHCPv6 server pool table. Each instance of this object defines a DHCPv6
        server pool. Client requests are associated with pools based on
        criteria such as source interface, supplied DHCPv6 options, and source
        address. Overlapping pool ranges MUST be supported. For enabled table
        entries, if {{param|Interface}} is not a valid reference to an
        IPv6-capable interface (that is attached to the IPv6 stack) then the
        table entry is inoperable and the CPE MUST set {{param|Status}} to
        {{enum|Error_Misconfigured|Status}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="Order"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}} The {{enum|Error_Misconfigured}}
          value indicates that a necessary configuration value is undefined or
          invalid. 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="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="Order" access="readWrite">
        <description>
          Position of the {{object}} entry in the order of precedence. A value
          of ''1'' indicates the first entry considered (highest precedence).
          For each DHCPv6 request, the highest ordered entry that matches the
          association criteria is applied. All lower order entries are ignored.
          When this value is modified, if the value matches that of an existing
          entry, the {{param}} value for the existing entry and all lower
          {{param}} entries is incremented (lowered in precedence) to ensure
          uniqueness of this value. A deletion causes {{param}} values to be
          compacted. When a value is changed, incrementing occurs before
          compaction. The value of {{param}} on creation of a {{object}} table
          entry MUST be one greater than the largest current value (initially
          assigned the lowest precedence).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} The IP Interface associated with the {{object}} entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DUID" access="readWrite">
        <description>
          Pool association criterion. A hexbinary string used to identify one
          or more LAN devices, value of the DHCPv6 Client Identifier (Option 1)
          {{bibref|RFC3315|Section 22.2}}. The option value is binary, so an
          exact match is REQUIRED. {{empty}} indicates this criterion is not
          used.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="130"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DUIDExclude" access="readWrite">
        <description>
          If {{false}}, matching packets are those that match the
          {{param|DUID}} entry, if specified. If {{true}}, matching packets are
          those that do not match the {{param|DUID}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="VendorClassID" access="readWrite">
        <description>
          Pool association criterion. A hexbinary string used to identify one
          or more LAN devices, value of the DHCPv6 Vendor Class Identifier
          (Option 16) {{bibref|RFC3315|Section 22.16}}. The option value is
          binary, so an exact match is REQUIRED. {{empty}} indicates this
          criterion is not used.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="VendorClassIDExclude" access="readWrite">
        <description>
          If {{false}}, matching packets are those that match the
          {{param|VendorClassID}} entry, if specified. If {{true}}, matching
          packets are those that do not match the {{param|VendorClassID}}
          entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="UserClassID" access="readWrite">
        <description>
          Pool association criterion. A hexbinary string used to identify one
          or more LAN devices, value of the DHCPv6 User Class Identifier
          (Option 15) {{bibref|RFC3315|Section 22.15}}. {{empty}} indicates
          this criterion is not used.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="UserClassIDExclude" access="readWrite">
        <description>
          If {{false}}, matching packets are those that match the
          {{param|UserClassID}} entry, if specified. If {{true}}, matching
          packets are those that do not match the {{param|UserClassID}} entry,
          if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourceAddress" access="readWrite">
        <description>
          Pool association criterion. Source address (link-layer address) of
          DHCPv6 messages sent from the DHCPv6 client. This criterion is only
          likely to be useful if this is a link-layer address. {{empty}}
          indicates this criterion is not used for serving.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceAddressMask" access="readWrite">
        <description>
          Bit-mask for the source address, where matching of a packet's source
          address with the {{param|SourceAddress}} is only to be done for bit
          positions set to one in the mask. A mask of {{empty}} indicates all
          bits of the {{param|SourceAddress}} are to be used.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceAddressExclude" access="readWrite">
        <description>
          If {{false}}, matching packets are those that match the (masked)
          {{param|SourceAddress}} entry, if specified. If {{true}}, matching
          packets are those that do not match the (masked)
          {{param|SourceAddress}} entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="IANAEnable" access="readWrite">
        <description>
          Enables or disables IANA offers.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IANAManualPrefixes" access="readWrite">
        <description>
          {{list}} {{reference}} Manually-configured prefixes from which IA_NA
          addresses will be assigned. Each referenced prefix MUST have a
          {{param|.IP.Interface.{i}.IPv6Prefix.{i}.StaticType}} of
          {{enum|Static|.IP.Interface.{i}.IPv6Prefix.{i}.StaticType}} or
          {{enum|Child|.IP.Interface.{i}.IPv6Prefix.{i}.StaticType}}. All
          clients that request IA_NA and match filter criteria on this
          {{param|Interface}} MUST be offered IA_NA addresses from all of the
          ''Valid'' ({{param|.IP.Interface.{i}.IPv6Prefix.{i}.ValidLifetime}}
          is infinite or in the future) /64 prefixes in this list. Prefixes
          MUST be associated with the interface instance referenced by
          {{param|Interface}}.
        </description>
        <syntax>
          <list maxItems="8"/>
          <string>
            <pathRef refType="strong"
                targetParent=".IP.Interface.{i}.IPv6Prefix." targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="IANAPrefixes" access="readOnly">
        <description>
          {{list}} {{reference}} All prefixes from which IA_NA addresses will
          be assigned. This list can include:

          * Prefixes from {{param|IANAManualPrefixes}} that are used for IA_NA
            offers.

          * Prefixes with {{param|.IP.Interface.{i}.IPv6Prefix.{i}.Origin}} =
            {{enum|Child|.IP.Interface.{i}.IPv6Prefix.{i}.Origin}} or
            {{enum|AutoConfigured|.IP.Interface.{i}.IPv6Prefix.{i}.Origin}}
            associated with the interface instance referenced by
            {{param|Interface}}.
        </description>
        <syntax>
          <list maxItems="8"/>
          <string>
            <pathRef refType="strong"
                targetParent=".IP.Interface.{i}.IPv6Prefix." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IAPDEnable" access="readWrite">
        <description>
          Enables or disables IAPD offers.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="IAPDManualPrefixes" access="readWrite">
        <description>
          {{list}} {{reference}} Manually-configured prefixes from which IA_PD
          prefixes will be derived. This list can include:

          * Prefixes with {{param|.IP.Interface.{i}.IPv6Prefix.{i}.Origin}} =
            {{enum|Static|.IP.Interface.{i}.IPv6Prefix.{i}.Origin}} or
            {{enum|PrefixDelegation|.IP.Interface.{i}.IPv6Prefix.{i}.Origin}}
            associated with upstream interfaces (i.e. interfaces for which the
            physical layer interface object has ''Upstream'' = {{true}}).

          * Prefixes with {{param|.IP.Interface.{i}.IPv6Prefix.{i}.StaticType}}
            = {{enum|Static|.IP.Interface.{i}.IPv6Prefix.{i}.StaticType}} or
            {{enum|Child|.IP.Interface.{i}.IPv6Prefix.{i}.StaticType}}
            associated with with the interface instance referenced by
            {{param|Interface}}. All clients that request IA_PD and match
            filter criteria on this {{param|Interface}} MUST be offered IA_PD
            prefixes derived from all of the ''Valid''
            ({{param|.IP.Interface.{i}.IPv6Prefix.{i}.ValidLifetime}} is
            infinite or in the future) prefixes in this list.
        </description>
        <syntax>
          <list maxItems="8"/>
          <string>
            <pathRef refType="strong"
                targetParent=".IP.Interface.{i}.IPv6Prefix." targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="IAPDPrefixes" access="readOnly">
        <description>
          {{list}} {{reference}} All prefixes for which IA_PD prefixes will be
          assigned. This list can include:

          * Prefixes from {{param|IAPDManualPrefixes}} that are used for IA_PD
            offers.

          * Prefixes with {{param|.IP.Interface.{i}.IPv6Prefix.{i}.Origin}} =
            {{enum|PrefixDelegation|.IP.Interface.{i}.IPv6Prefix.{i}.Origin}}
            or {{enum|AutoConfigured|.IP.Interface.{i}.IPv6Prefix.{i}.Origin}}
            associated with upstream interfaces (i.e. interfaces for which the
            physical layer interface object has ''Upstream'' = {{true}}).

          * Prefixes with {{param|.IP.Interface.{i}.IPv6Prefix.{i}.Origin}} =
            {{enum|Child|.IP.Interface.{i}.IPv6Prefix.{i}.Origin}} or
            {{enum|AutoConfigured|.IP.Interface.{i}.IPv6Prefix.{i}.Origin}}
            associated with the interface instance referenced by
            {{param|Interface}}.
        </description>
        <syntax>
          <list maxItems="8"/>
          <string>
            <pathRef refType="strong"
                targetParent=".IP.Interface.{i}.IPv6Prefix." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IAPDAddLength" access="readWrite">
        <description>
          The RECOMMENDED minimum number of bits to add to
          {{param|IAPDManualPrefixes}} or {{param|IAPDPrefixes}} in order to
          determine the length of prefixes that are offered in an IA_PD. The
          device is responsible for ensuring that it does not delegate a prefix
          longer than /64. The device can have additional logic that is used
          (in conjunction with this parameter) to determine the actual length
          of prefixes offered in an IA_PD.
        </description>
        <syntax>
          <unsignedInt>
            <range maxInclusive="64"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

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

    <object name="Device.DHCPv6.Server.Pool.{i}.Client.{i}." access="readOnly"
        numEntriesParameter="ClientNumberOfEntries" minEntries="0"
        maxEntries="unbounded">
      <description>
        DHCPv6 client table. This table lists details of DHCPv6 clients that
        matched the filter criteria of this {{object|#}} entry.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="SourceAddress"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny">
        <description>
          {{datatype|expand}} Note: There is no guarantee that the {{param}}
          value on automatically-created {{object}} instances will be retained.
          This is because automatically-created {{object}} instances can be
          transitory.
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>

      <parameter name="SourceAddress" access="readOnly">
        <description>
          Source address of the DHCPv6 client.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>

      <parameter name="Active" access="readOnly">
        <description>
          Whether or not the DHCPv6 client is currently present on the LAN. The
          method of presence detection is a local matter to the CPE. The
          ability to list inactive DHCPv6 clients is OPTIONAL. If the CPE
          includes inactive DHCPv6 clients in this table, {{param}} MUST be set
          to {{false}} for each inactive DHCPv6 client. The length of time an
          inactive DHCPv6 client remains listed in this table is a local matter
          to the CPE.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

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

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

    <object name="Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}."
        access="readOnly" numEntriesParameter="IPv6AddressNumberOfEntries"
        minEntries="0" maxEntries="unbounded">
      <description>
        IPv6 addresses assigned to this client via IA_NA.
      </description>
      <uniqueKey>
        <parameter ref="IPAddress"/>
      </uniqueKey>

      <parameter name="IPAddress" access="readOnly">
        <description>
          IPv6 address.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>

      <parameter name="PreferredLifetime" access="readOnly">
        <description>
          The time at which this address will cease to be preferred (i.e. will
          become deprecated), or {{null}} if not known. For an infinite
          lifetime, the parameter value MUST be 9999-12-31T23:59:59Z.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ValidLifetime" access="readOnly">
        <description>
          The time at which this address will cease to be valid (i.e. will
          become invalid), or {{null}} if unknown. For an infinite lifetime,
          the parameter value MUST be 9999-12-31T23:59:59Z.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}."
        access="readOnly" numEntriesParameter="IPv6PrefixNumberOfEntries"
        minEntries="0" maxEntries="unbounded">
      <description>
        IPv6 prefixes delegated to this client via IA_PD.
      </description>
      <uniqueKey>
        <parameter ref="Prefix"/>
      </uniqueKey>

      <parameter name="Prefix" access="readOnly">
        <description>
          IPv6 address prefix.
        </description>
        <syntax>
          <dataType ref="IPv6Prefix"/>
        </syntax>
      </parameter>

      <parameter name="PreferredLifetime" access="readOnly">
        <description>
          The time at which this prefix will cease to be preferred (i.e. will
          become deprecated), or {{null}} if not known. For an infinite
          lifetime, the parameter value MUST be 9999-12-31T23:59:59Z.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ValidLifetime" access="readOnly">
        <description>
          The time at which this prefix will cease to be valid (i.e. will
          become invalid), or {{null}} if unknown. For an infinite lifetime,
          the parameter value MUST be 9999-12-31T23:59:59Z.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv6.Server.Pool.{i}.Client.{i}.Option.{i}."
        access="readOnly" numEntriesParameter="OptionNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true">
      <description>
        DHCPv6 options supplied by this client, e.g. ''DUID'' (Option 1),
        ''UserClassID'' (Option 15) or ''VendorClassID'' (option 16).
      </description>

      <parameter name="Tag" access="readOnly">
        <description>
          Option tag (code) {{bibref|RFC3315|Section 22.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readOnly">
        <description>
          A hexbinary encoded option value.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="65535"/>
          </hexBinary>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv6.Server.Pool.{i}.Option.{i}."
        access="readWrite" numEntriesParameter="OptionNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        This object specifies the DHCPv6 options that MUST, if enabled, be
        offered to clients whose DHCPv6 requests are associated with this pool.
        If {{param|PassthroughClient}} is specified, and the referenced client
        has a value for a given option then the {{param|PassthroughClient}}
        option value will be sent instead of {{param|Value}}. Otherwise,
        {{param|Value}} will be sent.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="Tag"/>
      </uniqueKey>

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

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

      <parameter name="Tag" access="readWrite">
        <description>
          Option tag (code) {{bibref|RFC3315|Section 22.1}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="65535"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readWrite">
        <description>
          A hexbinary encoded option value.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="65535"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="PassthroughClient" access="readWrite">
        <description>
          {{reference}} Indicates whether this {{object}} entry is configured
          for passthrough. If {{param}} is specified, and the referenced client
          (since boot) has received a value from an associated upstream DHCPv6
          server for the given {{param|Tag}} option, then the referenced
          client's option value will be sent instead of {{param|Value}}.
          Otherwise, {{param|Value}} will be sent. {{empty}} indicates that
          passthrough is not configured for this {{object}} entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="###.Client."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv4.Client.{i}." access="readWrite"
        numEntriesParameter="ClientNumberOfEntries" enableParameter="Enable"
        minEntries="1" maxEntries="unbounded">
      <description>
        This object contains DHCP client settings for an associated ''IP
        Interface'' indicated by {{param|Interface}}. For enabled table
        entries, if {{param|Interface}} is not a valid reference then the table
        entry is inoperable and the CPE MUST set {{param|Status}} to
        {{enum|Error_Misconfigured|Status}}. Note: The {{object}} table
        includes a unique key parameter that is a strong reference. If a
        strongly referenced object is deleted, the CPE will set the referencing
        parameter to {{empty}}. However, doing so under these circumstances
        might cause the updated {{object}} row to then violate the table's
        unique key constraint; if this occurs, the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}} and disable the
        offending {{object}} row.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="Interface"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the DHCP Client entry.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

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

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} The IP Interface associated with the ''Client'' entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this table entry. {{enum}} The
          {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid. 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="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="DHCPStatus" access="readOnly">
        <description>
          The DHCP Client status as defined in {{bibref|RFC2131}}. {{enum}}
          Note: This value is only relevant when the DHCP Client is
          operationally enabled (i.e. when {{param|Status}} is
          {{enum|Enabled|Status}}).
        </description>
        <syntax>
          <string>
            <enumeration value="Init"/>
            <enumeration value="Selecting"/>
            <enumeration value="Requesting"/>
            <enumeration value="Rebinding"/>
            <enumeration value="Bound"/>
            <enumeration value="Renewing"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Renew" access="readWrite">
        <description>
          When set to {{true}}, the DHCP client will renew its DHCP lease.
        </description>
        <syntax hidden="true" command="true">
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="IPAddress" access="readOnly">
        <description>
          IPv4 Address option received from the DHCP Server. {{empty}} when
          {{param|Status}} is not equal to {{enum|Bound|DHCPStatus}}.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SubnetMask" access="readOnly">
        <description>
          Subnet mask option received from the DHCP Server. {{empty}} when
          {{param|Status}} is not equal to {{enum|Bound|DHCPStatus}}. Value is
          information received via DHCP Option 1.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="IPRouters" access="readOnly">
        <description>
          {{list}} Items represent IP Router IPv4 Address(es) received from the
          DHCP server. {{empty}} when {{param|Status}} is not equal to
          {{enum|Bound|DHCPStatus}}. Value is information received via DHCP
          Options 3, 33 or 121.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <dataType ref="IPv4Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DNSServers" access="readOnly">
        <description>
          {{list}} Items represent DNS Server IPv4 Address(es) received from
          the DHCP server. {{empty}} when {{param|Status}} is not equal to
          {{enum|Bound|DHCPStatus}}. Value is information received via DHCP
          Option 6.
        </description>
        <syntax>
          <list>
            <size maxLength="256"/>
          </list>
          <dataType ref="IPv4Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="LeaseTimeRemaining" access="readOnly"
          activeNotify="canDeny">
        <description>
          DHCP lease time remaining in {{units}}. A value of -1 indicates an
          infinite lease.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="seconds"/>
          </int>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="DHCPServer" access="readOnly">
        <description>
          The IPv4 address of the current DHCP server.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="PassthroughEnable" access="readWrite">
        <description>
          If {{false}}, the DHCP Client retrieved IP address information is
          configured on the referenced {{param|Interface}} object. If {{true}},
          the DHCP Client retrieved information is propagated to the parameters
          in the referenced {{param|PassthroughDHCPPool}} object, replacing any
          existing configuration (including ''MinAddress'', ''MaxAddress'',
          ''SubnetMask'', ''IPRouters'', and ''DNSServers'').
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="PassthroughDHCPPool" access="readWrite">
        <description>
          {{reference}}When {{param}} is set to {{empty}},
          {{param|PassthroughEnable}} MUST be set to {{false}} (i.e.
          passthrough can not be enabled without a pool reference specified).
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent="#.Server.Pool."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

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

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

    <object name="Device.DHCPv4.Client.{i}.SentOption.{i}." access="readWrite"
        numEntriesParameter="SentOptionNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        Each instance of this object represents a DHCP option that MUST, if
        enabled, be sent in DHCP client requests. All sent DHCP options MUST be
        listed.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="Tag"/>
      </uniqueKey>

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

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

      <parameter name="Tag" access="readWrite">
        <description>
          Option tag as defined in {{bibref|RFC2132}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="254"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readWrite">
        <description>
          A hexbinary encoded option value.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="255"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv4.Client.{i}.ReqOption.{i}." access="readWrite"
        numEntriesParameter="ReqOptionNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        Each instance of this object represents a DHCP option that MUST, if
        enabled, be requested in DHCP client requests. All requested DHCP
        options MUST be listed.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="Tag"/>
      </uniqueKey>

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

      <parameter name="Order" access="readWrite">
        <description>
          Position of the option in the DHCP client request. A value of ''1''
          indicates the first entry. When this value is modified, if the value
          matches that of an existing entry, the {{param}} value for the
          existing entry and all lower {{param}} entries is incremented to
          ensure uniqueness of this value. A deletion causes {{param}} values
          to be compacted. When a value is changed, incrementing occurs before
          compaction. The value of {{param}} on creation of a {{object}} table
          entry MUST be one greater than the largest current value.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

      <parameter name="Tag" access="readWrite">
        <description>
          Option tag as defined in {{bibref|RFC2132}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="254"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readOnly">
        <description>
          A hexbinary encoded, most recently received DHCP option value. If no
          option value has been received, then the value MUST represent
          {{empty}}. Received DHCP option values MAY, but need not, persist
          across CPE reboots.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="255"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv4.Server." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        DHCP server configuration.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the DHCP server.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

    <object name="Device.DHCPv4.Server.Pool.{i}." access="readWrite"
        numEntriesParameter="PoolNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        DHCP conditional serving pool table. Each instance of this object
        defines a DHCP conditional serving pool. Client requests are associated
        with pools based on criteria such as source interface, supplied DHCP
        options, and MAC address. Overlapping pool ranges MUST be supported.
        For enabled table entries, if {{param|Interface}} is not a valid
        reference, or {{param|MinAddress}}, {{param|MaxAddress}}, or
        {{param|SubnetMask}} is not a valid value, then the table entry is
        inoperable and the CPE MUST set {{param|Status}} to
        {{enum|Error_Misconfigured|Status}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}} The {{enum|Error_Misconfigured}}
          value indicates that a necessary configuration value is undefined or
          invalid. 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="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="Order" access="readWrite">
        <description>
          Position of the {{object}} entry in the order of precedence. A value
          of ''1'' indicates the first entry considered (highest precedence).
          For each DHCP request, the highest ordered entry that matches the
          association criteria is applied. All lower order entries are ignored.
          When this value is modified, if the value matches that of an existing
          entry, the {{param}} value for the existing entry and all lower
          {{param}} entries is incremented (lowered in precedence) to ensure
          uniqueness of this value. A deletion causes {{param}} values to be
          compacted. When a value is changed, incrementing occurs before
          compaction. The value of {{param}} on creation of a {{object}} table
          entry MUST be one greater than the largest current value (initially
          assigned the lowest precedence).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} The IP Interface associated with the ''Pool'' entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="VendorClassID" access="readWrite">
        <description>
          Pool association criterion. Used to identify one or more LAN devices,
          value of the DHCP Vendor Class Identifier (Option 60) as defined in
          {{bibref|RFC2132}}, matched according to the criterion in
          {{param|VendorClassIDMode}}. Case sensitive. This is a normal string,
          e.g. "abc" is represented as "abc" and not say "616263" hex. However,
          if the value includes non-printing characters then such characters
          have to be represented using XML escapes, e.g. #x0a for line-feed.
          {{empty}} indicates this criterion is not used for conditional
          serving.
        </description>
        <syntax>
          <string>
            <size maxLength="255"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="VendorClassIDExclude" access="readWrite">
        <description>
          If {{false}}, matching packets are those that match the
          {{param|VendorClassID}} entry, if specified. If {{true}}, matching
          packets are those that do not match the {{param|VendorClassID}}
          entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="VendorClassIDMode" access="readWrite">
        <description>
          {{param|VendorClassID}} pattern match criterion. {{enum}} For
          example, if {{param|VendorClassID}} is "Example" then an Option 60
          value of "Example device" will match with {{param}} values of
          {{enum|Prefix}} or {{enum|Substring}}, but not with {{enum|Exact}} or
          {{enum|Suffix}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Exact"/>
            <enumeration value="Prefix"/>
            <enumeration value="Suffix"/>
            <enumeration value="Substring"/>
          </string>
          <default type="object" value="Exact"/>
        </syntax>
      </parameter>

      <parameter name="ClientID" access="readWrite">
        <description>
          Pool association criterion. A hexbinary string used to identify one
          or more LAN devices, value of the DHCP Client Identifier (Option 61)
          as defined in {{bibref|RFC2132}}. The option value is binary, so an
          exact match is REQUIRED. {{empty}} indicates this criterion is not
          used for conditional serving.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="255"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ClientIDExclude" access="readWrite">
        <description>
          If {{false}}, matching packets are those that match the
          {{param|ClientID}} entry, if specified. If {{true}}, matching packets
          are those that do not match the {{param|ClientID}} entry, if
          specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="UserClassID" access="readWrite">
        <description>
          Pool association criterion. A hexbinary string used to identify one
          or more LAN devices, value of the DHCP User Class Identifier (Option
          77) as defined in {{bibref|RFC3004}}. {{empty}} indicates this
          criterion is not used for conditional serving.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="255"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="UserClassIDExclude" access="readWrite">
        <description>
          If {{false}}, matching packets are those that match the
          {{param|UserClassID}} entry, if specified. If {{true}}, matching
          packets are those that do not match the {{param|UserClassID}} entry,
          if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Chaddr" access="readWrite">
        <description>
          Pool association criterion. Hardware address (MAC address) of the
          physical interface of the DHCP client. {{empty}} indicates this
          criterion is not used for conditional serving.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ChaddrMask" access="readWrite">
        <description>
          Bit-mask for the MAC address, where matching of a packet's MAC
          address with the {{param|Chaddr}} is only to be done for bit
          positions set to one in the mask. A mask of FF:FF:FF:FF:FF:FF or
          {{empty}} indicates all bits of the {{param|Chaddr}} are to be used
          for conditional serving classification.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ChaddrExclude" access="readWrite">
        <description>
          If {{false}}, matching packets are those that match the (masked)
          {{param|Chaddr}} entry, if specified. If {{true}}, matching packets
          are those that do not match the (masked) {{param|Chaddr}} entry, if
          specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="MinAddress" access="readWrite">
        <description>
          Specifies first IPv4 address in the pool to be assigned by the DHCP
          server on the LAN interface. The parameter value can be overwritten
          by dynamic values retrieved via a DHCP client with
          {{param|##.Client.{i}.PassthroughEnable}} or a PPP interface with
          {{param|.PPP.Interface.{i}.IPCP.PassthroughEnable}} equal to
          {{true}}.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>

      <parameter name="MaxAddress" access="readWrite">
        <description>
          Specifies last IPv4 address in the pool to be assigned by the DHCP
          server on the LAN interface. The parameter value can be overwritten
          by dynamic values retrieved via a DHCP client with
          {{param|##.Client.{i}.PassthroughEnable}} or a PPP interface with
          {{param|.PPP.Interface.{i}.IPCP.PassthroughEnable}} equal to
          {{true}}.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>

      <parameter name="ReservedAddresses" access="readWrite">
        <description>
          {{list}} List items represent addresses marked reserved from the
          address allocation pool.
        </description>
        <syntax>
          <list maxItems="32"/>
          <dataType ref="IPv4Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SubnetMask" access="readWrite">
        <description>
          Specifies the client's network subnet mask. The parameter value can
          be overwritten by dynamic values retrieved via a DHCP client with
          {{param|##.Client.{i}.PassthroughEnable}} or a PPP interface with
          {{param|.PPP.Interface.{i}.IPCP.PassthroughEnable}} equal to
          {{true}}.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>

      <parameter name="DNSServers" access="readWrite">
        <description>
          {{list}} List items represent DNS servers offered to DHCP clients.
          Support for more than three DNS Servers is OPTIONAL. The parameter
          value can be overwritten by dynamic values retrieved via a DHCP
          client with {{param|##.Client.{i}.PassthroughEnable}} or a PPP
          interface with {{param|.PPP.Interface.{i}.IPCP.PassthroughEnable}}
          equal to {{true}}.
        </description>
        <syntax>
          <list maxItems="4"/>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>

      <parameter name="DomainName" access="readWrite">
        <description>
          Sets the domain name to provide to clients on the LAN interface.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="IPRouters" access="readWrite">
        <description>
          {{list}} List items represent addresses of routers on this subnet.
          Also known as default gateway. Support for more than one Router
          address is OPTIONAL. The parameter value can be overwritten by
          dynamic values retrieved via a DHCP client with
          {{param|##.Client.{i}.PassthroughEnable}} or a PPP interface with
          {{param|.PPP.Interface.{i}.IPCP.PassthroughEnable}} equal to
          {{true}}.
        </description>
        <syntax>
          <list maxItems="4"/>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>

      <parameter name="LeaseTime" access="readWrite">
        <description>
          Specifies the lease time in {{units}} of client assigned addresses. A
          value of -1 indicates an infinite lease.
        </description>
        <syntax>
          <int>
            <range minInclusive="-1"/>
            <units value="seconds"/>
          </int>
          <default type="object" value="86400"/>
        </syntax>
      </parameter>

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

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

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

    <object name="Device.DHCPv4.Server.Pool.{i}.StaticAddress.{i}."
        access="readWrite" numEntriesParameter="StaticAddressNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        DHCP static address table. Entries in this table correspond to what
        {{bibref|RFC2131}} calls "manual allocation", where a client's IP
        address is assigned by the network administrator, and DHCP is used
        simply to convey the assigned address to the client. Each instance of
        this object specifies a hardware address (MAC address) and an IP
        address within the pool. When serving from this pool, this IP address
        MUST, if available, be assigned to the DHCP client with this hardware
        address, and MUST NOT be assigned to any other client. Note that it is
        possible that an IP address in this table is present in one or more of
        the other conditional serving pools, in which case it is possible that
        such an address will be assigned to a different client.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="Chaddr"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the StaticAddress table entry. Disabling an entry
          does not return the IP address to the pool.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

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

      <parameter name="Chaddr" access="readWrite">
        <description>
          Hardware address (MAC address) of the physical interface of the DHCP
          client.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Yiaddr" access="readWrite">
        <description>
          IPv4 address to be assigned by the DHCP server to the DHCP client
          with the specified hardware address (MAC address).
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv4.Server.Pool.{i}.Option.{i}."
        access="readWrite" numEntriesParameter="OptionNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        This object specifies the DHCP options that MUST, if enabled, be
        returned to clients whose DHCP requests are associated with this pool.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="Tag"/>
      </uniqueKey>

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

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

      <parameter name="Tag" access="readWrite">
        <description>
          Option tag as defined in {{bibref|RFC2132}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="254"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readWrite">
        <description>
          A hexbinary encoded option value.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="255"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv4.Server.Pool.{i}.Client.{i}." access="readOnly"
        numEntriesParameter="ClientNumberOfEntries" minEntries="0"
        maxEntries="unbounded">
      <description>
        DHCPv4 client table. This table lists details of DHCPv4 clients that
        matched the filter criteria of this {{object|#}} entry.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="Chaddr"/>
      </uniqueKey>

      <parameter name="Alias" access="readWrite" activeNotify="canDeny">
        <description>
          {{datatype|expand}} Note: There is no guarantee that the {{param}}
          value on automatically-created {{object}} instances will be retained.
          This is because automatically-created {{object}} instances can be
          transitory.
        </description>
        <syntax>
          <dataType ref="Alias"/>
        </syntax>
      </parameter>

      <parameter name="Chaddr" access="readOnly">
        <description>
          MAC address of the DHCPv4 client.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>

      <parameter name="Active" access="readOnly">
        <description>
          Whether or not the DHCPv4 client is currently present on the LAN. The
          method of presence detection is a local matter to the CPE. The
          ability to list inactive DHCPv4 clients is OPTIONAL. If the CPE
          includes inactive DHCPv4 clients in this table, {{param}} MUST be set
          to {{false}} for each inactive DHCPv4 client. The length of time an
          inactive DHCPv4 client remains listed in this table is a local matter
          to the CPE.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

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

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

    <object name="Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4Address.{i}."
        access="readOnly" numEntriesParameter="IPv4AddressNumberOfEntries"
        minEntries="0" maxEntries="unbounded">
      <description>
        IPv4 addresses assigned to this client.
      </description>
      <uniqueKey>
        <parameter ref="IPAddress"/>
      </uniqueKey>

      <parameter name="IPAddress" access="readOnly">
        <description>
          IPv4 address.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>

      <parameter name="LeaseTimeRemaining" access="readOnly">
        <description>
          The time at which the DHCP lease will expire or {{null}} if not
          known. For an infinite lease, the parameter value MUST be
          9999-12-31T23:59:59Z.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv4.Server.Pool.{i}.Client.{i}.Option.{i}."
        access="readOnly" numEntriesParameter="OptionNumberOfEntries"
        minEntries="0" maxEntries="unbounded" dmr:noUniqueKeys="true">
      <description>
        DHCPv4 options supplied by this client, e.g. ''VendorClassID'' (Option
        60), ''ClientID'' (option 61) or ''UserClassID'' (Option 77).
      </description>

      <parameter name="Tag" access="readOnly">
        <description>
          Option tag as defined in {{bibref|RFC2132}}.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="255"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Value" access="readOnly">
        <description>
          A hexbinary encoded option value.
        </description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="255"/>
          </hexBinary>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DHCPv4.Relay." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        DHCP Relay Agent (conditional relaying).
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          Enables or disables the DHCP Relay Agent function.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of the DHCP relay. {{enum}} 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="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

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

    <object name="Device.DHCPv4.Relay.Forwarding.{i}." access="readWrite"
        numEntriesParameter="ForwardingNumberOfEntries"
        enableParameter="Enable" minEntries="0" maxEntries="unbounded">
      <description>
        DHCP Relay Agent Forwarding table. For enabled table entries, if
        {{param|Interface}} is not a valid reference then the table entry is
        inoperable and the CPE MUST set {{param|Status}} to
        {{enum|Error_Misconfigured|Status}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}} The {{enum|Error_Misconfigured}}
          value indicates that a necessary configuration value is undefined or
          invalid. 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="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="Order" access="readWrite">
        <description>
          Position of the {{object}} entry in the order of precedence. A value
          of ''1'' indicates the first entry considered (highest precedence).
          For each DHCP request, the highest ordered entry that matches the
          association criteria is applied. All lower order entries are ignored.
          When this value is modified, if the value matches that of an existing
          entry, the {{param}} value for the existing entry and all lower
          {{param}} entries is incremented (lowered in precedence) to ensure
          uniqueness of this value. A deletion causes {{param}} values to be
          compacted. When a value is changed, incrementing occurs before
          compaction. The value of {{param}} on creation of a {{object}} table
          entry MUST be one greater than the largest current value (initially
          assigned the lowest precedence).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} The IP Interface associated with the ''Forwarding''
          entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="VendorClassID" access="readWrite">
        <description>
          Pool association criterion. Used to identify one or more LAN devices,
          value of the DHCP Vendor Class Identifier (Option 60) as defined in
          {{bibref|RFC2132}}, matched according to the criterion in
          {{param|VendorClassIDMode}}. Case sensitive. This is a normal string,
          e.g. "abc" is represented as "abc" and not say "616263" hex. However,
          if the value includes non-printing characters then such characters
          have to be represented using XML escapes, e.g. #x0a for line-feed.
          {{empty}} indicates this criterion is not used as a relay
          classification criterion.
        </description>
        <syntax>
          <string>
            <size maxLength="255"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="VendorClassIDExclude" access="readWrite">
        <description>
          If {{false}}, matching packets are those that match the
          {{param|VendorClassID}} entry, if specified. If {{true}}, matching
          packets are those that do not match the {{param|VendorClassID}}
          entry, if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="VendorClassIDMode" access="readWrite">
        <description>
          {{param|VendorClassID}} pattern match criterion. {{enum}} For
          example, if {{param|VendorClassID}} is "Example" then an Option 60
          value of "Example device" will match with {{param}} values of
          {{enum|Prefix}} or {{enum|Substring}}, but not with {{enum|Exact}} or
          {{enum|Suffix}}.
        </description>
        <syntax>
          <string>
            <enumeration value="Exact"/>
            <enumeration value="Prefix"/>
            <enumeration value="Suffix"/>
            <enumeration value="Substring"/>
          </string>
          <default type="object" value="Exact"/>
        </syntax>
      </parameter>

      <parameter name="ClientID" access="readWrite">
        <description>
          Pool association criterion. A hexbinary string used to identify one
          or more LAN devices, value of the DHCP Client Identifier (Option 61)
          as defined in {{bibref|RFC2132}}. The option value is binary, so an
          exact match is REQUIRED. {{empty}} indicates this criterion is not
          used as a relay classification criterion.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="255"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ClientIDExclude" access="readWrite">
        <description>
          If {{false}}, matching packets are those that match the
          {{param|ClientID}} entry, if specified. If {{true}}, matching packets
          are those that do not match the {{param|ClientID}} entry, if
          specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="UserClassID" access="readWrite">
        <description>
          Pool association criterion. A hexbinary string used to identify one
          or more LAN devices, value of the DHCP User Class Identifier (Option
          77) as defined in {{bibref|RFC3004}}. {{empty}} indicates this
          criterion is not used as a relay classification criterion.
        </description>
        <syntax>
          <hexBinary>
            <size maxLength="255"/>
          </hexBinary>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="UserClassIDExclude" access="readWrite">
        <description>
          If {{false}}, matching packets are those that match the
          {{param|UserClassID}} entry, if specified. If {{true}}, matching
          packets are those that do not match the {{param|UserClassID}} entry,
          if specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Chaddr" access="readWrite">
        <description>
          Pool association criterion. Hardware address (MAC address) of the
          physical interface of the DHCP client. {{empty}} indicates this
          criterion is not used as a relay classification criterion.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ChaddrMask" access="readWrite">
        <description>
          Bit-mask for the MAC address, where matching of a packet's MAC
          address with the {{param|Chaddr}} is only to be done for bit
          positions set to one in the mask. A mask of FF:FF:FF:FF:FF:FF or
          {{empty}} indicates all bits of the {{param|Chaddr}} are to be used
          for relay classification.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="ChaddrExclude" access="readWrite">
        <description>
          If {{false}}, matching packets are those that match the (masked)
          {{param|Chaddr}} entry, if specified. If {{true}}, matching packets
          are those that do not match the (masked) {{param|Chaddr}} entry, if
          specified.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="LocallyServed" access="readWrite">
        <description>
          If {{true}}, incoming DHCP requests will be forwarded to the CPE DHCP
          Server. If {{false}}, incoming DHCP requests will be forwarded to the
          {{param|DHCPServerIPAddress}} configured for this forwarding entry.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DHCPServerIPAddress" access="readWrite">
        <description>
          IPv4 address of the DHCP server, where the request has to be sent to
          when there is a conditional match with this forwarding entry and
          {{param|LocallyServed}} is {{false}}. If {{param|LocallyServed}} is
          {{false}} and this parameter is not configured, then the DHCP request
          is dropped.
        </description>
        <syntax>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Users." access="readOnly" minEntries="1"
        maxEntries="1" dmr:previousObject="Device.DHCPv4.Relay.Forwarding.{i}.">
      <description>
        Users object that contains the {{object|User}} table.
      </description>

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

    <object name="Device.Users.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.IEEE8021x." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        IEEE 802.1x object {{bibref|802.1x-2004}}, where {{object|Supplicant}}
        models authentication supplicants.
      </description>

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

    <object name="Device.IEEE8021x.Supplicant.{i}." access="readWrite"
        numEntriesParameter="SupplicantNumberOfEntries"
        enableParameter="Enable" minEntries="1" maxEntries="unbounded">
      <description>
        802.1x supplicant authentication provisioning and status information
        associated with an interface to be authenticated (e.g. an
        {{object|.Ethernet.Link}} instance). For enabled table entries, if
        {{param|Interface}} is not a valid reference then the table entry is
        inoperable and the CPE MUST set {{param|Status}} to
        {{enum|Error_Misconfigured|Status}}. Note: The {{object}} table
        includes a unique key parameter that is a strong reference. If a
        strongly referenced object is deleted, the CPE will set the referencing
        parameter to {{empty}}. However, doing so under these circumstances
        might cause the updated {{object}} row to then violate the table's
        unique key constraint; if this occurs, the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}} and disable the
        offending {{object}} row.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <parameter ref="Interface"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          This parameter controls whether this resource will utilize the 802.1x
          protocol as a supplicant for device authentication purposes.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The current operational status of this 802.1x supplicant. {{enum}}
          The {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid. 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="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

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

      <parameter name="Interface" access="readWrite">
        <description>
          {{reference}} The interface on which authentication is to be
          performed. Example: Device.Ethernet.Link.1
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="PAEState" access="readOnly">
        <description>
          The current supplicant state machine as defined in
          {{bibref|802.1x-2004|9.5.1}}, Supplicant PAE (Port Access Entity)
          State. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Disconnected"/>
            <enumeration value="Logoff"/>
            <enumeration value="Connecting"/>
            <enumeration value="Authenticating"/>
            <enumeration value="Authenticated"/>
            <enumeration value="Held"/>
            <enumeration value="Restart"/>
            <enumeration value="ForceAuth"/>
            <enumeration value="ForceUnauth"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EAPIdentity" access="readWrite">
        <description>
          The identity to be exchanged between the supplicant and
          authenticator.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="MaxStart" access="readWrite">
        <description>
          The maximum number of times the device will attempt to send an EAP
          start message before authentication fails as defined in
          {{bibref|802.1x-2004|9.5.1}}, maxStart. This is in support of
          {{bibref|802.1x-2004|Section 8.4.6}}, Migration Considerations.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1" maxInclusive="10"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="StartPeriod" access="readWrite">
        <description>
          The period in {{units}} a supplicant will wait before the device will
          attempt to re-send an EAP start message as defined in
          {{bibref|802.1x-2004|9.5.1}}, startPeriod.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="HeldPeriod" access="readWrite">
        <description>
          The hold-off period in {{units}} a supplicant will wait before
          re-attempting authentication as defined in
          {{bibref|802.1x-2004|9.5.1}}, heldPeriod.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="AuthPeriod" access="readWrite">
        <description>
          The period in {{units}} after which a request will be considered
          timed out as defined in {{bibref|802.1x-2004|9.5.1}}, authPeriod.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="AuthenticationCapabilities" access="readOnly">
        <description>
          {{list}} Indicates the authentication methods supported by the
          device. {{enum}}
        </description>
        <syntax>
          <list/>
          <string>
            <enumeration value="EAP-TLS"/>
            <enumeration value="EAP-MD5"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="StartFailurePolicy" access="readWrite">
        <description>
          The action to be taken when authentication has failed, when the
          network fails to respond to the supplicant's start message, and the
          retries have been exceeded (since network does not yet support
          802.1x). {{enum}} This is in support of {{bibref|802.1x-2004|Section
          8.4.6}}, Migration Considerations.
        </description>
        <syntax>
          <string>
            <enumeration value="FailAuthentication"/>
            <enumeration value="AssumeAuthentication"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="AuthenticationSuccessPolicy" access="readWrite">
        <description>
          The action to be taken when authentication succeeds and a connection
          has already received an address and/or policy settings. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="NoAction"/>
            <enumeration value="RenewConnection"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Reset" access="readWrite">
        <description>
          When set to {{true}}, the device MUST reset the session by performing
          an initial authentication attempt as defined in
          {{bibref|802.1x-2004|9.6.1.3}}, Initialize Port by sending out the
          EAP start message. The device MUST initiate the reset after
          completion of the current CWMP session. The device MAY delay
          resetting the resource in order to avoid interruption of a user
          service such as an ongoing voice call.
        </description>
        <syntax hidden="true" command="true">
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Disconnect" access="readWrite">
        <description>
          When set to {{true}}, the device MUST disconnect (forced
          unauthentication) the resource. The device MUST initiate the
          disconnect after completion of the current CWMP session. The device
          MAY delay re-authentication of the resource in order to avoid
          interruption of a user service such as an ongoing voice call.
        </description>
        <syntax hidden="true" command="true">
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IEEE8021x.Supplicant.{i}.Stats." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        802.1x Authentication Supplicant EAP statistics information for this
        resource.
      </description>

      <parameter name="ReceivedFrames" access="readOnly">
        <description>
          The number of EAPOL frames of any type that have been received by
          this Supplicant; {{bibref|802.1x-2004|9.5.2}}, EAPOL frames received.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="TransmittedFrames" access="readOnly">
        <description>
          The number of EAPOL frames of any type that have been transmitted by
          this Supplicant; {{bibref|802.1x-2004|9.5.2}}, EAPOL frames
          transmitted.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="TransmittedStartFrames" access="readOnly">
        <description>
          The number of EAPOL Start frames that have been transmitted by this
          Supplicant; {{bibref|802.1x-2004|9.5.2}}, EAPOL Start frames
          transmitted.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="TransmittedLogoffFrames" access="readOnly">
        <description>
          The number of EAPOL Logoff frames that have been transmitted by this
          Supplicant; {{bibref|802.1x-2004|9.5.2}}, EAPOL Logoff frames
          transmitted.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="TransmittedResponseIdFrames" access="readOnly">
        <description>
          The number of EAP Resp/Id frames that have been transmitted;
          {{bibref|802.1x-2004|9.5.2}}, EAP Resp/Id frames transmitted.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="TransmittedResponseFrames" access="readOnly">
        <description>
          The number of valid EAP Response frames (other than Resp/Id frames)
          that have been transmitted by this Supplicant;
          {{bibref|802.1x-2004|9.5.2}}, EAP Resp frames transmitted.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="ReceivedRequestIdFrames" access="readOnly">
        <description>
          The number of EAP Req/Id frames that have been received by this
          Supplicant; {{bibref|802.1x-2004|9.5.2}}, EAP Req/Id frames received.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="ReceivedRequestFrames" access="readOnly">
        <description>
          The number of EAP Request frames (other than Rq/Id frames) that have
          been received by this Supplicant; {{bibref|802.1x-2004|9.5.2}}, EAP
          Req frames received.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="ReceivedInvalidFrames" access="readOnly">
        <description>
          The number of EAPOL frames that have been received by this Supplicant
          in which the frame type is not recognized;
          {{bibref|802.1x-2004|9.5.2}}, EAP Req frames received.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="ReceivedLengthErrorFrames" access="readOnly">
        <description>
          The number of EAPOL frames that have been received by this Supplicant
          in which the Packet Body Length field is invalid;
          {{bibref|802.1x-2004|9.5.2}}, EAP length error frames received.
        </description>
        <syntax>
          <unsignedInt/>
          <default type="object" value="0"/>
        </syntax>
      </parameter>

      <parameter name="LastFrameVersion" access="readOnly">
        <description>
          The protocol version number carried in the most recently received
          EAPOL frame; {{bibref|802.1x-2004|9.5.2}}, Last EAPOL frame version
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="LastFrameSourceMACAddress" access="readOnly">
        <description>
          The source MAC address carried in the most recently received EAPOL
          frame; {{bibref|802.1x-2004|9.5.2}}, Last EAPOL frame source.
        </description>
        <syntax>
          <dataType ref="MACAddress"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IEEE8021x.Supplicant.{i}.EAPMD5." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        802.1x Authentication Supplicant provisioning information used for MD5
        shared secret exchange. This object will not exist if EAP-MD5 is not a
        supported authentication type.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          This parameter enables or disables the supplicant's support for
          EAP-MD5.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SharedSecret" access="readWrite">
        <description>
          The shared secret to be exchanged between the supplicant and
          authenticator.
        </description>
        <syntax hidden="true">
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.IEEE8021x.Supplicant.{i}.EAPTLS." access="readOnly"
        minEntries="1" maxEntries="1">
      <description>
        802.1x Authentication Supplicant provisioning information used for TLS
        certificate authentication. This object will not exist if the EAP-TLS
        is not a supported authentication type.
      </description>

      <parameter name="Enable" access="readWrite">
        <description>
          This parameter enables or disables the supplicant's support for
          EAP-TLS.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="MutualAuthenticationEnable" access="readWrite">
        <description>
          The parameter controls if the supplicant will authenticate the
          authenticator.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.SmartCardReaders." access="readOnly" minEntries="1"
        maxEntries="1" dmr:previousObject="Device.DLNA.Capabilities.">
      <description>
        SmartCardReaders object that contains the {{object|SmartCardReader}}
        table.
      </description>

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

    <object name="Device.SmartCardReaders.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.SmartCardReaders.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.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. {{pattern}} 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 minLength="6" maxLength="6"/>
            <pattern value="[0-9A-F]{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>
          Identifier of the particular device that is unique for the indicated
          class of product and manufacturer. 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"
          activeNotify="forceEnabled">
        <description>
          A string identifying the software version currently installed in the
          CPE (i.e. version of the overall CPE firmware). 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="AdditionalHardwareVersion" access="readOnly">
        <description>
          {{list}} Each entry is an additional version. 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>
          {{list}} Each entry is an additional version. 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"
          forcedInform="true" activeNotify="forceEnabled">
        <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="UpTime" access="readOnly" activeNotify="canDeny">
        <description>
          Time in {{units}} since the CPE was last restarted.
        </description>
        <syntax>
          <unsignedInt>
            <units value="seconds"/>
          </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="VendorConfigFileNumberOfEntries" access="readOnly">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

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

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

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

    <object name="Device.DeviceInfo.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.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey>
        <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 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>
    </object>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    <object name="Device.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">
        <description>
          Enables or disables the NTP or SNTP time client.
        </description>
        <syntax>
          <boolean/>
        </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>

      <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>
    </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 (i.e.
          {{param|.Users.User.{i}.Password}}), or MUST be equal to the password
          used by the LAN-side Auto-Configuration protocol (i.e.
          {{param|.LANConfigSecurity.ConfigPassword}}).
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="PasswordReset" access="readWrite">
        <description>
          Present only if the CPE provides a password-protected LAN-side user
          interface and supports LAN-side Auto-Configuration. When set to true,
          resets {{param|.LANConfigSecurity.ConfigPassword}} to its factory
          value.
        </description>
        <syntax hidden="true" command="true">
          <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 hexadecimal notation
          (e.g., FF0088).
        </description>
        <syntax>
          <hexBinary>
            <size minLength="3" maxLength="3"/>
          </hexBinary>
        </syntax>
      </parameter>

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

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

      <parameter name="ButtonTextColor" access="readWrite">
        <description>
          The color of text on buttons on the GUI screens in RGB hexadecimal
          notation (e.g., FF0088).
        </description>
        <syntax>
          <hexBinary>
            <size minLength="3" maxLength="3"/>
          </hexBinary>
        </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>
          {{list}} List items represent user-interface languages that are
          available, where each language is specified according to
          {{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
          {{bibref|RFC3066}}. The value MUST be a member of the list reported
          by the {{param|AvailableLanguages}} parameter.
        </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.UPnP." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        This object contains all UPnP related objects and parameters including
        Device and Discovery related objects and parameters.
      </description>
    </object>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    <object name="Device.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.Firewall." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        Firewall configuration object. The {{param|Config}} parameter enables
        and disables the Firewall, and can select either a predefined
        configuration ({{enum|High|Config}} or {{enum|Low|Config}}) or an
        explicitly-defined {{enum|Advanced|Config}} configuration. For an
        {{enum|Advanced|Config}} configuration, {{param|AdvancedLevel}}
        controls the currently active Firewall Level, and the Firewall Levels
        are defined in the {{object|Level}}, {{object|Chain}} and
        {{object|Chain.{i}.Rule}} tables. The Firewall rules modeled by this
        object operate only on the forwarding path. This means that they affect
        only routed traffic, and do not affect traffic that is destined for or
        generated by the CPE. Note that any {{object|#.NAT}} processing on the
        ingress packet occurs before Firewall rules are applied so, for
        example, the Firewall rules will see the translated destination IP
        address and port in a downstream packet that has passed through the
        NAT. See {{bibref|TR-181i2a2|Appendix VIII}} for an example
        {{enum|Advanced|Config}} configuration.
      </description>

      <parameter name="Enable" access="readWrite" dmr:previousParameter="">
        <description>
          Enables or disables the Firewall. Firewalls often implement
          additional Denial of Service and other vulnerability protections,
          such as those described in {{bibref|ICSA-Baseline}}. If a
          {{enum|Stateful|Type}} Firewall is enabled, then it is assumed that
          all implemented stateful protections are enabled, unless they are
          overridden by some other part of the data model.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <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" status="deprecated">
              <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.

                This value is DEPRECATED because it is the same as setting
                {{param|Enable}} to {{false}}.
              </description>
            </enumeration>
            <enumeration value="Advanced" optional="true">
              <description>
                Advanced firewall configuration applies, as specified by
                {{param|AdvancedLevel}}.
              </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>

      <parameter name="LevelNumberOfEntries" access="readOnly"
          dmr:previousParameter="LastChange">
        <description>
          {{numentries}}
        </description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>

      <parameter name="AdvancedLevel" access="readWrite">
        <description>
          Selects the currently active Firewall Level. {{param}} only applies
          when {{param|Config}} is {{enum|Advanced|Config}}.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".Firewall.Level."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Type" access="readOnly">
        <description>
          Firewall Type. {{enum}} A {{enum|Stateless}} Firewall treats each
          packet individually and thus has no concept of sessions. Therefore a
          {{enum|Stateless}} Firewall cannot distinguish between unsolicited
          downstream traffic and downstream traffic in response to outbound
          messages. This means that it has to accept all incoming downstream
          traffic. Furthermore, because a {{enum|Stateless}} Firewall treats
          each packet individually, it does not provide any DoS or
          vulnerability protections. A {{enum|Stateful}} Firewall maintains
          state about previous packets and thus supports sessions. Therefore a
          {{enum|Stateful}} Firewall can distinguish between solicited and
          unsolicited downstream traffic. In a {{enum|Stateful}} Firewall,
          explicitly configured rules only apply to unsolicited traffic, and
          can not cause packets received in response to an upstream request to
          be dropped. Furthermore, because a {{enum|Stateful}} Firewall
          maintains state, it can provide DoS and vulnerability protections. A
          device that has a {{enum|Stateless}} Firewall depends on the NAT to
          provide protection against unsolicited downstream IPv4 traffic. This
          is because, as noted above, a {{enum|Stateless}} Firewall has to be
          configured to accept all incoming downstream traffic. For IPv6 there
          is no NAT, so a {{enum|Stateless}} Firewall can not provide simple
          security protections against unsolicited downstream IPv6 traffic.
        </description>
        <syntax>
          <string>
            <enumeration value="Stateless">
              <description>
                The Firewall only implements stateless packet inspection.
              </description>
            </enumeration>
            <enumeration value="Stateful">
              <description>
                The Firewall implements both stateless and stateful packet
                inspection.
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

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

    <object name="Device.Firewall.Level.{i}."
        numEntriesParameter="LevelNumberOfEntries" access="readWrite"
        minEntries="0" maxEntries="unbounded">
      <description>
        Firewall Level table. When an {{enum|Advanced|#.Config}} configuration
        is selected, {{param|#.AdvancedLevel}} selects the currently active
        entry in this table. Each {{object}} table entry references the
        {{object|#.Chain}} that contains the rules for this level.
      </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="readWrite">
        <description>
          Human-readable name associated with this {{object}} entry.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Description" access="readWrite">
        <description>
          Human-readable description associated with this {{object}} entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Order" access="readWrite">
        <description>
          Position of the {{object}} entry for user interface display; levels
          can be presented according to an increasing or decreasing level of
          security. When this value is modified, if the value matches that of
          an existing entry, the {{param}} value for the existing entry and all
          greater-valued {{param}} entries is incremented to ensure uniqueness
          of this value. A deletion causes {{param}} values to be compacted.
          When a value is changed, incrementing occurs before compaction. The
          value of {{param}} on creation of a {{object}} table entry MUST be
          one greater than the largest current value.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="Chain" access="readOnly">
        <description>
          The Chain containing Firewall Level Rules associated with this
          {{object}} entry. On creation of a new {{object}} entry, the device
          will automatically create a new {{object|#.Chain}} table entry that
          this {{param}} parameter will reference.
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".Firewall.Chain."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="PortMappingEnabled" access="readWrite">
        <description>
          Indicates whether NAT port mapping is enabled or disabled when this
          is the active Level. For a {{enum|Stateless|#.Type}} Firewall this
          can be set to {{false}} to force any port mappings to be
          operationally disabled (for a {{enum|Stateful|#.Type}} Firewall this
          is not necessary because the same effect can be achieved via Firewall
          rules). This parameter affects all the interfaces on which NAT is
          enabled. It operationally enables or disables port mapping
          functionality and therefore does not affect the individual
          {{param|##.NAT.PortMapping.{i}.Enable}} settings. Note that the
          current NAT status and NAT port mapping status are indicated by the
          {{param|##.NAT.InterfaceSetting.{i}.Status}} parameter.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="true"/>
        </syntax>
      </parameter>

      <parameter name="DefaultPolicy" access="readWrite">
        <description>
          Default action for packets not matching any of the level rules.
          {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="Drop">
              <description>
                The firewall discards packets matching this rule.
              </description>
            </enumeration>
            <enumeration value="Accept">
              <description>
                The firewall forwards packets matching this rule.
              </description>
            </enumeration>
            <enumeration value="Reject" optional="true">
              <description>
                The firewall discards packets matching this rule, and sends an
                ICMP message to the originating host.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Drop"/>
        </syntax>
      </parameter>

      <parameter name="DefaultLogPolicy" access="readWrite">
        <description>
          Enable or disable logging, in a
          {{object|##.DeviceInfo.VendorLogFile}}, of packets not matching any
          of the level rules.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>
    </object>

    <object name="Device.Firewall.Chain.{i}."
        numEntriesParameter="ChainNumberOfEntries" enableParameter="Enable"
        access="readWrite" minEntries="0" maxEntries="unbounded">
      <description>
        Firewall Chain table. Each entry contains an ordered list of
        {{object|Rule}} objects which can themselves reference other {{object}}
        instances. A hierarchy of rules can therefore be created. A given
        Firewall Chain's rules are all created by the same entity, as indicated
        by the {{param|Creator}} parameter.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>
      <uniqueKey functional="false">
        <parameter ref="Name"/>
      </uniqueKey>

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

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

      <parameter name="Name" access="readWrite">
        <description>
          Human-readable name associated with this {{object}} entry.
        </description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Creator" access="readOnly">
        <description>
          Creator of this {{object}} entry and of its {{object|Rule}}s.
          {{enum}} Note that this is the entity that originally created the
          {{object}} entry. The value of this parameter does not change if the
          {{object}} entry or one of its rules is subsequently changed by
          another entity.
        </description>
        <syntax>
          <string>
            <enumeration value="Defaults">
              <description>
                The {{object}} entry is present in the factory default
                configuration.
              </description>
            </enumeration>
            <enumeration value="PortMapping">
              <description>
                The {{object}} entry was created as a side-effect of a
                {{bibref|UPnP-IGD:1}} or {{bibref|TR-064}} port mapping.
              </description>
            </enumeration>
            <enumeration value="WANIPv6FirewallControl">
              <description>
                The {{object}} entry was created by {{bibref|UPnP-IGD:2}}
                WANIPv6FirewallControl.
              </description>
            </enumeration>
            <enumeration value="ACS">
              <description>
                The {{object}} entry was created by the Auto Configuration
                Server.
              </description>
            </enumeration>
            <enumeration value="UserInterface">
              <description>
                The {{object}} entry was created by device user interface or
                command line interface.
              </description>
            </enumeration>
            <enumeration value="Other">
              <description>
                The {{object}} entry was created by another entity.
              </description>
            </enumeration>
          </string>
          <default type="object" value="ACS"/>
        </syntax>
      </parameter>

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

    <object name="Device.Firewall.Chain.{i}.Rule.{i}." access="readWrite"
        numEntriesParameter="RuleNumberOfEntries" enableParameter="Enable"
        minEntries="0" maxEntries="unbounded">
      <description>
        Firewall Rule table. Each entry defines a Firewall packet selection
        rule. The {{param|Target}} parameter defines the action to perform for
        traffic matching this rule: the packet can be dropped, accepted,
        rejected or passed to another {{object|#}}. This table MUST NOT contain
        dynamic Firewall rules associated with {{enum|Stateful|##.Type}}
        Firewall sessions. All entries are created by the creator of the parent
        {{object|#}}, as indicated by its {{param|#.Creator}} parameter.
        {{object}} entries in a {{object|#}} with a {{param|#.Creator}} of
        {{enum|Defaults|#.Creator}}, {{enum|ACS|#.Creator}},
        {{enum|UserInterface|#.Creator}} or (maybe) {{enum|Other|#.Creator}}
        are referred to as ''Static'' {{object}}s. Whether or not a {{object}}
        in a {{object|#}} with {{param|#.Creator}} {{enum|Other|#.Creator}} is
        regarded as ''Static'' is a local matter to the CPE. Some of this
        object's parameter descriptions refer to whether a {{object}} is
        ''Static'' when specifying whether or not the parameter value can be
        modified. For enabled table entries, if {{param|SourceInterface}} is
        not a valid reference and {{param|SourceAllInterfaces}} is {{false}},
        then the table entry is inoperable and the CPE MUST set
        {{param|Status}} to {{enum|Error_Misconfigured|Status}}.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

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

      <parameter name="Status" access="readOnly">
        <description>
          The status of this {{object}} entry. {{enum}} The
          {{enum|Error_Misconfigured}} value indicates that a necessary
          configuration value is undefined or invalid. 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="Enabled"/>
            <enumeration value="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>

      <parameter name="Order" access="readWrite">
        <description>
          Position of the {{object}} entry in the order of precedence. A value
          of ''1'' indicates the first entry considered (highest precedence).
          For each packet, the highest ordered entry that matches the rule
          criteria is applied. All lower order entries are ignored. When this
          value is modified, if the value matches that of an existing entry,
          the {{param}} value for the existing entry and all lower {{param}}
          entries is incremented (lowered in precedence) to ensure uniqueness
          of this value. A deletion causes {{param}} values to be compacted.
          When a value is changed, incrementing occurs before compaction. The
          value of {{param}} on creation of a {{object}} table entry MUST be
          one greater than the largest current value (initially assigned the
          lowest precedence).
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="1"/>
          </unsignedInt>
        </syntax>
      </parameter>

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

      <parameter name="Description" access="readWrite">
        <description>
          Human-readable description associated with this {{object}} entry.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="Target" access="readWrite">
        <description>
          Action to perform for traffic matching this {{object}} entry.
          {{enum}} This parameter can only be modified if the {{object}} is
          ''Static'' (as explained in the object description).
        </description>
        <syntax>
          <string>
            <enumeration value="Drop">
              <description>
                The firewall discards packets matching this rule.
              </description>
            </enumeration>
            <enumeration value="Accept">
              <description>
                The firewall forwards packets matching this rule.
              </description>
            </enumeration>
            <enumeration value="Reject" optional="true">
              <description>
                The firewall discards packets matching this rule, and sends an
                ICMP message to the originating host.
              </description>
            </enumeration>
            <enumeration value="Return" optional="true">
              <description>
                The firewall doesn't consider the remaining rules (if any) in
                the current chain.
              </description>
            </enumeration>
            <enumeration value="TargetChain" optional="true">
              <description>
                The rules in the chain referenced by the {{param|TargetChain}}
                parameter are matched.
              </description>
            </enumeration>
          </string>
          <default type="object" value="Drop"/>
        </syntax>
      </parameter>

      <parameter name="TargetChain" access="readWrite">
        <description>
          Specifies the chain to process when {{param|Target}} equals
          {{enum|TargetChain|Target}}. If there are no matching rules in the
          referenced chain, processing continues with the next rule in this
          chain (if any). In other words, {{enum|TargetChain|Target}} behaves
          like a subroutine call. {{empty}} indicates no {{param}} is
          specified. This parameter can only be modified if the {{object}} is
          ''Static'' (as explained in the object description).
        </description>
        <syntax>
          <string>
            <pathRef refType="strong" targetParent=".Firewall.Chain."
                targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="Log" access="readWrite">
        <description>
          Enable or disable logging, in a
          {{object|###.DeviceInfo.VendorLogFile}}, of packets matching this
          {{object}}. If the {{object}} is not ''Static'' (as explained in the
          object description), whether changes to this parameter persist across
          re-boot is a local matter to the CPE.
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="CreationDate" access="readOnly">
        <description>
          Date and time when this {{object}} entry was created.
        </description>
        <syntax>
          <dateTime/>
        </syntax>
      </parameter>

      <parameter name="ExpiryDate" access="readWrite">
        <description>
          The time at which this {{object}} entry will expire, or {{null}} if
          not known. For an infinite lifetime, the parameter value MUST be
          9999-12-31T23:59:59Z. The only value that MUST be supported is
          9999-12-31T23:59:59Z (i.e. support for rules that expire is
          OPTIONAL). When a rule expires, the CPE MUST automatically terminate
          that rule and MUST automatically delete the corresponding {{object}}
          table entry. This parameter can only be modified if the {{object}} is
          ''Static'' (as explained in the object description).
        </description>
        <syntax>
          <dateTime/>
          <default type="object" value="9999-12-31T23:59:59Z"/>
        </syntax>
      </parameter>

      <parameter name="SourceInterface" access="readWrite">
        <description>
          {{object}} criterion. {{reference}} This specifies the ingress
          interface associated with the entry. It MAY be a layer 1, 2 or 3
          interface, however, the types of interfaces for which Rules can be
          instantiated is a local matter to the CPE. This parameter can only be
          modified if the {{object}} is ''Static'' (as explained in the object
          description).
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceInterfaceExclude" access="readWrite">
        <description>
          If {{false}}, the rule matches only those packets that match the
          {{param|SourceInterface}} entry, if specified. If {{true}}, the rule
          matches all packets except those that match the
          {{param|SourceInterface}} entry, if specified. This parameter can
          only be modified if the {{object}} is ''Static'' (as explained in the
          object description).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourceAllInterfaces" access="readWrite">
        <description>
          {{object}} criterion. This specifies that all ingress interfaces are
          associated with the entry. If {{true}}, the values of
          {{param|SourceInterface}} and {{param|SourceInterfaceExclude}} are
          ignored since all ingress interfaces are indicated. This parameter
          can only be modified if the {{object}} is ''Static'' (as explained in
          the object description).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestInterface" access="readWrite">
        <description>
          {{object}} criterion. {{reference}} This specifies the egress
          interface associated with the entry. It MAY be a layer 1, 2 or 3
          interface, however, the types of interfaces for which Rules can be
          instantiated is a local matter to the CPE. This parameter can only be
          modified if the {{object}} is ''Static'' (as explained in the object
          description).
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetType="row"/>
          </string>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestInterfaceExclude" access="readWrite">
        <description>
          If {{false}}, the rule matches only those packets that match the
          {{param|DestInterface}} entry, if specified. If {{true}}, the rule
          matches all packets except those that match the
          {{param|DestInterface}} entry, if specified. This parameter can only
          be modified if the {{object}} is ''Static'' (as explained in the
          object description).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestAllInterfaces" access="readWrite">
        <description>
          {{object}} criterion. This specifies that all egress interfaces are
          associated with the entry. If {{true}}, the values of
          {{param|DestInterface}} and {{param|DestInterfaceExclude}} are
          ignored since all ingress interfaces are indicated. This parameter
          can only be modified if the {{object}} is ''Static'' (as explained in
          the object description).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="IPVersion" access="readWrite">
        <description>
          {{object}} criterion. IP Protocol Version (e.g. 4 for IPv4 and 6 for
          IPv6). A value of -1 indicates this criterion is not used for
          matching. This parameter can only be modified if the {{object}} is
          ''Static'' (as explained in the object description).
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="15"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DestIP" access="readWrite">
        <description>
          {{object}} criterion. Destination IP address. {{empty}} indicates
          this criterion is not used for matching. Note that Firewall rules are
          applied after any {{object|###.NAT}} processing, so if NAT is enabled
          on the source interface this is always the translated address. This
          parameter can only be modified if the {{object}} is ''Static'' (as
          explained in the object description).
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestMask" access="readWrite">
        <description>
          Destination IP address mask, but represented as an IP routing prefix
          using CIDR notation {{bibref|RFC4632}} (e.g. 192.168.0.0/16 in IPv4,
          and 2001:db8:3210:11aa::/64 in IPv6). If not {{empty}}, only the
          indicated portion of the {{param|DestIP}} address is to be used for
          matching. {{empty}} indicates that the full {{param|DestIP}} address
          is to be used for matching. This parameter can only be modified if
          the {{object}} is ''Static'' (as explained in the object
          description).
        </description>
        <syntax>
          <dataType ref="IPPrefix"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="DestIPExclude" access="readWrite">
        <description>
          If {{false}}, the rule matches only those packets that match the
          (masked) {{param|DestIP}} entry, if specified. If {{true}}, the rule
          matches all packets except those that match the (masked)
          {{param|DestIP}} entry, if specified. This parameter can only be
          modified if the {{object}} is ''Static'' (as explained in the object
          description).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourceIP" access="readWrite">
        <description>
          {{object}} criterion. Source IP address. {{empty}} indicates this
          criterion is not used for matching. This parameter can only be
          modified if the {{object}} is ''Static'' (as explained in the object
          description).
        </description>
        <syntax>
          <dataType ref="IPAddress"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceMask" access="readWrite">
        <description>
          Source IP address mask, but represented as an IP routing prefix using
          CIDR notation {{bibref|RFC4632}} (e.g. 192.168.0.0/16 in IPv4, and
          2001:db8:3210:11aa::/64 in IPv6). If not {{empty}}, only the
          indicated portion of the {{param|SourceIP}} address is to be used for
          matching. {{empty}} indicates that the full {{param|SourceIP}}
          address is to be used for matching. This parameter can only be
          modified if the {{object}} is ''Static'' (as explained in the object
          description).
        </description>
        <syntax>
          <dataType ref="IPPrefix"/>
          <default type="object" value=""/>
        </syntax>
      </parameter>

      <parameter name="SourceIPExclude" access="readWrite">
        <description>
          If {{false}}, the rule matches only those packets that match the
          (masked) {{param|SourceIP}} entry, if specified. If {{true}}, the
          rule matches all packets except those that match the (masked)
          {{param|SourceIP}} entry, if specified. This parameter can only be
          modified if the {{object}} is ''Static'' (as explained in the object
          description).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="Protocol" access="readWrite">
        <description>
          {{object}} criterion. Protocol number. A value of -1 indicates this
          criterion is not used for matching. This parameter can only be
          modified if the {{object}} is ''Static'' (as explained in the object
          description).
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="255"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="ProtocolExclude" access="readWrite">
        <description>
          If {{false}}, the rule matches only those packets that match the
          {{param|Protocol}} entry, if specified. If {{true}}, the rule matches
          all packets except those that match the {{param|Protocol}} entry, if
          specified. This parameter can only be modified if the {{object}} is
          ''Static'' (as explained in the object description).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DestPort" access="readWrite">
        <description>
          {{object}} criterion. Destination port number. A value of -1
          indicates this criterion is not used for matching. Note that Firewall
          rules are applied after any {{object|###.NAT}} processing, so if NAT
          is enabled on the source interface this is always the translated port
          number. This parameter can only be modified if the {{object}} is
          ''Static'' (as explained in the object description).
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DestPortRangeMax" access="readWrite">
        <description>
          {{object}} criterion. If specified, indicates the {{object}}
          criterion is to include the port range from {{param|DestPort}}
          through {{param}} (inclusive). If specified, {{param}} MUST be
          greater than or equal to {{param|DestPort}}. A value of -1 indicates
          that no port range is specified. Note that Firewall rules are applied
          after any {{object|###.NAT}} processing, so if NAT is enabled on the
          source interface this is always the translated port number. This
          parameter can only be modified if the {{object}} is ''Static'' (as
          explained in the object description).
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DestPortExclude" access="readWrite">
        <description>
          If {{false}}, the rule matches only those packets that match the
          {{param|DestPort}} entry (or port range), if specified. If {{true}},
          the rule matches all packets except those that match the
          {{param|DestPort}} entry (or port range), if specified. This
          parameter can only be modified if the {{object}} is ''Static'' (as
          explained in the object description).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="SourcePort" access="readWrite">
        <description>
          {{object}} criterion. Source port number. A value of -1 indicates
          this criterion is not used for matching. This parameter can only be
          modified if the {{object}} is ''Static'' (as explained in the object
          description).
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="SourcePortRangeMax" access="readWrite">
        <description>
          {{object}} criterion. If specified, indicates the {{object}}
          criterion is to include the port range from {{param|SourcePort}}
          through {{param}} (inclusive). If specified, {{param}} MUST be
          greater than or equal to {{param|SourcePort}}. A value of -1
          indicates that no port range is specified. This parameter can only be
          modified if the {{object}} is ''Static'' (as explained in the object
          description).
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="65535"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="SourcePortExclude" access="readWrite">
        <description>
          If {{false}}, the rule matches only those packets that match the
          {{param|SourcePort}} entry (or port range), if specified. If
          {{true}}, the rule matches all packets except those that match the
          {{param|SourcePort}} entry (or port range), if specified. This
          parameter can only be modified if the {{object}} is ''Static'' (as
          explained in the object description).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </syntax>
      </parameter>

      <parameter name="DSCP" access="readWrite">
        <description>
          {{object}} criterion. DiffServ codepoint (defined in
          {{bibref|RFC2474}}). If set to a Class Selector Codepoint (defined in
          {{bibref|RFC2474}}), all DSCP values that match the first 3 bits will
          be considered a valid match. A value of -1 indicates this criterion
          is not used for matching. This parameter can only be modified if the
          {{object}} is ''Static'' (as explained in the object description).
        </description>
        <syntax>
          <int>
            <range minInclusive="-1" maxInclusive="63"/>
          </int>
          <default type="object" value="-1"/>
        </syntax>
      </parameter>

      <parameter name="DSCPExclude" access="readWrite">
        <description>
          If {{false}}, the rule matches only those packets that match the
          {{param|DSCP}} entry, if specified. If {{true}}, the rule matchess
          all packets except those that match the {{param|DSCP}} entry, if
          specified. This parameter can only be modified if the {{object}} is
          ''Static'' (as explained in the object description).
        </description>
        <syntax>
          <boolean/>
          <default type="object" value="false"/>
        </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.SoftwareModules." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        Top level object for dynamically managed software applications.
      </description>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    <object name="Device.IPv6rd." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        Settings allowing a CPE to derive and route IPv6 Rapid Deployment (6rd)
        delegated prefixes as specified in {{bibref|RFC5969}}. The 6rd
        mechanism is intended to be implemented only on what {{bibref|RFC5969}}
        refers to as ''Customer Edge Routers'', i.e. on gateway devices, that
        support IPv6 on the LAN side and only have IPv4 connectivity on the WAN
        side. See the 6rd Theory of Operation {{bibref|TR-181i2a2|Appendix VI}}
        for a description of the working of this 6rd data model.
      </description>

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

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

    <object name="Device.IPv6rd.InterfaceSetting.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="InterfaceSettingNumberOfEntries">
      <description>
        6rd {{bibref|RFC5969}} settings. A 6rd delegated prefix is expected to
        be of maximum length 64 bits, and is the concatenation of the following
        two items:

        * Service provider IPv6 prefix: specified via the
          {{param|SPIPv6Prefix}} parameter

        * IPv4 address suffix: the IPv4 address with the first
          {{param|IPv4MaskLength}} bits removed This object definition is
          derived from {{bibref|RFC5969}} with some minor nomenclature changes.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable or disable this {{object}} instance.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}} 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="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="BorderRelayIPv4Addresses" access="readWrite">
        <description>
          List items are the IPv4 addresses (possibly anycast) of the 6rd
          Relay(s).
        </description>
        <syntax>
          <list maxItems="4"/>
          <dataType ref="IPv4Address"/>
        </syntax>
      </parameter>

      <parameter name="AllTrafficToBorderRelay" access="readWrite">
        <description>
          If {{true}}, the destination address for all 6rd traffic will be set
          (IPv4 destination address) to one of the
          {{param|BorderRelayIPv4Addresses}}. If {{false}}, traffic whose
          destination address begins with the same prefix as
          {{param|SPIPv6Prefix}} will be sent directly to the destination IPv4
          address of the endpoint, which is in the same 6rd domain. See 6rd
          Theory of Operation for further explanation
          {{bibref|TR-181i2a2|Appendix VI}}.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="SPIPv6Prefix" access="readWrite">
        <description>
          The Service Provider's 6rd IPv6 prefix for this deployment and this
          6rd RG.
        </description>
        <syntax>
          <dataType ref="IPv6Prefix"/>
        </syntax>
      </parameter>

      <parameter name="IPv4MaskLength" access="readWrite">
        <description>
          The number of high-order {{units}} that are identical across all IPv4
          addresses within a given 6rd domain. This number of {{units}} MUST be
          removed from the start of the IPv4 address when generating the 6rd
          delegated prefix. For example, if this value is 8, only the final 24
          {{units}} of the subscriber IPv4 prefix will be used when creating
          the IPv6 delegated prefix, determining the destination IPv4
          encapsulation address, etc. If the value is 0, then the whole 32
          {{units}} of the IPv4 address are used in the encoding.
        </description>
        <syntax>
          <unsignedInt>
            <range minInclusive="0" maxInclusive="32"/>
            <units value="bits"/>
          </unsignedInt>
        </syntax>
      </parameter>

      <parameter name="AddressSource" access="readWrite">
        <description>
          {{reference}} Points to the IPv4 address that is the source of the
          IPv4 address embedded in the IPv6 6rd prefix, and used as the source
          encapsulating IPv4 address. If the value is {{empty}} or this
          parameter is not present, the device will use internal logic to
          determine which IPv4 source address to use.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong"
                targetParent=".IP.Interface.{i}.IPv4Address." targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TunnelInterface" access="readOnly">
        <description>
          {{reference}} This is an IP interface of ''Type''
          {{enum|Tunnel|.IP.Interface.{i}.Type}} that is logically the tunnel
          entry point for upstream IPv6 traffic and is also logically the
          tunnel exit point for downstream IPv6 traffic (i.e. the entry point
          for non-tunneled upstream IPv6 traffic to enter a tunnel and become
          tunneled, or conversely, the exit point for downstream IPv6 traffic
          leaving a tunnel after being un-tunneled). IPv6 traffic that enters
          {{param}} from the LAN is expected to continue on through
          {{param|TunneledInterface}}, and traffic from the WAN is expected to
          come from {{param|TunneledInterface}} into {{param}}. {{param}} is a
          logical interface that can allow for classification, marking (of IPv6
          headers), and policing of IPv6 traffic that will be going over a 6rd
          tunnel. These functions are modeled in the {{object|.QoS.}} object.
          {{param}} can be used also to represent the 6rd virtual interface
          defined in {{bibref|RFC5969}}. Note: In 6rd, IPv6 packets arriving
          over one or more device LAN IP interfaces are logically fed into this
          {{param}}. Likewise, 6rd traffic from the WAN gets logically sent
          from this {{param}} to LAN IP interfaces.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TunneledInterface" access="readOnly">
        <description>
          {{reference}} This is an IP interface of ''Type''
          {{enum|Tunneled|.IP.Interface.{i}.Type}} that provides information
          about the IPv4 headers used to encapsulate the IPv6 packets.
          Encapsulated IPv6 traffic that enters {{param}} from the WAN is
          expected to continue on through {{param|TunnelInterface}}, and
          traffic from the LAN is expected to come from
          {{param|TunnelInterface}} into {{param}}. {{param}} is a logical
          interface that can allow for classification, marking (of IPv4 headers
          and VLAN tags), and policing of IPv4 packets that encapsulate IPv6
          packets in 6rd traffic. These functions are modeled in the
          {{object|.QoS.}} object. Note: In 6rd, {{param}} traffic originating
          from the LAN logically feeds into a WAN-side IPv4 capable IP
          interface that the "IPv6 6rd tunnel" goes over. 6rd traffic that
          enters over this IPv4 WAN interface gets logically sent to this
          {{param}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <object name="Device.DSLite." access="readOnly" minEntries="1"
        maxEntries="1">
      <description>
        Settings allowing a CPE to configure and route IPv6 Dual-Stack Lite
        (DSLite) as specified in {{bibref|DSLite}}. The DS-Lite mechanism is
        intended to be implemented only on gateway devices that support IPv4 on
        the LAN side and only have IPv6 connectivity on the WAN side. See the
        Dual-Stack Lite Theory of Operation {{bibref|TR-181i2a2|Appendix VII}}
        for a description of the working of this DS-Lite data model.
      </description>

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

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

    <object name="Device.DSLite.InterfaceSetting.{i}." access="readOnly"
        minEntries="0" maxEntries="unbounded"
        numEntriesParameter="InterfaceSettingNumberOfEntries">
      <description>
        DSLite {{bibref|DSLite}} settings.
      </description>
      <uniqueKey functional="false">
        <parameter ref="Alias"/>
      </uniqueKey>

      <parameter name="Enable" access="readWrite">
        <description>
          Enable or disable this {{object}} instance.
        </description>
        <syntax>
          <boolean/>
        </syntax>
      </parameter>

      <parameter name="Status" access="readOnly">
        <description>
          The status of this entry. {{enum}} 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="Enabled"/>
            <enumeration value="Error" optional="true"/>
          </string>
        </syntax>
      </parameter>

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

      <parameter name="EndpointAssignmentPrecedence" access="readWrite">
        <description>
          Indicates the preferred method to be used in assigning values to
          {{param|EndpointName}} and {{param|EndpointAddress}} when both static
          and dynamic values are available to them. See {{param|EndpointName}}
          and {{param|EndpointAddress}} for further clarification.
        </description>
        <syntax>
          <string>
            <enumeration value="DHCPv6"/>
            <enumeration value="Static"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EndpointName" access="readWrite">
        <description>
          The Fully Qualified Domain Name (FQDN) of the tunnel concentrator
          (remote endpoint). This parameter is based on ''OPTION_DS_LITE_NAME''
          from {{bibref|DSLite-options|Section 4}} and can be assigned
          statically (e.g. present in the factory default configuration or set
          by the ACS) or assigned dynamically (via DHCPv6). If both statically
          and dynamically assigned, then {{param|EndpointAssignmentPrecedence}}
          indicates whether it is the static configuration or the DHCPv6
          configuration that is actually applied to {{param}}. When {{param}}
          is assigned, the name is looked up (resolved) and the corresponding
          address is set in {{param|EndpointAddress}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="EndpointAddress" access="readWrite">
        <description>
          The address of the tunnel concentrator (remote endpoint). This
          parameter is based on ''OPTION_DS_LITE_ADDR'' from
          {{bibref|DSLite-options|Section 3}} and can be assigned statically
          (e.g. present in the factory default configuration or set by the ACS)
          or assigned dynamically (via DHCPv6). If both statically and
          dynamically assigned, then {{param|EndpointAssignmentPrecedence}}
          indicates whether it is the static configuration or the DHCPv6
          configuration that is actually applied to {{param}}. When
          {{param|EndpointName}} is assigned, the name is looked up (resolved)
          and the corresponding address is set in {{param}}.
        </description>
        <syntax>
          <dataType ref="IPv6Address"/>
        </syntax>
      </parameter>

      <parameter name="Origin" access="readOnly">
        <description>
          Method used to assign {{param|EndpointName}} and
          {{param|EndpointAddress}}. {{enum}}
        </description>
        <syntax>
          <string>
            <enumeration value="DHCPv6">
              <description>Assigned by DHCPv6 {{bibref|RFC3315}}.</description>
            </enumeration>
            <enumeration value="Static">
              <description>
                For example, present in the factory default configuration, set
                by the ACS, or set by some other management entity (e.g. via a
                GUI).
              </description>
            </enumeration>
          </string>
        </syntax>
      </parameter>

      <parameter name="TunnelInterface" access="readOnly">
        <description>
          {{reference}} This is an IP interface of ''Type''
          {{enum|Tunnel|.IP.Interface.{i}.Type}} that is logically the tunnel
          entry point for upstream IPv4 traffic and is also logically the
          tunnel exit point for downstream IPv4 traffic (i.e. the entry point
          for non-tunneled upstream IPv4 traffic to enter a tunnel and become
          tunneled, or conversely, the exit point for downstream IPv4 traffic
          leaving a tunnel after being un-tunneled). IPv4 traffic that enters
          {{param}} is expected to continue on through
          {{param|TunneledInterface}} from the LAN, and traffic from the WAN is
          expected to come from TunneledInterface into TunnelInterface.
          TunnelInterface is a logical interface that can allow for
          classification, marking (of IPv4 headers), and policing of IPv4
          traffic that will be going over a DS-Lite tunnel. These functions are
          modeled in the Device.QoS object. Note: In DS-Lite, IPv4 packets
          arriving over one or more device LAN IP interfaces are logically fed
          into this {{param}}. Likewise, DS-Lite traffic from the WAN gets
          logically sent from this {{param}} to LAN IP interfaces.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>

      <parameter name="TunneledInterface" access="readOnly">
        <description>
          {{reference}} This is an IP interface of ''Type''
          {{enum|Tunneled|.IP.Interface.{i}.Type}} that provides information
          about the IPv6 headers used to encapsulate the IPv4 packets.
          Encapsulated IPv4 traffic that enters {{param}} from the WAN is
          expected to continue on through {{param|TunnelInterface}}, and
          traffic from the LAN is expected to come from
          {{param|TunnelInterface}} into {{param}}. {{param}} is a logical
          interface that can allow for classification, marking (of IPv6 headers
          and VLAN tags), and policing of IPv6 packets that encapsulate IPv4
          packets in DS-Lite traffic. These functions are modeled in the
          {{object|.QoS.}} object. Note: In DS-Lite, {{param}} traffic
          originating from the LAN logically feeds into a WAN-side IPv6 capable
          IP interface that the "DSLite IPv4-in-IPv6 tunnel" goes over. DS-Lite
          traffic that enters over this IPv6 WAN interface gets logically sent
          to this {{param}}.
        </description>
        <syntax>
          <string>
            <size maxLength="256"/>
            <pathRef refType="strong" targetParent=".IP.Interface."
                targetType="row"/>
          </string>
        </syntax>
      </parameter>
    </object>

    <profile name="Download:1">
      <object ref="Device.IP.Diagnostics.Capabilities.PerformanceDiagnostic."
          requirement="present" status="deleted">
        <parameter ref="DownloadTransports" requirement="readOnly"
            status="deleted"/>
      </object>
      <object ref="Device.IP.Diagnostics.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"/>
        <parameter ref="DownloadTransports" requirement="readOnly"
            dmr:previousParameter="DownloadURL"/>
      </object>
    </profile>

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

    <profile name="Upload:1">
      <object ref="Device.IP.Diagnostics.Capabilities.PerformanceDiagnostic."
          requirement="present" status="deleted">
        <parameter ref="UploadTransports" requirement="readOnly"
            status="deleted"/>
      </object>
      <object ref="Device.IP.Diagnostics.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"/>
        <parameter ref="UploadTransports" requirement="readOnly"
            dmr:previousParameter="UploadURL"/>
      </object>
    </profile>

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

    <profile name="UDPEcho:1">
      <object ref="Device.IP.Diagnostics.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.IP.Diagnostics.UDPEchoConfig." requirement="present">
        <parameter ref="EchoPlusEnabled" 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="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.Users." requirement="present">
        <parameter ref="UserNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Users.User.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Username" requirement="readWrite"/>
        <parameter ref="Password" requirement="readWrite"/>
      </object>
    </profile>

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

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

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

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

    <profile name="NSLookupDiag:1">
      <object ref="Device.DNS.Diagnostics.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.DNS.Diagnostics.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="AdvancedFirewall:1" extends="SimpleFirewall:1"
        dmr:previousProfile="SimpleFirewall:1">
      <object ref="Device.Firewall." requirement="present">
        <parameter ref="AdvancedLevel" requirement="readWrite"/>
        <parameter ref="Type" requirement="readOnly"/>
        <parameter ref="LevelNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ChainNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Firewall.Level.{i}." requirement="createDelete">
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="Order" requirement="readWrite"/>
        <parameter ref="Chain" requirement="readOnly"/>
        <parameter ref="PortMappingEnabled" requirement="readWrite">
          <description>
            REQUIRED only for devices that support NAT.
          </description>
        </parameter>
        <parameter ref="DefaultPolicy" requirement="readWrite"/>
        <parameter ref="DefaultLogPolicy" requirement="readWrite"/>
      </object>
      <object ref="Device.Firewall.Chain.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="Creator" requirement="readOnly"/>
        <parameter ref="RuleNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Firewall.Chain.{i}.Rule.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Order" requirement="readWrite"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Target" requirement="readWrite"/>
        <parameter ref="TargetChain" requirement="readWrite"/>
        <parameter ref="SourceInterface" requirement="readWrite"/>
        <parameter ref="SourceInterfaceExclude" requirement="readWrite"/>
        <parameter ref="SourceAllInterfaces" requirement="readWrite"/>
        <parameter ref="DestInterface" requirement="readWrite"/>
        <parameter ref="DestInterfaceExclude" requirement="readWrite"/>
        <parameter ref="DestAllInterfaces" requirement="readWrite"/>
        <parameter ref="IPVersion" requirement="readWrite"/>
        <parameter ref="DestIP" requirement="readWrite"/>
        <parameter ref="DestMask" requirement="readWrite"/>
        <parameter ref="DestIPExclude" requirement="readWrite"/>
        <parameter ref="SourceIP" requirement="readWrite"/>
        <parameter ref="SourceMask" requirement="readWrite"/>
        <parameter ref="SourceIPExclude" requirement="readWrite"/>
        <parameter ref="Protocol" requirement="readWrite"/>
        <parameter ref="ProtocolExclude" requirement="readWrite"/>
        <parameter ref="DestPort" requirement="readWrite"/>
        <parameter ref="DestPortRangeMax" requirement="readWrite"/>
        <parameter ref="DestPortExclude" requirement="readWrite"/>
        <parameter ref="SourcePort" requirement="readWrite"/>
        <parameter ref="SourcePortRangeMax" requirement="readWrite"/>
        <parameter ref="SourcePortExclude" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="USBHostsBasic:1">
      <object ref="Device.USB.USBHosts." requirement="present">
        <parameter ref="HostNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.USB.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.USB.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.USB.USBHosts.Host.{i}." requirement="present">
        <parameter ref="Reset" requirement="readWrite"/>
        <parameter ref="PowerManagementEnable" requirement="readWrite"/>
      </object>
      <object ref="Device.USB.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.USB.USBHosts.Host.{i}.Device.{i}.Configuration.{i}."
          requirement="present">
        <parameter ref="ConfigurationNumber" requirement="readOnly"/>
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object
          ref="Device.USB.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.ManagementServer.DownloadAvailability."
          requirement="present"/>
      <object ref="Device.ManagementServer.DownloadAvailability.Announcement."
          requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="GroupNumberOfEntries" requirement="readOnly"/>
      </object>
      <object
          ref="Device.ManagementServer.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.ManagementServer.DownloadAvailability."
          requirement="present"/>
      <object ref="Device.ManagementServer.DownloadAvailability.Query."
          requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="URL" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="Baseline:1">
      <object ref="Device." requirement="present">
        <parameter ref="InterfaceStackNumberOfEntries" 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="ProvisioningCode" requirement="readWrite"/>
        <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>
      <object ref="Device.LANConfigSecurity." requirement="present">
        <parameter ref="ConfigPassword" requirement="readWrite"/>
      </object>
      <object ref="Device.DNS." requirement="present"/>
      <object ref="Device.DNS.Client." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="ServerNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DNS.Client.Server.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="DNSServer" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="Type" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="Baseline:2" base="Baseline:1"
        dmr:previousProfile="Baseline:1">
      <object ref="Device.InterfaceStack.{i}." requirement="present">
        <parameter ref="HigherLayer" requirement="readOnly"/>
        <parameter ref="LowerLayer" requirement="readOnly"/>
      </object>
      <object ref="Device.DNS." requirement="present">
        <parameter ref="SupportedRecordTypes" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="DNSRelay:1">
      <object ref="Device.DNS." requirement="present"/>
      <object ref="Device.DNS.Relay." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="ForwardNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DNS.Relay.Forwarding.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="DNSServer" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="Type" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="Routing:1">
      <object ref="Device.Routing." requirement="present">
        <parameter ref="RouterNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.RIP." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="SupportedModes" requirement="readOnly"/>
        <parameter ref="InterfaceSettingNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.RIP.InterfaceSetting.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="Version" requirement="readWrite"/>
        <parameter ref="AcceptRA" requirement="readWrite"/>
        <parameter ref="SendRA" requirement="readWrite"/>
      </object>
      <object ref="Device.Routing.Router.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="IPv4ForwardingNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.Router.{i}.IPv4Forwarding.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="DestIPAddress" requirement="readWrite"/>
        <parameter ref="DestSubnetMask" requirement="readWrite"/>
        <parameter ref="GatewayIPAddress" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="ForwardingMetric" requirement="readWrite"/>
        <parameter ref="StaticRoute" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="Routing:2" base="Routing:1" dmr:previousProfile="Routing:1">
      <object ref="Device.Routing.Router.{i}.IPv4Forwarding.{i}."
          requirement="createDelete">
        <parameter ref="Origin" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="IPv6Routing:1" dmr:previousProfile="Routing:2">
      <object ref="Device.Routing." requirement="present">
        <parameter ref="RouterNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.RIP." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="SupportedModes" requirement="readOnly"/>
        <parameter ref="InterfaceSettingNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.RIP.InterfaceSetting.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="Version" requirement="readWrite"/>
        <parameter ref="AcceptRA" requirement="readWrite"/>
        <parameter ref="SendRA" requirement="readWrite"/>
      </object>
      <object ref="Device.Routing.RouteInformation." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="InterfaceSettingNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.RouteInformation.InterfaceSetting.{i}."
          requirement="present">
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Interface" requirement="readOnly"/>
        <parameter ref="SourceRouter" requirement="readOnly"/>
        <parameter ref="PreferredRouteFlag" requirement="readOnly"/>
        <parameter ref="Prefix" requirement="readOnly"/>
        <parameter ref="RouteLifetime" requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.Router.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="IPv6ForwardingNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Routing.Router.{i}.IPv6Forwarding.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="DestIPPrefix" requirement="readWrite"/>
        <parameter ref="NextHop" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="ForwardingMetric" requirement="readWrite"/>
        <parameter ref="Origin" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="IPInterface:1">
      <object ref="Device.IP." requirement="present">
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.IP.Interface.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LowerLayers" requirement="readWrite"/>
        <parameter ref="Type" requirement="readOnly"/>
        <parameter ref="Reset" requirement="readWrite"/>
        <parameter ref="IPv4AddressNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.IP.Interface.{i}.IPv4Address.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="IPAddress" requirement="readWrite"/>
        <parameter ref="SubnetMask" requirement="readWrite"/>
        <parameter ref="AddressingType" requirement="readOnly"/>
      </object>
      <object ref="Device.IP.Interface.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
        <parameter ref="UnicastPacketsSent" requirement="readOnly"/>
        <parameter ref="UnicastPacketsReceived" requirement="readOnly"/>
        <parameter ref="DiscardPacketsSent" requirement="readOnly"/>
        <parameter ref="DiscardPacketsReceived" requirement="readOnly"/>
        <parameter ref="MulticastPacketsSent" requirement="readOnly"/>
        <parameter ref="MulticastPacketsReceived" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsSent" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsReceived" requirement="readOnly"/>
        <parameter ref="UnknownProtoPacketsReceived" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="IPInterface:2" base="IPInterface:1"
        dmr:previousProfile="IPInterface:1">
      <description>
        This profile is IPv4 specific.
      </description>
      <object ref="Device.IP." requirement="present">
        <parameter ref="IPv4Enable" requirement="readWrite"
            dmr:previousParameter="IPv4Capable"/>
        <parameter ref="IPv4Status" requirement="readOnly"/>
      </object>
      <object ref="Device.IP.Interface.{i}." requirement="createDelete">
        <parameter ref="IPv4Enable" requirement="readWrite"
            dmr:previousParameter="Enable"/>
      </object>
      <object ref="Device.IP.Interface.{i}.IPv4Address.{i}."
          requirement="createDelete">
        <parameter ref="Status" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="IPv6Interface:1" dmr:previousProfile="IPInterface:2">
      <object ref="Device.IP." requirement="present">
        <parameter ref="IPv6Capable" requirement="readOnly"/>
        <parameter ref="IPv6Enable" requirement="readWrite"/>
        <parameter ref="IPv6Status" requirement="readOnly"/>
        <parameter ref="ULAPrefix" requirement="readWrite"/>
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.IP.Interface.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="IPv6Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LowerLayers" requirement="readWrite"/>
        <parameter ref="Type" requirement="readOnly"/>
        <parameter ref="ULAEnable" requirement="readWrite"/>
        <parameter ref="Reset" requirement="readWrite"/>
        <parameter ref="IPv6AddressNumberOfEntries" requirement="readOnly"/>
        <parameter ref="IPv6PrefixNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.IP.Interface.{i}.IPv6Address.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="IPAddressStatus" requirement="readOnly"/>
        <parameter ref="IPAddress" requirement="readWrite"/>
        <parameter ref="Origin" requirement="readOnly"/>
        <parameter ref="Prefix" requirement="readWrite"/>
        <parameter ref="PreferredLifetime" requirement="readWrite"/>
        <parameter ref="ValidLifetime" requirement="readWrite"/>
      </object>
      <object ref="Device.IP.Interface.{i}.IPv6Prefix.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="PrefixStatus" requirement="readOnly"/>
        <parameter ref="Prefix" requirement="readWrite"/>
        <parameter ref="Origin" requirement="readOnly"/>
        <parameter ref="OnLink" requirement="readWrite"/>
        <parameter ref="Autonomous" requirement="readWrite"/>
        <parameter ref="PreferredLifetime" requirement="readWrite"/>
        <parameter ref="ValidLifetime" requirement="readWrite"/>
      </object>
      <object ref="Device.IP.Interface.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
        <parameter ref="UnicastPacketsSent" requirement="readOnly"/>
        <parameter ref="UnicastPacketsReceived" requirement="readOnly"/>
        <parameter ref="DiscardPacketsSent" requirement="readOnly"/>
        <parameter ref="DiscardPacketsReceived" requirement="readOnly"/>
        <parameter ref="MulticastPacketsSent" requirement="readOnly"/>
        <parameter ref="MulticastPacketsReceived" requirement="readOnly"/>
        <parameter ref="UnknownProtoPacketsReceived" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="PPPInterface:1">
      <object ref="Device.PPP." requirement="present">
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.PPP.Interface.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LowerLayers" requirement="readWrite"/>
        <parameter ref="Reset" requirement="readWrite"/>
        <parameter ref="Username" requirement="readWrite"/>
        <parameter ref="Password" requirement="readWrite"/>
        <parameter ref="ConnectionTrigger" requirement="readWrite"/>
      </object>
      <object ref="Device.PPP.Interface.{i}.PPPoE." requirement="present">
        <parameter ref="SessionID" requirement="readOnly"/>
        <parameter ref="ACName" requirement="readWrite"/>
        <parameter ref="ServiceName" requirement="readWrite"/>
      </object>
      <object ref="Device.PPP.Interface.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
        <parameter ref="UnicastPacketsSent" requirement="readOnly"/>
        <parameter ref="UnicastPacketsReceived" requirement="readOnly"/>
        <parameter ref="DiscardPacketsSent" requirement="readOnly"/>
        <parameter ref="DiscardPacketsReceived" requirement="readOnly"/>
        <parameter ref="MulticastPacketsSent" requirement="readOnly"/>
        <parameter ref="MulticastPacketsReceived" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsSent" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsReceived" requirement="readOnly"/>
        <parameter ref="UnknownProtoPacketsReceived" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="PPPInterface:2" base="PPPInterface:1"
        dmr:previousProfile="PPPInterface:1">
      <object ref="Device.PPP." requirement="present">
        <parameter ref="SupportedNCPs" requirement="readOnly"/>
      </object>
      <object ref="Device.PPP.Interface.{i}." requirement="createDelete">
        <parameter ref="IPv6CPEnable" requirement="readWrite">
          <description>
            REQUIRED only for IPv6 capable devices.
          </description>
        </parameter>
      </object>
      <object ref="Device.PPP.Interface.{i}.IPv6CP." requirement="present">
        <description>
          REQUIRED only for IPv6 capable devices.
        </description>
        <parameter ref="LocalInterfaceIdentifier" requirement="readOnly"/>
        <parameter ref="RemoteInterfaceIdentifier" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="VLANTermination:1">
      <object ref="Device.Ethernet." requirement="present">
        <parameter ref="VLANTerminationNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Ethernet.VLANTermination.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LowerLayers" requirement="readWrite"/>
        <parameter ref="VLANID" requirement="readWrite"/>
      </object>
      <object ref="Device.Ethernet.VLANTermination.{i}.Stats."
          requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
        <parameter ref="UnicastPacketsSent" requirement="readOnly"/>
        <parameter ref="UnicastPacketsReceived" requirement="readOnly"/>
        <parameter ref="DiscardPacketsSent" requirement="readOnly"/>
        <parameter ref="DiscardPacketsReceived" requirement="readOnly"/>
        <parameter ref="MulticastPacketsSent" requirement="readOnly"/>
        <parameter ref="MulticastPacketsReceived" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsSent" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsReceived" requirement="readOnly"/>
        <parameter ref="UnknownProtoPacketsReceived" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="EthernetLink:1">
      <object ref="Device.Ethernet." requirement="present">
        <parameter ref="LinkNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Ethernet.Link.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LowerLayers" requirement="readWrite"/>
        <parameter ref="MACAddress" requirement="readOnly"/>
      </object>
      <object ref="Device.Ethernet.Link.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
        <parameter ref="UnicastPacketsSent" requirement="readOnly"/>
        <parameter ref="UnicastPacketsReceived" requirement="readOnly"/>
        <parameter ref="DiscardPacketsSent" requirement="readOnly"/>
        <parameter ref="DiscardPacketsReceived" requirement="readOnly"/>
        <parameter ref="MulticastPacketsSent" requirement="readOnly"/>
        <parameter ref="MulticastPacketsReceived" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsSent" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsReceived" requirement="readOnly"/>
        <parameter ref="UnknownProtoPacketsReceived" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="Bridge:1">
      <object ref="Device.Bridging." requirement="present">
        <parameter ref="MaxBridgeEntries" requirement="readOnly"/>
        <parameter ref="MaxDBridgeEntries" requirement="readOnly"/>
        <parameter ref="BridgeNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Bridging.Bridge.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="PortNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Bridging.Bridge.{i}.Port.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LowerLayers" requirement="readWrite"/>
        <parameter ref="ManagementPort" requirement="readWrite"/>
        <parameter ref="PortState" requirement="readOnly"/>
      </object>
      <object ref="Device.Bridging.Bridge.{i}.Port.{i}.Stats."
          requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
        <parameter ref="UnicastPacketsSent" requirement="readOnly"/>
        <parameter ref="UnicastPacketsReceived" requirement="readOnly"/>
        <parameter ref="DiscardPacketsSent" requirement="readOnly"/>
        <parameter ref="DiscardPacketsReceived" requirement="readOnly"/>
        <parameter ref="MulticastPacketsSent" requirement="readOnly"/>
        <parameter ref="MulticastPacketsReceived" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsSent" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsReceived" requirement="readOnly"/>
        <parameter ref="UnknownProtoPacketsReceived" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="VLANBridge:1">
      <object ref="Device.Bridging." requirement="present">
        <parameter ref="MaxBridgeEntries" requirement="readOnly"/>
        <parameter ref="MaxDBridgeEntries" requirement="readOnly"/>
        <parameter ref="MaxQBridgeEntries" requirement="readOnly"/>
        <parameter ref="MaxVLANEntries" requirement="readOnly"/>
        <parameter ref="BridgeNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Bridging.Bridge.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Standard" requirement="readWrite"/>
        <parameter ref="PortNumberOfEntries" requirement="readOnly"/>
        <parameter ref="VLANNumberOfEntries" requirement="readOnly"/>
        <parameter ref="VLANPortNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Bridging.Bridge.{i}.Port.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LowerLayers" requirement="readWrite"/>
        <parameter ref="ManagementPort" requirement="readWrite"/>
        <parameter ref="DefaultUserPriority" requirement="readWrite"/>
        <parameter ref="PriorityRegeneration" requirement="readWrite"/>
        <parameter ref="PortState" requirement="readOnly"/>
        <parameter ref="PVID" requirement="readWrite"/>
        <parameter ref="AcceptableFrameTypes" requirement="readWrite"/>
        <parameter ref="IngressFiltering" requirement="readWrite"/>
        <parameter ref="PriorityTagging" requirement="readWrite"/>
      </object>
      <object ref="Device.Bridging.Bridge.{i}.Port.{i}.Stats."
          requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
        <parameter ref="UnicastPacketsSent" requirement="readOnly"/>
        <parameter ref="UnicastPacketsReceived" requirement="readOnly"/>
        <parameter ref="DiscardPacketsSent" requirement="readOnly"/>
        <parameter ref="DiscardPacketsReceived" requirement="readOnly"/>
        <parameter ref="MulticastPacketsSent" requirement="readOnly"/>
        <parameter ref="MulticastPacketsReceived" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsSent" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsReceived" requirement="readOnly"/>
        <parameter ref="UnknownProtoPacketsReceived" requirement="readOnly"/>
      </object>
      <object ref="Device.Bridging.Bridge.{i}.VLAN.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="VLANID" requirement="readWrite"/>
      </object>
      <object ref="Device.Bridging.Bridge.{i}.VLANPort.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="VLAN" requirement="readWrite"/>
        <parameter ref="Port" requirement="readWrite"/>
        <parameter ref="Untagged" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="BridgeFilter:1">
      <object ref="Device.Bridging." requirement="present">
        <parameter ref="MaxFilterEntries" requirement="readOnly"/>
        <parameter ref="FilterNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Bridging.Filter.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Bridge" requirement="readWrite"/>
        <parameter ref="Order" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="VLANIDFilter" requirement="readWrite"/>
        <parameter ref="EthertypeFilterList" requirement="readWrite"/>
        <parameter ref="EthertypeFilterExclude" requirement="readWrite"/>
        <parameter ref="SourceMACAddressFilterList" requirement="readWrite"/>
        <parameter ref="SourceMACAddressFilterExclude" requirement="readWrite"/>
        <parameter ref="DestMACAddressFilterList" requirement="readWrite"/>
        <parameter ref="DestMACAddressFilterExclude" requirement="readWrite"/>
        <parameter ref="SourceMACFromVendorClassIDFilter"
            requirement="readWrite"/>
        <parameter ref="SourceMACFromVendorClassIDFilterExclude"
            requirement="readWrite"/>
        <parameter ref="SourceMACFromVendorClassIDMode"
            requirement="readWrite"/>
        <parameter ref="DestMACFromVendorClassIDFilter"
            requirement="readWrite"/>
        <parameter ref="DestMACFromVendorClassIDFilterExclude"
            requirement="readWrite"/>
        <parameter ref="DestMACFromVendorClassIDMode" requirement="readWrite"/>
        <parameter ref="SourceMACFromClientIDFilter" requirement="readWrite"/>
        <parameter ref="SourceMACFromClientIDFilterExclude"
            requirement="readWrite"/>
        <parameter ref="DestMACFromClientIDFilter" requirement="readWrite"/>
        <parameter ref="DestMACFromClientIDFilterExclude"
            requirement="readWrite"/>
        <parameter ref="SourceMACFromUserClassIDFilter"
            requirement="readWrite"/>
        <parameter ref="SourceMACFromUserClassIDFilterExclude"
            requirement="readWrite"/>
        <parameter ref="DestMACFromUserClassIDFilter" requirement="readWrite"/>
        <parameter ref="DestMACFromUserClassIDFilterExclude"
            requirement="readWrite"/>
      </object>
    </profile>

    <profile name="BridgeFilter:2" base="BridgeFilter:1"
        dmr:previousProfile="BridgeFilter:1">
      <object ref="Device.Bridging.Filter.{i}." requirement="createDelete">
        <parameter ref="DHCPType" requirement="readWrite"
            dmr:previousParameter="Interface"/>
        <parameter ref="SourceMACFromVendorClassIDFilter"
            requirement="readWrite">
          <description>
            REQUIRED only for IPv4 capable devices.
          </description>
        </parameter>
        <parameter ref="DestMACFromVendorClassIDFilter"
            requirement="readWrite">
          <description>
            REQUIRED only for IPv4 capable devices.
          </description>
        </parameter>
        <parameter ref="SourceMACFromVendorClassIDFilterv6"
            requirement="readWrite">
          <description>
            REQUIRED only for IPv6 capable devices.
          </description>
        </parameter>
        <parameter ref="DestMACFromVendorClassIDFilterv6"
            requirement="readWrite">
          <description>
            REQUIRED only for IPv6 capable devices.
          </description>
        </parameter>
      </object>
    </profile>

    <profile name="ATMLink:1">
      <object ref="Device.ATM." requirement="present">
        <parameter ref="LinkNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.ATM.Link.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LowerLayers" requirement="readWrite"/>
        <parameter ref="LinkType" requirement="readWrite"/>
        <parameter ref="DestinationAddress" requirement="readWrite"/>
        <parameter ref="Encapsulation" requirement="readWrite"/>
        <parameter ref="FCSPreserved" requirement="readWrite"/>
        <parameter ref="VCSearchList" requirement="readWrite"/>
        <parameter ref="AAL" requirement="readOnly"/>
      </object>
      <object ref="Device.ATM.Link.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
        <parameter ref="UnicastPacketsSent" requirement="readOnly"/>
        <parameter ref="UnicastPacketsReceived" requirement="readOnly"/>
        <parameter ref="DiscardPacketsSent" requirement="readOnly"/>
        <parameter ref="DiscardPacketsReceived" requirement="readOnly"/>
        <parameter ref="MulticastPacketsSent" requirement="readOnly"/>
        <parameter ref="MulticastPacketsReceived" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsSent" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsReceived" requirement="readOnly"/>
        <parameter ref="UnknownProtoPacketsReceived" requirement="readOnly"/>
        <parameter ref="TransmittedBlocks" requirement="readOnly"/>
        <parameter ref="ReceivedBlocks" requirement="readOnly"/>
        <parameter ref="CRCErrors" requirement="readOnly"/>
        <parameter ref="HECErrors" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="PTMLink:1">
      <object ref="Device.PTM." requirement="present">
        <parameter ref="LinkNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.PTM.Link.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LowerLayers" requirement="readWrite"/>
        <parameter ref="MACAddress" requirement="readOnly"/>
      </object>
      <object ref="Device.PTM.Link.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
        <parameter ref="UnicastPacketsSent" requirement="readOnly"/>
        <parameter ref="UnicastPacketsReceived" requirement="readOnly"/>
        <parameter ref="DiscardPacketsSent" requirement="readOnly"/>
        <parameter ref="DiscardPacketsReceived" requirement="readOnly"/>
        <parameter ref="MulticastPacketsSent" requirement="readOnly"/>
        <parameter ref="MulticastPacketsReceived" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsSent" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsReceived" requirement="readOnly"/>
        <parameter ref="UnknownProtoPacketsReceived" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="EthernetInterface:1">
      <object ref="Device.Ethernet." requirement="present">
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Ethernet.Interface.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="Upstream" requirement="readOnly"/>
        <parameter ref="MACAddress" requirement="readOnly"/>
        <parameter ref="MaxBitRate" requirement="readWrite"/>
        <parameter ref="DuplexMode" requirement="readWrite"/>
      </object>
      <object ref="Device.Ethernet.Interface.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
        <parameter ref="UnicastPacketsSent" requirement="readOnly"/>
        <parameter ref="UnicastPacketsReceived" requirement="readOnly"/>
        <parameter ref="DiscardPacketsSent" requirement="readOnly"/>
        <parameter ref="DiscardPacketsReceived" requirement="readOnly"/>
        <parameter ref="MulticastPacketsSent" requirement="readOnly"/>
        <parameter ref="MulticastPacketsReceived" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsSent" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsReceived" requirement="readOnly"/>
        <parameter ref="UnknownProtoPacketsReceived" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="ADSL:1">
      <description>
        Note: This profile is valid for G.992.1 modems.
      </description>
      <object ref="Device.DSL." requirement="present">
        <parameter ref="LineNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ChannelNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Line.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="Upstream" requirement="readOnly"/>
        <parameter ref="UpstreamMaxBitRate" requirement="readOnly"/>
        <parameter ref="DownstreamMaxBitRate" requirement="readOnly"/>
        <parameter ref="UpstreamNoiseMargin" requirement="readOnly"/>
        <parameter ref="DownstreamNoiseMargin" requirement="readOnly"/>
        <parameter ref="UpstreamAttenuation" requirement="readOnly"/>
        <parameter ref="DownstreamAttenuation" requirement="readOnly"/>
        <parameter ref="UpstreamPower" requirement="readOnly"/>
        <parameter ref="DownstreamPower" requirement="readOnly"/>
        <parameter ref="XTURVendor" requirement="readOnly"/>
        <parameter ref="XTURCountry" requirement="readOnly"/>
        <parameter ref="XTUCVendor" requirement="readOnly"/>
        <parameter ref="XTUCCountry" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Line.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
        <parameter ref="TotalStart" requirement="readOnly"/>
        <parameter ref="ShowtimeStart" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Line.{i}.Stats.Total." requirement="present">
        <parameter ref="ErroredSecs" requirement="readOnly"/>
        <parameter ref="SeverelyErroredSecs" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Line.{i}.Stats.Showtime." requirement="present">
        <parameter ref="ErroredSecs" requirement="readOnly"/>
        <parameter ref="SeverelyErroredSecs" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Channel.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="UpstreamCurrRate" requirement="readOnly"/>
        <parameter ref="DownstreamCurrRate" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Channel.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
        <parameter ref="TotalStart" requirement="readOnly"/>
        <parameter ref="ShowtimeStart" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Channel.{i}.Stats.Total." requirement="present">
        <parameter ref="XTURFECErrors" requirement="readOnly"/>
        <parameter ref="XTUCFECErrors" requirement="readOnly"/>
        <parameter ref="XTURHECErrors" requirement="readOnly"/>
        <parameter ref="XTUCHECErrors" requirement="readOnly"/>
        <parameter ref="XTURCRCErrors" requirement="readOnly"/>
        <parameter ref="XTUCCRCErrors" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Channel.{i}.Stats.Showtime."
          requirement="present">
        <parameter ref="XTURFECErrors" requirement="readOnly"/>
        <parameter ref="XTUCFECErrors" requirement="readOnly"/>
        <parameter ref="XTURHECErrors" requirement="readOnly"/>
        <parameter ref="XTUCHECErrors" requirement="readOnly"/>
        <parameter ref="XTURCRCErrors" requirement="readOnly"/>
        <parameter ref="XTUCCRCErrors" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="ADSL2:1" dmr:previousProfile="ADSL:1">
      <description>
        Note: This profile is valid for G.992.3 and G.992.5 modems.
      </description>
      <object ref="Device.DSL." requirement="present">
        <parameter ref="LineNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ChannelNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Line.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="Upstream" requirement="readOnly"/>
        <parameter ref="StandardsSupported" requirement="readOnly"/>
        <parameter ref="StandardUsed" requirement="readOnly"/>
        <parameter ref="UpstreamMaxBitRate" requirement="readOnly"/>
        <parameter ref="DownstreamMaxBitRate" requirement="readOnly"/>
        <parameter ref="UpstreamNoiseMargin" requirement="readOnly"/>
        <parameter ref="DownstreamNoiseMargin" requirement="readOnly"/>
        <parameter ref="UpstreamPower" requirement="readOnly"/>
        <parameter ref="DownstreamPower" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Line.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Line.{i}.TestParams." requirement="present">
        <parameter ref="HLOGpsds" requirement="readOnly"/>
        <parameter ref="HLOGpsus" requirement="readOnly"/>
        <parameter ref="HLOGMTds" requirement="readOnly"/>
        <parameter ref="HLOGMTus" requirement="readOnly"/>
        <parameter ref="QLNpsds" requirement="readOnly"/>
        <parameter ref="QLNpsus" requirement="readOnly"/>
        <parameter ref="QLNMTds" requirement="readOnly"/>
        <parameter ref="QLNMTus" requirement="readOnly"/>
        <parameter ref="SNRpsds" requirement="readOnly"/>
        <parameter ref="SNRpsus" requirement="readOnly"/>
        <parameter ref="SNRMTds" requirement="readOnly"/>
        <parameter ref="SNRMTus" requirement="readOnly"/>
        <parameter ref="LATNds" requirement="readOnly"/>
        <parameter ref="LATNus" requirement="readOnly"/>
        <parameter ref="SATNds" requirement="readOnly"/>
        <parameter ref="SATNus" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Channel.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LinkEncapsulationSupported" requirement="readOnly"/>
        <parameter ref="LinkEncapsulationUsed" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Channel.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
        <parameter ref="TotalStart" requirement="readOnly"/>
        <parameter ref="ShowtimeStart" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="VDSL2:1">
      <object ref="Device.DSL." requirement="present">
        <parameter ref="LineNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ChannelNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Line.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="Upstream" requirement="readOnly"/>
        <parameter ref="StandardsSupported" requirement="readOnly"/>
        <parameter ref="StandardUsed" requirement="readOnly"/>
        <parameter ref="AllowedProfiles" requirement="readOnly"/>
        <parameter ref="CurrentProfile" requirement="readOnly"/>
        <parameter ref="UPBOKLE" requirement="readOnly"/>
        <parameter ref="UpstreamMaxBitRate" requirement="readOnly"/>
        <parameter ref="DownstreamMaxBitRate" requirement="readOnly"/>
        <parameter ref="UpstreamNoiseMargin" requirement="readOnly"/>
        <parameter ref="DownstreamNoiseMargin" requirement="readOnly"/>
        <parameter ref="UpstreamAttenuation" requirement="readOnly"/>
        <parameter ref="DownstreamAttenuation" requirement="readOnly"/>
        <parameter ref="UpstreamPower" requirement="readOnly"/>
        <parameter ref="DownstreamPower" requirement="readOnly"/>
        <parameter ref="TRELLISds" requirement="readOnly"/>
        <parameter ref="TRELLISus" requirement="readOnly"/>
        <parameter ref="ACTSNRMODEds" requirement="readOnly"/>
        <parameter ref="ACTSNRMODEus" requirement="readOnly"/>
        <parameter ref="ACTUALCE" requirement="readOnly"/>
        <parameter ref="SNRMpbds" requirement="readOnly"/>
        <parameter ref="SNRMpbus" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Line.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Line.{i}.TestParams." requirement="present">
        <parameter ref="HLOGGds" requirement="readOnly"/>
        <parameter ref="HLOGGus" requirement="readOnly"/>
        <parameter ref="HLOGpsds" requirement="readOnly"/>
        <parameter ref="HLOGpsus" requirement="readOnly"/>
        <parameter ref="HLOGMTds" requirement="readOnly"/>
        <parameter ref="HLOGMTus" requirement="readOnly"/>
        <parameter ref="QLNGds" requirement="readOnly"/>
        <parameter ref="QLNGus" requirement="readOnly"/>
        <parameter ref="QLNpsds" requirement="readOnly"/>
        <parameter ref="QLNpsus" requirement="readOnly"/>
        <parameter ref="QLNMTds" requirement="readOnly"/>
        <parameter ref="QLNMTus" requirement="readOnly"/>
        <parameter ref="SNRGds" requirement="readOnly"/>
        <parameter ref="SNRGus" requirement="readOnly"/>
        <parameter ref="SNRpsds" requirement="readOnly"/>
        <parameter ref="SNRpsus" requirement="readOnly"/>
        <parameter ref="SNRMTds" requirement="readOnly"/>
        <parameter ref="SNRMTus" requirement="readOnly"/>
        <parameter ref="LATNds" requirement="readOnly"/>
        <parameter ref="LATNus" requirement="readOnly"/>
        <parameter ref="SATNds" requirement="readOnly"/>
        <parameter ref="SATNus" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Channel.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LinkEncapsulationSupported" requirement="readOnly"/>
        <parameter ref="LinkEncapsulationUsed" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.Channel.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
        <parameter ref="TotalStart" requirement="readOnly"/>
        <parameter ref="ShowtimeStart" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="BondedDSL:1">
      <object ref="Device.DSL." requirement="present">
        <parameter ref="BondingGroupNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.BondingGroup.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="LowerLayers" requirement="readOnly"/>
        <parameter ref="GroupStatus" requirement="readOnly"/>
        <parameter ref="BondScheme" requirement="readOnly"/>
        <parameter ref="GroupCapacity" requirement="readOnly"/>
        <parameter ref="RunningTime" requirement="readOnly"/>
        <parameter ref="BondedChannelNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.BondingGroup.{i}.BondedChannel.{i}."
          requirement="present">
        <parameter ref="Channel" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet."
          requirement="present"/>
      <object
          ref="Device.DSL.BondingGroup.{i}.BondedChannel.{i}.Ethernet.Stats."
          requirement="present">
        <parameter ref="UnderflowErrorsSent" requirement="readOnly"/>
        <parameter ref="CRCErrorsReceived" requirement="readOnly"/>
        <parameter ref="AlignmentErrorsReceived" requirement="readOnly"/>
        <parameter ref="ShortPacketsReceived" requirement="readOnly"/>
        <parameter ref="LongPacketsReceived" requirement="readOnly"/>
        <parameter ref="OverflowErrorsReceived" requirement="readOnly"/>
        <parameter ref="PauseFramesReceived" requirement="readOnly"/>
        <parameter ref="FramesDropped" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.BondingGroup.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="TotalStart" requirement="readOnly"/>
        <parameter ref="CurrentDayStart" requirement="readOnly"/>
        <parameter ref="QuarterHourStart" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.BondingGroup.{i}.Stats.Total."
          requirement="present">
        <parameter ref="FailureReasons" requirement="readOnly"/>
        <parameter ref="UpstreamRate" requirement="readOnly"/>
        <parameter ref="DownstreamRate" requirement="readOnly"/>
        <parameter ref="UpstreamPacketLoss" requirement="readOnly"/>
        <parameter ref="DownstreamPacketLoss" requirement="readOnly"/>
        <parameter ref="FailureCount" requirement="readOnly"/>
        <parameter ref="ErroredSeconds" requirement="readOnly"/>
        <parameter ref="SeverelyErroredSeconds" requirement="readOnly"/>
        <parameter ref="UnavailableSeconds" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.BondingGroup.{i}.Stats.CurrentDay."
          requirement="present">
        <parameter ref="FailureReasons" requirement="readOnly"/>
        <parameter ref="UpstreamRate" requirement="readOnly"/>
        <parameter ref="DownstreamRate" requirement="readOnly"/>
        <parameter ref="UpstreamPacketLoss" requirement="readOnly"/>
        <parameter ref="DownstreamPacketLoss" requirement="readOnly"/>
        <parameter ref="FailureCount" requirement="readOnly"/>
        <parameter ref="ErroredSeconds" requirement="readOnly"/>
        <parameter ref="SeverelyErroredSeconds" requirement="readOnly"/>
        <parameter ref="UnavailableSeconds" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.BondingGroup.{i}.Stats.QuarterHour."
          requirement="present">
        <parameter ref="FailureReasons" requirement="readOnly"/>
        <parameter ref="UpstreamRate" requirement="readOnly"/>
        <parameter ref="DownstreamRate" requirement="readOnly"/>
        <parameter ref="UpstreamPacketLoss" requirement="readOnly"/>
        <parameter ref="DownstreamPacketLoss" requirement="readOnly"/>
        <parameter ref="FailureCount" requirement="readOnly"/>
        <parameter ref="ErroredSeconds" requirement="readOnly"/>
        <parameter ref="SeverelyErroredSeconds" requirement="readOnly"/>
        <parameter ref="UnavailableSeconds" requirement="readOnly"/>
      </object>
      <object ref="Device.DSL.BondingGroup.{i}.Ethernet."
          requirement="present"/>
      <object ref="Device.DSL.BondingGroup.{i}.Ethernet.Stats."
          requirement="present">
        <parameter ref="PAFErrors" requirement="readOnly"/>
        <parameter ref="PAFSmallFragments" requirement="readOnly"/>
        <parameter ref="PAFLargeFragments" requirement="readOnly"/>
        <parameter ref="PAFBadFragments" requirement="readOnly"/>
        <parameter ref="PAFLostFragments" requirement="readOnly"/>
        <parameter ref="PAFLateFragments" requirement="readOnly"/>
        <parameter ref="PAFLostStarts" requirement="readOnly"/>
        <parameter ref="PAFLostEnds" requirement="readOnly"/>
        <parameter ref="PAFOverflows" requirement="readOnly"/>
        <parameter ref="PauseFramesSent" requirement="readOnly"/>
        <parameter ref="CRCErrorsReceived" requirement="readOnly"/>
        <parameter ref="AlignmentErrorsReceived" requirement="readOnly"/>
        <parameter ref="ShortPacketsReceived" requirement="readOnly"/>
        <parameter ref="LongPacketsReceived" requirement="readOnly"/>
        <parameter ref="OverflowErrorsReceived" requirement="readOnly"/>
        <parameter ref="FramesDropped" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="HPNA:1">
      <object ref="Device.HPNA." requirement="present">
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.HPNA.Interface.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="Upstream" requirement="readOnly"/>
        <parameter ref="MACAddress" requirement="readOnly"/>
        <parameter ref="FirmwareVersion" requirement="readOnly"/>
        <parameter ref="MaxBitRate" requirement="readOnly"/>
        <parameter ref="NetworkUtilization" requirement="readOnly"/>
        <parameter ref="PossibleConnectionTypes" requirement="readOnly"/>
        <parameter ref="ConnectionType" requirement="readOnly"/>
        <parameter ref="PossibleSpectralModes" requirement="readOnly"/>
        <parameter ref="SpectralMode" requirement="readOnly"/>
        <parameter ref="MTU" requirement="readOnly"/>
        <parameter ref="NoiseMargin" requirement="readOnly"/>
        <parameter ref="MinMulticastRate" requirement="readOnly"/>
        <parameter ref="NegMulticastRate" requirement="readOnly"/>
        <parameter ref="MasterSelectionMode" requirement="readOnly"/>
        <parameter ref="AssociatedDeviceNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.HPNA.Interface.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
      </object>
      <object ref="Device.HPNA.Interface.{i}.AssociatedDevice.{i}."
          requirement="present">
        <parameter ref="MACAddress" requirement="readOnly"/>
        <parameter ref="NodeID" requirement="readOnly"/>
        <parameter ref="IsMaster" requirement="readOnly"/>
        <parameter ref="Synced" requirement="readOnly"/>
        <parameter ref="TotalSyncTime" requirement="readOnly"/>
        <parameter ref="Active" requirement="readOnly"/>
        <parameter ref="MaxBitRate" requirement="readOnly"/>
        <parameter ref="PHYDiagnosticsEnable" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="HPNADiagnostics:1">
      <object ref="Device.HPNA.Diagnostics.PerformanceMonitoring."
          requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="SampleInterval" requirement="readOnly"/>
      </object>
      <object ref="Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes."
          requirement="present">
        <parameter ref="CurrentStart" requirement="readOnly"/>
        <parameter ref="CurrentEnd" requirement="readOnly"/>
        <parameter ref="NodeNumberOfEntries" requirement="readOnly"/>
      </object>
      <object
          ref="Device.HPNA.Diagnostics.PerformanceMonitoring.Nodes.Node.{i}."
          requirement="present">
        <parameter ref="MACAddress" requirement="readOnly"/>
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsSent" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsReceived" requirement="readOnly"/>
        <parameter ref="MulticastPacketsSent" requirement="readOnly"/>
        <parameter ref="MulticastPacketsReceived" requirement="readOnly"/>
        <parameter ref="PacketsCrcErrored" requirement="readOnly"/>
        <parameter ref="PacketsCrcErroredHost" requirement="readOnly"/>
        <parameter ref="PacketsShortErrored" requirement="readOnly"/>
        <parameter ref="PacketsShortErroredHost" requirement="readOnly"/>
        <parameter ref="RxPacketsDropped" requirement="readOnly"/>
        <parameter ref="TxPacketsDropped" requirement="readOnly"/>
        <parameter ref="ControlRequestLocal" requirement="readOnly"/>
        <parameter ref="ControlReplyLocal" requirement="readOnly"/>
        <parameter ref="ControlRequestRemote" requirement="readOnly"/>
      </object>
      <object ref="Device.HPNA.Diagnostics.PerformanceMonitoring.Channels."
          requirement="present">
        <parameter ref="TimeStamp" requirement="readOnly"/>
        <parameter ref="ChannelNumberOfEntries" requirement="readOnly"/>
      </object>
      <object
          ref="Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}."
          requirement="present">
        <parameter ref="HPNASrcMACAddress" requirement="readOnly"/>
        <parameter ref="HPNADestMACAddress" requirement="readOnly"/>
        <parameter ref="HostSrcMACAddress" requirement="readOnly"/>
        <parameter ref="HostDestMACAddress" requirement="readOnly"/>
        <parameter ref="PHYRate" requirement="readOnly"/>
        <parameter ref="BaudRate" requirement="readOnly"/>
        <parameter ref="SNR" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
      </object>
      <object ref="Device.HPNA.Diagnostics.PHYThroughput."
          requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="NumPacketsInBurst" requirement="readWrite"/>
        <parameter ref="BurstInterval" requirement="readWrite"/>
        <parameter ref="TestPacketPayloadLength" requirement="readWrite"/>
        <parameter ref="PayloadEncoding" requirement="readWrite"/>
        <parameter ref="PayloadDataGen" requirement="readWrite"/>
        <parameter ref="PayloadType" requirement="readWrite"/>
        <parameter ref="PriorityLevel" requirement="readWrite"/>
        <parameter ref="ResultNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.HPNA.Diagnostics.PHYThroughput.Result.{i}."
          requirement="present">
        <parameter ref="SrcMACAddress" requirement="readOnly"/>
        <parameter ref="DestMACAddress" requirement="readOnly"/>
        <parameter ref="PHYRate" requirement="readOnly"/>
        <parameter ref="BaudRate" requirement="readOnly"/>
        <parameter ref="SNR" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="HPNAQoS:1">
      <object ref="Device.HPNA.Interface.{i}.QoS." requirement="present">
        <parameter ref="FlowSpecNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}."
          requirement="createDelete">
        <parameter ref="FlowType" requirement="readWrite"/>
        <parameter ref="Priority" requirement="readWrite"/>
        <parameter ref="Latency" requirement="readWrite"/>
        <parameter ref="Jitter" requirement="readWrite"/>
        <parameter ref="PacketSize" requirement="readWrite"/>
        <parameter ref="MinRate" requirement="readWrite"/>
        <parameter ref="AvgRate" requirement="readWrite"/>
        <parameter ref="MaxRate" requirement="readWrite"/>
        <parameter ref="PER" requirement="readWrite"/>
        <parameter ref="Timeout" requirement="readWrite"/>
      </object>
      <object
          ref="Device.HPNA.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}."
          requirement="present">
        <parameter ref="FlowSpec" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="HomePlug:1">
      <object ref="Device.HomePlug." requirement="present">
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.HomePlug.Interface.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="Upstream" requirement="readOnly"/>
        <parameter ref="MACAddress" requirement="readOnly"/>
        <parameter ref="LogicalNetwork" requirement="readWrite"/>
        <parameter ref="Version" requirement="readOnly"/>
        <parameter ref="FirmwareVersion" requirement="readOnly"/>
        <parameter ref="ForceCCo" requirement="readWrite"/>
        <parameter ref="NetworkPassword" requirement="readWrite"/>
        <parameter ref="OtherNetworksPresent" requirement="readOnly"/>
        <parameter ref="MaxBitRate" requirement="readOnly"/>
        <parameter ref="AssociatedDeviceNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.HomePlug.Interface.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="MPDUTxAck" requirement="readOnly"/>
        <parameter ref="MPDUTxCol" requirement="readOnly"/>
        <parameter ref="MPDUTxFailed" requirement="readOnly"/>
        <parameter ref="MPDURxAck" requirement="readOnly"/>
        <parameter ref="MPDURxFailed" requirement="readOnly"/>
      </object>
      <object ref="Device.HomePlug.Interface.{i}.AssociatedDevice.{i}."
          requirement="present">
        <parameter ref="MACAddress" requirement="readOnly"/>
        <parameter ref="TxPhyRate" requirement="readOnly"/>
        <parameter ref="RxPhyRate" requirement="readOnly"/>
        <parameter ref="SNRPerTone" requirement="readOnly"/>
        <parameter ref="AvgAttenuation" requirement="readOnly"/>
        <parameter ref="EndStationMACs" requirement="readOnly"/>
        <parameter ref="Active" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="MoCA:1">
      <object ref="Device.MoCA." requirement="present">
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.MoCA.Interface.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="Upstream" requirement="readOnly"/>
        <parameter ref="MACAddress" requirement="readOnly"/>
        <parameter ref="FirmwareVersion" requirement="readOnly"/>
        <parameter ref="MaxBitRate" requirement="readOnly"/>
        <parameter ref="HighestVersion" requirement="readOnly"/>
        <parameter ref="CurrentVersion" requirement="readOnly"/>
        <parameter ref="NetworkCoordinator" requirement="readOnly"/>
        <parameter ref="PrivacyEnabledSetting" requirement="readWrite"/>
        <parameter ref="PrivacyEnabled" requirement="readOnly"/>
        <parameter ref="FreqCapabilityMask" requirement="readOnly"/>
        <parameter ref="FreqCurrentMaskSetting" requirement="readWrite"/>
        <parameter ref="FreqCurrentMask" requirement="readOnly"/>
        <parameter ref="CurrentOperFreq" requirement="readOnly"/>
        <parameter ref="KeyPassphrase" requirement="readWrite"/>
        <parameter ref="NodeID" requirement="readOnly"/>
        <parameter ref="AssociatedDeviceNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.MoCA.Interface.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="UPA:1">
      <object ref="Device.UPA." requirement="present">
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.UPA.Interface.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="Upstream" requirement="readOnly"/>
        <parameter ref="MACAddress" requirement="readOnly"/>
        <parameter ref="FirmwareVersion" requirement="readOnly"/>
        <parameter ref="MaxBitRate" requirement="readOnly"/>
        <parameter ref="NodeType" requirement="readWrite"/>
        <parameter ref="LogicalNetwork" requirement="readWrite"/>
        <parameter ref="EncryptionMethod" requirement="readWrite"/>
        <parameter ref="EncryptionKey" requirement="readWrite"/>
        <parameter ref="EstApplicationThroughput" requirement="readOnly"/>
        <parameter ref="ActiveNotchEnable" requirement="readWrite"/>
        <parameter ref="ActiveNotchNumberOfEntries" requirement="readOnly"/>
        <parameter ref="AssociatedDeviceNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.UPA.Interface.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
      </object>
      <object ref="Device.UPA.Interface.{i}.ActiveNotch.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="StartFreq" requirement="readWrite"/>
        <parameter ref="StopFreq" requirement="readWrite"/>
        <parameter ref="Depth" requirement="readWrite"/>
      </object>
      <object ref="Device.UPA.Interface.{i}.AssociatedDevice.{i}."
          requirement="present">
        <parameter ref="MACAddress" requirement="readOnly"/>
        <parameter ref="Port" requirement="readOnly"/>
        <parameter ref="LogicalNetwork" requirement="readOnly"/>
        <parameter ref="PhyTxThroughput" requirement="readOnly"/>
        <parameter ref="PhyRxThroughput" requirement="readOnly"/>
        <parameter ref="RealPhyRxThroughput" requirement="readOnly"/>
        <parameter ref="EstimatedPLR" requirement="readOnly"/>
        <parameter ref="MeanEstimatedAtt" requirement="readOnly"/>
        <parameter ref="Active" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="UPADiagnostics:1">
      <object ref="Device.UPA.Diagnostics.InterfaceMeasurement."
          requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Type" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="Port" requirement="readWrite"/>
        <parameter ref="Measurements" requirement="readOnly"/>
        <parameter ref="RxGain" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="WiFiRadio:1">
      <object ref="Device.WiFi." requirement="present">
        <parameter ref="RadioNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.WiFi.Radio.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="Upstream" requirement="readOnly"/>
        <parameter ref="MaxBitRate" requirement="readOnly"/>
        <parameter ref="SupportedFrequencyBands" requirement="readOnly"/>
        <parameter ref="OperatingFrequencyBand" requirement="readWrite"/>
        <parameter ref="SupportedStandards" requirement="readOnly"/>
        <parameter ref="OperatingStandards" requirement="readWrite"/>
        <parameter ref="RegulatoryDomain" requirement="readWrite"/>
        <parameter ref="PossibleChannels" requirement="readOnly"/>
        <parameter ref="Channel" requirement="readWrite"/>
        <parameter ref="AutoChannelSupported" requirement="readOnly"/>
        <parameter ref="AutoChannelEnable" requirement="readWrite"/>
        <parameter ref="TransmitPowerSupported" requirement="readOnly"/>
        <parameter ref="TransmitPower" requirement="readWrite"/>
        <parameter ref="ExtensionChannel" requirement="readWrite"/>
        <parameter ref="GuardInterval" requirement="readWrite"/>
        <parameter ref="MCS" requirement="readWrite"/>
        <parameter ref="IEEE80211hSupported" requirement="readOnly"/>
        <parameter ref="IEEE80211hEnabled" requirement="readWrite"/>
        <parameter ref="ChannelsInUse" requirement="readOnly"/>
      </object>
      <object ref="Device.WiFi.Radio.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="WiFiSSID:1">
      <object ref="Device.WiFi." requirement="present">
        <parameter ref="SSIDNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.WiFi.SSID.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LowerLayers" requirement="readWrite"/>
        <parameter ref="BSSID" requirement="readOnly"/>
        <parameter ref="MACAddress" requirement="readOnly"/>
        <parameter ref="SSID" requirement="readWrite"/>
      </object>
      <object ref="Device.WiFi.SSID.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="WiFiAccessPoint:1">
      <object ref="Device.WiFi." requirement="present">
        <parameter ref="AccessPointNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.WiFi.AccessPoint.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="SSIDReference" requirement="readWrite"/>
        <parameter ref="SSIDAdvertisementEnabled" requirement="readWrite"/>
        <parameter ref="WMMCapability" requirement="readOnly"/>
        <parameter ref="UAPSDCapability" requirement="readOnly"/>
        <parameter ref="WMMEnable" requirement="readWrite"/>
        <parameter ref="UAPSDEnable" requirement="readWrite"/>
        <parameter ref="AssociatedDeviceNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.WiFi.AccessPoint.{i}.Security."
          requirement="present">
        <parameter ref="ModesSupported" requirement="readOnly"/>
        <parameter ref="ModeEnabled" requirement="readWrite"/>
        <parameter ref="WEPKey" requirement="readWrite"/>
        <parameter ref="PreSharedKey" requirement="readWrite"/>
        <parameter ref="KeyPassphrase" requirement="readWrite"/>
        <parameter ref="RekeyingInterval" requirement="readWrite"/>
        <parameter ref="RadiusServerIPAddr" requirement="readWrite"/>
        <parameter ref="RadiusServerPort" requirement="readWrite"/>
        <parameter ref="RadiusSecret" requirement="readWrite"/>
      </object>
      <object ref="Device.WiFi.AccessPoint.{i}.WPS." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="ConfigMethodsSupported" requirement="readOnly"/>
        <parameter ref="ConfigMethodsEnabled" requirement="readWrite"/>
      </object>
      <object ref="Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}."
          requirement="createDelete">
        <parameter ref="MACAddress" requirement="readOnly"/>
        <parameter ref="AuthenticationState" requirement="readOnly"/>
        <parameter ref="LastDataDownlinkRate" requirement="readOnly"/>
        <parameter ref="LastDataUplinkRate" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="WiFiEndPoint:1">
      <object ref="Device.WiFi." requirement="present">
        <parameter ref="EndPointNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.WiFi.EndPoint.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="ProfileReference" requirement="readWrite"/>
        <parameter ref="SSIDReference" requirement="readOnly"/>
        <parameter ref="ProfileNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.WiFi.EndPoint.{i}.Stats." requirement="present">
        <parameter ref="LastDataDownlinkRate" requirement="readOnly"/>
        <parameter ref="LastDataUplinkRate" requirement="readOnly"/>
      </object>
      <object ref="Device.WiFi.EndPoint.{i}.Security." requirement="present">
        <parameter ref="ModesSupported" requirement="readOnly"/>
      </object>
      <object ref="Device.WiFi.EndPoint.{i}.Profile.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="SSID" requirement="readWrite"/>
        <parameter ref="Location" requirement="readWrite"/>
        <parameter ref="Priority" requirement="readWrite"/>
      </object>
      <object ref="Device.WiFi.EndPoint.{i}.Profile.{i}.Security."
          requirement="present">
        <parameter ref="ModeEnabled" requirement="readWrite"/>
        <parameter ref="WEPKey" requirement="readWrite"/>
        <parameter ref="PreSharedKey" requirement="readWrite"/>
        <parameter ref="KeyPassphrase" requirement="readWrite"/>
      </object>
      <object ref="Device.WiFi.EndPoint.{i}.WPS." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="ConfigMethodsSupported" requirement="readOnly"/>
        <parameter ref="ConfigMethodsEnabled" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="USBInterface:1">
      <object ref="Device.USB." requirement="present">
        <parameter ref="InterfaceNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.USB.Interface.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="LastChange" requirement="readOnly"/>
        <parameter ref="Upstream" requirement="readOnly"/>
        <parameter ref="MACAddress" requirement="readOnly"/>
        <parameter ref="MaxBitRate" requirement="readOnly"/>
        <parameter ref="Port" requirement="readOnly"/>
      </object>
      <object ref="Device.USB.Interface.{i}.Stats." requirement="present">
        <parameter ref="BytesSent" requirement="readOnly"/>
        <parameter ref="BytesReceived" requirement="readOnly"/>
        <parameter ref="PacketsSent" requirement="readOnly"/>
        <parameter ref="PacketsReceived" requirement="readOnly"/>
        <parameter ref="ErrorsSent" requirement="readOnly"/>
        <parameter ref="ErrorsReceived" requirement="readOnly"/>
        <parameter ref="UnicastPacketsSent" requirement="readOnly"/>
        <parameter ref="UnicastPacketsReceived" requirement="readOnly"/>
        <parameter ref="DiscardPacketsSent" requirement="readOnly"/>
        <parameter ref="DiscardPacketsReceived" requirement="readOnly"/>
        <parameter ref="MulticastPacketsSent" requirement="readOnly"/>
        <parameter ref="MulticastPacketsReceived" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsSent" requirement="readOnly"/>
        <parameter ref="BroadcastPacketsReceived" requirement="readOnly"/>
        <parameter ref="UnknownProtoPacketsReceived" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="USBPort:1">
      <object ref="Device.USB." requirement="present">
        <parameter ref="PortNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.USB.Port.{i}." requirement="present">
        <parameter ref="Name" requirement="readOnly"/>
        <parameter ref="Standard" requirement="readOnly"/>
        <parameter ref="Type" requirement="readOnly"/>
        <parameter ref="Receptacle" requirement="readOnly"/>
        <parameter ref="Rate" requirement="readOnly"/>
        <parameter ref="Power" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="NAT:1">
      <object ref="Device.NAT." requirement="createDelete">
        <parameter ref="InterfaceSettingNumberOfEntries"
            requirement="readOnly"/>
        <parameter ref="PortMappingNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.NAT.InterfaceSetting.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Interface" requirement="readWrite"/>
      </object>
      <object ref="Device.NAT.PortMapping.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="AllInterfaces" requirement="readWrite"/>
        <parameter ref="LeaseDuration" requirement="readOnly"/>
        <parameter ref="RemoteHost" requirement="readWrite"/>
        <parameter ref="ExternalPort" requirement="readWrite"/>
        <parameter ref="InternalPort" requirement="readWrite"/>
        <parameter ref="Protocol" requirement="readWrite"/>
        <parameter ref="InternalClient" requirement="readWrite"/>
        <parameter ref="Description" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="QoS:1">
      <object ref="Device.QoS." requirement="present">
        <parameter ref="MaxClassificationEntries" requirement="readOnly"/>
        <parameter ref="ClassificationNumberOfEntries" requirement="readOnly"/>
        <parameter ref="MaxAppEntries" requirement="readOnly"/>
        <parameter ref="AppNumberOfEntries" requirement="readOnly"/>
        <parameter ref="MaxFlowEntries" requirement="readOnly"/>
        <parameter ref="FlowNumberOfEntries" requirement="readOnly"/>
        <parameter ref="MaxPolicerEntries" requirement="readOnly"/>
        <parameter ref="PolicerNumberOfEntries" requirement="readOnly"/>
        <parameter ref="MaxQueueEntries" requirement="readOnly"/>
        <parameter ref="QueueNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ShaperNumberOfEntries" requirement="readOnly"/>
        <parameter ref="DefaultForwardingPolicy" requirement="readWrite"/>
        <parameter ref="DefaultPolicer" requirement="readWrite"/>
        <parameter ref="DefaultQueue" requirement="readWrite"/>
        <parameter ref="DefaultDSCPMark" requirement="readWrite"/>
        <parameter ref="DefaultEthernetPriorityMark" requirement="readWrite"/>
        <parameter ref="AvailableAppList" requirement="readOnly"/>
        <parameter ref="DefaultTrafficClass" requirement="readWrite"/>
      </object>
      <object ref="Device.QoS.Classification.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Order" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="AllInterfaces" requirement="readWrite"/>
        <parameter ref="DestIP" requirement="readWrite"/>
        <parameter ref="DestMask" requirement="readWrite"/>
        <parameter ref="DestIPExclude" requirement="readWrite"/>
        <parameter ref="SourceIP" requirement="readWrite"/>
        <parameter ref="SourceMask" requirement="readWrite"/>
        <parameter ref="SourceIPExclude" requirement="readWrite"/>
        <parameter ref="Protocol" requirement="readWrite"/>
        <parameter ref="ProtocolExclude" requirement="readWrite"/>
        <parameter ref="DestPort" requirement="readWrite"/>
        <parameter ref="DestPortRangeMax" requirement="readWrite"/>
        <parameter ref="DestPortExclude" requirement="readWrite"/>
        <parameter ref="SourcePort" requirement="readWrite"/>
        <parameter ref="SourcePortRangeMax" requirement="readWrite"/>
        <parameter ref="SourcePortExclude" requirement="readWrite"/>
        <parameter ref="SourceMACAddress" requirement="readWrite"/>
        <parameter ref="SourceMACExclude" requirement="readWrite"/>
        <parameter ref="DestMACAddress" requirement="readWrite"/>
        <parameter ref="DestMACExclude" requirement="readWrite"/>
        <parameter ref="DSCPCheck" requirement="readWrite"/>
        <parameter ref="DSCPExclude" requirement="readWrite"/>
        <parameter ref="DSCPMark" requirement="readWrite"/>
        <parameter ref="EthernetPriorityCheck" requirement="readWrite"/>
        <parameter ref="EthernetPriorityExclude" requirement="readWrite"/>
        <parameter ref="EthernetPriorityMark" requirement="readWrite"/>
        <parameter ref="VLANIDCheck" requirement="readWrite"/>
        <parameter ref="VLANIDExclude" requirement="readWrite"/>
        <parameter ref="ForwardingPolicy" requirement="readWrite"/>
        <parameter ref="Policer" requirement="readWrite"/>
        <parameter ref="TrafficClass" requirement="readWrite"/>
      </object>
      <object ref="Device.QoS.Policer.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="CommittedRate" requirement="readWrite"/>
        <parameter ref="CommittedBurstSize" requirement="readWrite"/>
        <parameter ref="MeterType" requirement="readWrite"/>
        <parameter ref="PossibleMeterTypes" requirement="readOnly"/>
        <parameter ref="ConformingAction" requirement="readWrite"/>
        <parameter ref="NonConformingAction" requirement="readWrite"/>
        <parameter ref="TotalCountedPackets" requirement="readOnly"/>
        <parameter ref="TotalCountedBytes" requirement="readOnly"/>
        <parameter ref="ExcessBurstSize" requirement="readWrite"/>
        <parameter ref="PeakRate" requirement="readWrite"/>
        <parameter ref="PeakBurstSize" requirement="readWrite"/>
        <parameter ref="PartialConformingAction" requirement="readWrite"/>
      </object>
      <object ref="Device.QoS.Queue.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="AllInterfaces" requirement="readWrite"/>
        <parameter ref="BufferLength" requirement="readOnly"/>
        <parameter ref="Weight" requirement="readWrite"/>
        <parameter ref="Precedence" requirement="readWrite"/>
        <parameter ref="REDThreshold" requirement="readWrite"/>
        <parameter ref="REDPercentage" requirement="readWrite"/>
        <parameter ref="DropAlgorithm" requirement="readWrite"/>
        <parameter ref="SchedulerAlgorithm" requirement="readWrite"/>
        <parameter ref="ShapingRate" requirement="readWrite"/>
        <parameter ref="ShapingBurstSize" requirement="readWrite"/>
        <parameter ref="TrafficClasses" requirement="readWrite"/>
      </object>
      <object ref="Device.QoS.Shaper.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="ShapingRate" requirement="readWrite"/>
        <parameter ref="ShapingBurstSize" requirement="readWrite"/>
      </object>
      <object ref="Device.Routing.Router.{i}.IPv4Forwarding.{i}."
          requirement="notSpecified">
        <parameter ref="ForwardingPolicy" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="QoS:2" base="QoS:1" dmr:previousProfile="QoS:1">
      <object ref="Device.Routing.Router.{i}.IPv4Forwarding.{i}."
          requirement="notSpecified">
        <description>
          REQUIRED only for IPv4 capable devices.
        </description>
      </object>
      <object ref="Device.Routing.Router.{i}.IPv6Forwarding.{i}."
          requirement="notSpecified">
        <description>
          REQUIRED only for IPv6 capable devices.
        </description>
        <parameter ref="ForwardingPolicy" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="QoSDynamicFlow:1">
      <object ref="Device.QoS.App.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="ProtocolIdentifier" requirement="readWrite"/>
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="DefaultForwardingPolicy" requirement="readWrite"/>
        <parameter ref="DefaultPolicer" requirement="readWrite"/>
        <parameter ref="DefaultDSCPMark" requirement="readWrite"/>
        <parameter ref="DefaultEthernetPriorityMark" requirement="readWrite"/>
        <parameter ref="DefaultTrafficClass" requirement="readWrite"/>
      </object>
      <object ref="Device.QoS.Flow.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Type" requirement="readWrite"/>
        <parameter ref="TypeParameters" requirement="readWrite"/>
        <parameter ref="Name" requirement="readWrite"/>
        <parameter ref="App" requirement="readWrite"/>
        <parameter ref="ForwardingPolicy" requirement="readWrite"/>
        <parameter ref="Policer" requirement="readWrite"/>
        <parameter ref="DSCPMark" requirement="readWrite"/>
        <parameter ref="EthernetPriorityMark" requirement="readWrite"/>
        <parameter ref="TrafficClass" requirement="readWrite"/>
      </object>
      <object ref="Device.QoS.Classification.{i}." requirement="notSpecified">
        <parameter ref="App" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="QoSStats:1">
      <object ref="Device.QoS." requirement="present">
        <parameter ref="QueueStatsNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.QoS.Policer.{i}." requirement="notSpecified">
        <parameter ref="TotalCountedPackets" requirement="readOnly"/>
        <parameter ref="TotalCountedBytes" requirement="readOnly"/>
        <parameter ref="ConformingCountedPackets" requirement="readOnly"/>
        <parameter ref="ConformingCountedBytes" requirement="readOnly"/>
        <parameter ref="NonConformingCountedPackets" requirement="readOnly"/>
        <parameter ref="NonConformingCountedBytes" requirement="readOnly"/>
      </object>
      <object ref="Device.QoS.QueueStats.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Queue" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="OutputPackets" requirement="readOnly"/>
        <parameter ref="OutputBytes" requirement="readOnly"/>
        <parameter ref="DroppedPackets" requirement="readOnly"/>
        <parameter ref="DroppedBytes" requirement="readOnly"/>
        <parameter ref="QueueOccupancyPackets" requirement="readOnly"/>
        <parameter ref="QueueOccupancyPercentage" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="NeighborDiscovery:1" dmr:previousProfile="QoSStats:1">
      <object ref="Device.NeighborDiscovery." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="InterfaceSettingNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.NeighborDiscovery.InterfaceSetting.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="RetransTimer" requirement="readWrite"/>
        <parameter ref="RtrSolicitationInterval" requirement="readWrite"/>
        <parameter ref="MaxRtrSolicitations" requirement="readWrite"/>
        <parameter ref="NUDEnable" requirement="readWrite"/>
        <parameter ref="RSEnable" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="Hosts:1">
      <object ref="Device.Hosts." requirement="present">
        <parameter ref="HostNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.Hosts.Host.{i}." requirement="present">
        <parameter ref="IPAddress" requirement="readOnly"/>
        <parameter ref="AddressSource" requirement="readOnly"/>
        <parameter ref="LeaseTimeRemaining" requirement="readOnly"/>
        <parameter ref="PhysAddress" requirement="readOnly"/>
        <parameter ref="HostName" requirement="readOnly"/>
        <parameter ref="Active" requirement="readOnly"/>
        <parameter ref="Layer1Interface" requirement="readOnly"/>
        <parameter ref="Layer3Interface" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="Hosts:2" base="Hosts:1" dmr:previousProfile="Hosts:1">
      <object ref="Device.Hosts.Host.{i}." requirement="present">
        <parameter ref="DHCPClient" requirement="readOnly"/>
        <parameter ref="AssociatedDevice" requirement="readOnly"/>
        <parameter ref="IPv4AddressNumberOfEntries" requirement="readOnly">
          <description>
            REQUIRED only for IPv4 capable devices.
          </description>
        </parameter>
        <parameter ref="IPv6AddressNumberOfEntries" requirement="readOnly">
          <description>
            REQUIRED only for IPv6 capable devices.
          </description>
        </parameter>
      </object>
      <object ref="Device.Hosts.Host.{i}.IPv4Address.{i}."
          requirement="present">
        <description>
          REQUIRED only for IPv4 capable devices.
        </description>
        <parameter ref="IPAddress" requirement="readOnly"/>
      </object>
      <object ref="Device.Hosts.Host.{i}.IPv6Address.{i}."
          requirement="present">
        <description>
          REQUIRED only for IPv6 capable devices.
        </description>
        <parameter ref="IPAddress" requirement="readOnly"/>
      </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="DeviceAssociation:1">
      <description>
        This profile implies support for all of the Gateway requirements
        defined in {{bibref|TR-069|Annex F}}.
      </description>
      <object ref="Device.ManagementServer." requirement="notSpecified">
        <parameter ref="ManageableDeviceNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.ManagementServer.ManageableDevice.{i}."
          requirement="present">
        <parameter ref="ManufacturerOUI" requirement="readOnly"/>
        <parameter ref="SerialNumber" requirement="readOnly"/>
        <parameter ref="ProductClass" requirement="readOnly"/>
        <parameter ref="Host" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="UDPConnReq:1">
      <description>
        This profile only applies to Internet Gateway Devices that are acting
        as CPE behind a NAT gateway as described in {{bibref|TR-069|Annex G}},
        and implies support for all of the CPE requirements defined within
        Annex G.
      </description>
      <object ref="Device.ManagementServer." requirement="notSpecified">
        <parameter ref="UDPConnectionRequestAddress" requirement="readOnly"/>
        <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="CaptivePortal:1">
      <object ref="Device.CaptivePortal." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="AllowedList" requirement="readWrite"/>
        <parameter ref="URL" requirement="readWrite"/>
      </object>
    </profile>

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

    <profile name="IEEE8021xAuthentication:1">
      <object ref="Device.IEEE8021x." requirement="present">
        <parameter ref="SupplicantNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.IEEE8021x.Supplicant.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="PAEState" requirement="readOnly"/>
        <parameter ref="EAPIdentity" requirement="readWrite"/>
        <parameter ref="MaxStart" requirement="readWrite"/>
        <parameter ref="StartPeriod" requirement="readWrite"/>
        <parameter ref="HeldPeriod" requirement="readWrite"/>
        <parameter ref="AuthPeriod" requirement="readWrite"/>
        <parameter ref="AuthenticationCapabilities" requirement="readOnly"/>
      </object>
      <object ref="Device.IEEE8021x.Supplicant.{i}.Stats."
          requirement="present">
        <parameter ref="ReceivedFrames" requirement="readOnly"/>
        <parameter ref="TransmittedFrames" requirement="readOnly"/>
        <parameter ref="TransmittedStartFrames" requirement="readOnly"/>
        <parameter ref="TransmittedLogoffFrames" requirement="readOnly"/>
        <parameter ref="TransmittedResponseIdFrames" requirement="readOnly"/>
        <parameter ref="TransmittedResponseFrames" requirement="readOnly"/>
        <parameter ref="ReceivedRequestIdFrames" requirement="readOnly"/>
        <parameter ref="ReceivedRequestFrames" requirement="readOnly"/>
        <parameter ref="ReceivedInvalidFrames" requirement="readOnly"/>
        <parameter ref="ReceivedLengthErrorFrames" requirement="readOnly"/>
        <parameter ref="LastFrameVersion" requirement="readOnly"/>
        <parameter ref="LastFrameSourceMACAddress" requirement="readOnly"/>
      </object>
      <object ref="Device.IEEE8021x.Supplicant.{i}.EAPMD5."
          requirement="present">
        <description>
          802.1x Authentication provisioning information used for MD5 shared
          secret exchange. This object will not exist if EAP-MD5 is not a
          supported authentication type.
        </description>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="SharedSecret" requirement="readWrite"/>
      </object>
      <object ref="Device.IEEE8021x.Supplicant.{i}.EAPTLS."
          requirement="present">
        <description>
          802.1x Authentication provisioning information used for TLS
          certificate authentication. This object will not exist if the EAP-TLS
          is not a supported authentication type.
        </description>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="MutualAuthenticationEnable" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="IPPing:1">
      <object ref="Device.IP.Diagnostics.IPPing." requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Interface" 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.IP.Diagnostics.TraceRoute." requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="Host" requirement="readWrite"/>
        <parameter ref="NumberOfTries" requirement="readWrite"/>
        <parameter ref="Timeout" requirement="readWrite"/>
        <parameter ref="DataBlockSize" requirement="readWrite"/>
        <parameter ref="DSCP" requirement="readWrite"/>
        <parameter ref="MaxHopCount" requirement="readWrite"/>
        <parameter ref="ResponseTime" requirement="readOnly"/>
        <parameter ref="RouteHopsNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.IP.Diagnostics.TraceRoute.RouteHops.{i}."
          requirement="present">
        <parameter ref="Host" requirement="readOnly"/>
        <parameter ref="HostAddress" requirement="readOnly"/>
        <parameter ref="ErrorCode" requirement="readOnly"/>
        <parameter ref="RTTimes" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="ATMLoopback:1">
      <object ref="Device.ATM.Diagnostics.F5Loopback." requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="NumberOfRepetitions" requirement="readWrite"/>
        <parameter ref="Timeout" 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="DSLDiagnostics:1">
      <description>
        Note: This profile is valid for G.992.1 modems.
      </description>
      <object ref="Device.DSL.Diagnostics.ADSLLineTest." requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="ACTPSDds" requirement="readOnly"/>
        <parameter ref="ACTPSDus" requirement="readOnly"/>
        <parameter ref="ACTATPds" requirement="readOnly"/>
        <parameter ref="ACTATPus" requirement="readOnly"/>
        <parameter ref="HLINSCds" requirement="readOnly"/>
        <parameter ref="HLINpsds" requirement="readOnly"/>
        <parameter ref="QLNpsds" requirement="readOnly"/>
        <parameter ref="SNRpsds" requirement="readOnly"/>
        <parameter ref="BITSpsds" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="ADSL2Diagnostics:1">
      <description>
        Note: This profile is valid for G.992.3 and G.992.5 modems.
      </description>
      <object ref="Device.DSL.Diagnostics.ADSLLineTest." requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="ACTPSDds" requirement="readOnly"/>
        <parameter ref="ACTPSDus" requirement="readOnly"/>
        <parameter ref="ACTATPds" requirement="readOnly"/>
        <parameter ref="ACTATPus" requirement="readOnly"/>
        <parameter ref="HLINSCds" requirement="readOnly"/>
        <parameter ref="HLINSCus" requirement="readOnly"/>
        <parameter ref="HLINpsds" requirement="readOnly"/>
        <parameter ref="HLINpsus" requirement="readOnly"/>
        <parameter ref="HLOGpsds" requirement="readOnly"/>
        <parameter ref="HLOGpsus" requirement="readOnly"/>
        <parameter ref="HLOGMTds" requirement="readOnly"/>
        <parameter ref="HLOGMTus" requirement="readOnly"/>
        <parameter ref="QLNpsds" requirement="readOnly"/>
        <parameter ref="QLNpsus" requirement="readOnly"/>
        <parameter ref="QLNMTds" requirement="readOnly"/>
        <parameter ref="QLNMTus" requirement="readOnly"/>
        <parameter ref="SNRpsds" requirement="readOnly"/>
        <parameter ref="SNRpsus" requirement="readOnly"/>
        <parameter ref="SNRMTds" requirement="readOnly"/>
        <parameter ref="SNRMTus" requirement="readOnly"/>
        <parameter ref="LATNpbds" requirement="readOnly"/>
        <parameter ref="LATNpbus" requirement="readOnly"/>
        <parameter ref="SATNds" requirement="readOnly"/>
        <parameter ref="SATNus" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="VDSL2Diagnostics:1">
      <description>
        Note: This profile is valid for G.993.2 modems.
      </description>
      <object ref="Device.DSL.Diagnostics.ADSLLineTest." requirement="present">
        <parameter ref="DiagnosticsState" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="ACTPSDds" requirement="readOnly"/>
        <parameter ref="ACTPSDus" requirement="readOnly"/>
        <parameter ref="ACTATPds" requirement="readOnly"/>
        <parameter ref="ACTATPus" requirement="readOnly"/>
        <parameter ref="HLINSCds" requirement="readOnly"/>
        <parameter ref="HLINSCus" requirement="readOnly"/>
        <parameter ref="HLINGds" requirement="readOnly"/>
        <parameter ref="HLINGus" requirement="readOnly"/>
        <parameter ref="HLINpsds" requirement="readOnly"/>
        <parameter ref="HLINpsus" requirement="readOnly"/>
        <parameter ref="HLOGGds" requirement="readOnly"/>
        <parameter ref="HLOGGus" requirement="readOnly"/>
        <parameter ref="HLOGpsds" requirement="readOnly"/>
        <parameter ref="HLOGpsus" requirement="readOnly"/>
        <parameter ref="HLOGMTds" requirement="readOnly"/>
        <parameter ref="HLOGMTus" requirement="readOnly"/>
        <parameter ref="QLNGds" requirement="readOnly"/>
        <parameter ref="QLNGus" requirement="readOnly"/>
        <parameter ref="QLNpsds" requirement="readOnly"/>
        <parameter ref="QLNpsus" requirement="readOnly"/>
        <parameter ref="QLNMTds" requirement="readOnly"/>
        <parameter ref="QLNMTus" requirement="readOnly"/>
        <parameter ref="SNRGds" requirement="readOnly"/>
        <parameter ref="SNRGus" requirement="readOnly"/>
        <parameter ref="SNRpsds" requirement="readOnly"/>
        <parameter ref="SNRpsus" requirement="readOnly"/>
        <parameter ref="SNRMTds" requirement="readOnly"/>
        <parameter ref="SNRMTus" requirement="readOnly"/>
        <parameter ref="LATNpbds" requirement="readOnly"/>
        <parameter ref="LATNpbus" requirement="readOnly"/>
        <parameter ref="SATNds" requirement="readOnly"/>
        <parameter ref="SATNus" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="DHCPv4Client:1">
      <object ref="Device.DHCPv4." requirement="present">
        <parameter ref="ClientNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv4.Client.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Renew" requirement="readWrite"/>
        <parameter ref="IPAddress" requirement="readOnly"/>
        <parameter ref="SubnetMask" requirement="readOnly"/>
        <parameter ref="IPRouters" requirement="readOnly"/>
        <parameter ref="DNSServers" requirement="readOnly"/>
        <parameter ref="LeaseTimeRemaining" requirement="readOnly"/>
        <parameter ref="DHCPServer" requirement="readOnly"/>
        <parameter ref="SentOptionNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ReqOptionNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv4.Client.{i}.SentOption.{i}."
          requirement="createDelete">
        <description>
          This table is REQUIRED to support sending of option 60 (Vendor Class
          Identifier) and option 77 (User Class Identifier) values.
        </description>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Tag" requirement="readWrite"/>
        <parameter ref="Value" requirement="readWrite"/>
      </object>
      <object ref="Device.DHCPv4.Client.{i}.ReqOption.{i}."
          requirement="createDelete">
        <description>
          This table is REQUIRED to support requesting of option 60 (Vendor
          Class Identifier), option 61 (Client Identifier) and option 77 (User
          Class Identifier) values.
        </description>
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Order" requirement="readWrite"/>
        <parameter ref="Tag" requirement="readWrite"/>
        <parameter ref="Value" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="DHCPv4Server:1">
      <object ref="Device.DHCPv4." requirement="present"/>
      <object ref="Device.DHCPv4.Server." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="PoolNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv4.Server.Pool.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Order" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="MinAddress" requirement="readWrite"/>
        <parameter ref="MaxAddress" requirement="readWrite"/>
        <parameter ref="ReservedAddresses" requirement="readWrite"/>
        <parameter ref="SubnetMask" requirement="readWrite"/>
        <parameter ref="DNSServers" requirement="readWrite"/>
        <parameter ref="DomainName" requirement="readWrite"/>
        <parameter ref="IPRouters" requirement="readWrite"/>
        <parameter ref="LeaseTime" requirement="readWrite"/>
        <parameter ref="OptionNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv4.Server.Pool.{i}.Option.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Tag" requirement="readWrite"/>
        <parameter ref="Value" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="DHCPv4CondServing:1" extends="DHCPv4Server:1">
      <object ref="Device.DHCPv4.Server.Pool.{i}." requirement="createDelete">
        <parameter ref="VendorClassID" requirement="readWrite"/>
        <parameter ref="ClientID" requirement="readWrite"/>
        <parameter ref="UserClassID" requirement="readWrite"/>
        <parameter ref="Chaddr" requirement="readWrite"/>
        <parameter ref="ChaddrMask" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="DHCPv4Relay:1">
      <object ref="Device.DHCPv4." requirement="present"/>
      <object ref="Device.DHCPv4.Relay." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="ForwardingNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv4.Relay.Forwarding.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Order" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="LocallyServed" requirement="readWrite"/>
        <parameter ref="DHCPServerIPAddress" requirement="readWrite"/>
        <parameter ref="VendorClassID" requirement="readWrite"/>
        <parameter ref="ClientID" requirement="readWrite"/>
        <parameter ref="UserClassID" requirement="readWrite"/>
        <parameter ref="Chaddr" requirement="readWrite"/>
        <parameter ref="ChaddrMask" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="DHCPv4ServerClientInfo:1"
        dmr:previousProfile="DHCPv4Relay:1">
      <object ref="Device.DHCPv4.Server.Pool.{i}." requirement="createDelete">
        <parameter ref="ClientNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv4.Server.Pool.{i}.Client.{i}."
          requirement="present">
        <parameter ref="Alias" requirement="readWrite"/>
        <parameter ref="Chaddr" requirement="readOnly"/>
        <parameter ref="Active" requirement="readOnly"/>
        <parameter ref="IPv4AddressNumberOfEntries" requirement="readOnly"/>
        <parameter ref="OptionNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv4.Server.Pool.{i}.Client.{i}.IPv4Address.{i}."
          requirement="present">
        <parameter ref="IPAddress" requirement="readOnly"/>
        <parameter ref="LeaseTimeRemaining" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv4.Server.Pool.{i}.Client.{i}.Option.{i}."
          requirement="present">
        <parameter ref="Tag" requirement="readOnly"/>
        <parameter ref="Value" 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="RouterAdvertisement:1">
      <object ref="Device.RouterAdvertisement." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="InterfaceSettingNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.RouterAdvertisement.InterfaceSetting.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="MaxRtrAdvInterval" requirement="readWrite"/>
        <parameter ref="MinRtrAdvInterval" requirement="readWrite"/>
        <parameter ref="AdvDefaultLifetime" requirement="readWrite"/>
        <parameter ref="AdvManagedFlag" requirement="readWrite"/>
        <parameter ref="AdvOtherConfigFlag" requirement="readWrite"/>
        <parameter ref="AdvMobileAgentFlag" requirement="readWrite"/>
        <parameter ref="AdvPreferredRouterFlag" requirement="readWrite"/>
        <parameter ref="AdvNDProxyFlag" requirement="readWrite"/>
        <parameter ref="AdvLinkMTU" requirement="readWrite"/>
        <parameter ref="AdvReachableTime" requirement="readWrite"/>
        <parameter ref="AdvRetransTimer" requirement="readWrite"/>
        <parameter ref="AdvCurHopLimit" requirement="readWrite"/>
        <parameter ref="OptionNumberOfEntries" requirement="readOnly"/>
      </object>
      <object
          ref="Device.RouterAdvertisement.InterfaceSetting.{i}.Option.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Tag" requirement="readWrite"/>
        <parameter ref="Value" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="IPv6rd:1">
      <object ref="Device.IPv6rd." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="InterfaceSettingNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.IPv6rd.InterfaceSetting.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="BorderRelayIPv4Addresses" requirement="readWrite"/>
        <parameter ref="AllTrafficToBorderRelay" requirement="readWrite"/>
        <parameter ref="SPIPv6Prefix" requirement="readWrite"/>
        <parameter ref="IPv4MaskLength" requirement="readWrite"/>
        <parameter ref="AddressSource" requirement="readWrite"/>
        <parameter ref="TunnelInterface" requirement="readOnly"/>
        <parameter ref="TunneledInterface" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="DSLite:1">
      <object ref="Device.DSLite." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="InterfaceSettingNumberOfEntries"
            requirement="readOnly"/>
      </object>
      <object ref="Device.DSLite.InterfaceSetting.{i}." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="EndpointAssignmentPrecedence" requirement="readWrite"/>
        <parameter ref="EndpointName" requirement="readWrite"/>
        <parameter ref="EndpointAddress" requirement="readWrite"/>
        <parameter ref="Origin" requirement="readOnly"/>
        <parameter ref="TunnelInterface" requirement="readOnly"/>
        <parameter ref="TunneledInterface" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="DHCPv6Client:1">
      <object ref="Device.DHCPv6." requirement="present">
        <parameter ref="ClientNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv6.Client.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="DUID" requirement="readOnly"/>
        <parameter ref="RequestAddresses" requirement="readWrite"/>
        <parameter ref="RequestPrefixes" requirement="readWrite"/>
        <parameter ref="RapidCommit" requirement="readWrite"/>
        <parameter ref="Renew" requirement="readWrite"/>
        <parameter ref="SuggestedT1" requirement="readWrite"/>
        <parameter ref="SuggestedT2" requirement="readWrite"/>
        <parameter ref="SupportedOptions" requirement="readOnly"/>
        <parameter ref="RequestedOptions" requirement="readWrite"/>
        <parameter ref="SentOptionNumberOfEntries" requirement="readOnly"/>
        <parameter ref="ReceivedOptionNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv6.Client.{i}.SentOption.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Tag" requirement="readWrite"/>
        <parameter ref="Value" requirement="readWrite"/>
      </object>
      <object ref="Device.DHCPv6.Client.{i}.ReceivedOption.{i}."
          requirement="present">
        <parameter ref="Tag" requirement="readOnly"/>
        <parameter ref="Value" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="DHCPv6ClientServerIdentity:1" extends="DHCPv6Client:1">
      <object ref="Device.DHCPv6.Client.{i}." requirement="createDelete">
        <parameter ref="ServerNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv6.Client.{i}.Server.{i}." requirement="present">
        <parameter ref="SourceAddress" requirement="readOnly"/>
        <parameter ref="DUID" requirement="readOnly"/>
        <parameter ref="InformationRefreshTime" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv6.Client.{i}.ReceivedOption.{i}."
          requirement="present">
        <parameter ref="Server" requirement="readOnly"/>
      </object>
    </profile>

    <profile name="DHCPv6Server:1">
      <object ref="Device.DHCPv6." requirement="present"/>
      <object ref="Device.DHCPv6.Server." requirement="present">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="PoolNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv6.Server.Pool.{i}." requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Status" requirement="readOnly"/>
        <parameter ref="Order" requirement="readWrite"/>
        <parameter ref="Interface" requirement="readWrite"/>
        <parameter ref="IANAEnable" requirement="readWrite"/>
        <parameter ref="IAPDEnable" requirement="readWrite"/>
        <parameter ref="IANAPrefixes" requirement="readOnly"/>
        <parameter ref="IAPDAddLength" requirement="readWrite"/>
        <parameter ref="OptionNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv6.Server.Pool.{i}.Option.{i}."
          requirement="createDelete">
        <parameter ref="Enable" requirement="readWrite"/>
        <parameter ref="Tag" requirement="readWrite"/>
        <parameter ref="Value" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="DHCPv6ServerAdv:1" extends="DHCPv6Server:1">
      <object ref="Device.DHCPv6.Server.Pool.{i}." requirement="createDelete">
        <parameter ref="DUID" requirement="readWrite"/>
        <parameter ref="VendorClassID" requirement="readWrite"/>
        <parameter ref="UserClassID" requirement="readWrite"/>
        <parameter ref="SourceAddress" requirement="readWrite"/>
        <parameter ref="SourceAddressMask" requirement="readWrite"/>
      </object>
    </profile>

    <profile name="DHCPv6ServerClientInfo:1">
      <object ref="Device.DHCPv6.Server.Pool.{i}." requirement="createDelete">
        <parameter ref="ClientNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv6.Server.Pool.{i}.Client.{i}."
          requirement="present">
        <parameter ref="SourceAddress" requirement="readOnly"/>
        <parameter ref="Active" requirement="readOnly"/>
        <parameter ref="IPv6AddressNumberOfEntries" requirement="readOnly"/>
        <parameter ref="IPv6PrefixNumberOfEntries" requirement="readOnly"/>
        <parameter ref="OptionNumberOfEntries" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Address.{i}."
          requirement="present">
        <parameter ref="IPAddress" requirement="readOnly"/>
        <parameter ref="PreferredLifetime" requirement="readOnly"/>
        <parameter ref="ValidLifetime" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv6.Server.Pool.{i}.Client.{i}.IPv6Prefix.{i}."
          requirement="present">
        <parameter ref="Prefix" requirement="readOnly"/>
        <parameter ref="PreferredLifetime" requirement="readOnly"/>
        <parameter ref="ValidLifetime" requirement="readOnly"/>
      </object>
      <object ref="Device.DHCPv6.Server.Pool.{i}.Client.{i}.Option.{i}."
          requirement="present">
        <parameter ref="Tag" requirement="readOnly"/>
        <parameter ref="Value" requirement="readOnly"/>
      </object>
    </profile>
  </model>
</dm:document>
