<?xml version="1.0" encoding="UTF-8"?>
<!-- 
  TR-069 Device:2.0 Root Object definition

  Notice:
    The Broadband Forum is a non-profit corporation organized to create
    guidelines for broadband network system development and deployment.
    This Broadband Forum Document has been approved by members of the
    Forum. This Broadband Forum Document is not binding on the Broadband
    Forum, any of its members, or any developer or service provider.
    This Broadband Forum Document is subject to change, but only with
    approval of members of the Forum.  This Document is copyrighted by
    the Broadband Forum, and all rights are reserved.  Portions of this
    Document may be copyrighted by Broadband Forum members.

    This Broadband Forum Document is provided AS IS, WITH ALL FAULTS.
    ANY PERSON HOLDING A COPYRIGHT IN THIS BROADBAND FORUM DOCUMENT,
    OR ANY PORTION THEREOF, DISCLAIMS TO THE FULLEST EXTENT PERMITTED
    BY LAW ANY REPRESENTATION OR WARRANTY, EXPRESS OR IMPLIED,
    INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY: 

    (a) OF ACCURACY, COMPLETENESS, MERCHANTABILITY, FITNESS FOR A
        PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE;
    (b) THAT THE CONTENTS OF THIS BROADBAND FORUM DOCUMENT ARE SUITABLE
        FOR ANY PURPOSE, EVEN IF THAT PURPOSE IS KNOWN TO THE COPYRIGHT
        HOLDER;
    (c) THAT THE IMPLEMENTATION OF THE CONTENTS OF THE DOCUMENT WILL NOT
        INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR
        OTHER RIGHTS.

    By using this Broadband Forum Document, users acknowledge that
    implementation may require licenses to patents.  The Broadband Forum
    encourages but does not require its members to identify such
    patents.  For a list of declarations made by Broadband Forum member
    companies, please see http://www.broadband-forum.org.  No assurance
    is given that licenses to patents necessary to implement this
    Document will be available for license at all or on reasonable and
    non-discriminatory terms.

    ANY PERSON HOLDING A COPYRIGHT IN THIS BROADBAND FORUM DOCUMENT, OR
    ANY PORTION THEREOF, DISCLAIMS TO THE FULLEST EXTENT PERMITTED BY
    LAW (A) ANY LIABILITY (INCLUDING DIRECT, INDIRECT, SPECIAL, OR
    CONSEQUENTIAL DAMAGES UNDER ANY LEGAL THEORY) ARISING FROM OR
    RELATED TO THE USE OF OR RELIANCE UPON THIS DOCUMENT; AND (B) ANY
    OBLIGATION TO UPDATE OR CORRECT THIS DOCUMENT.

    Broadband Forum Documents may be copied, downloaded, stored on a
    server or otherwise re-distributed in their entirety only, and may
    not be modified without the advance written permission of the
    Broadband Forum.

    The text of this notice must be included in all copies of this
    Broadband Forum Document.
  
  Summary:
    TR-069 Device:2.0 Root Object definition.

  Version History:
    * May 2010: tr-181-2-0-0.xml, corresponds to TR-181 Issue 2.
    * November 2010: tr-181-2-0-1.xml, corresponds to TR-181 
        Issue 2 Corigendum 1.
-->

<dm:document xmlns:dm="urn:broadband-forum-org:cwmp:datamodel-1-2"
    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-2 cwmp-datamodel-1-2.xsd 
                        urn:broadband-forum-org:cwmp:datamodel-report-0-1 cwmp-datamodel-report.xsd"
    spec="urn:broadband-forum-org:tr-181-2-0-1">
  <description>Device:2.0 data model.</description>

  <import file="tr-069-biblio.xml" spec="urn:broadband-forum-org:tr-069-biblio"/>

  <import file="tr-106-1-0-types.xml" spec="urn:broadband-forum-org:tr-106-1-0">
    <dataType name="IPPrefix"/>
    <dataType name="IPAddress"/>
    <dataType name="IPv4Address"/>
    <dataType name="MACAddress"/>
  </import>

  <import file="tr-143-1-0.xml" spec="urn:broadband-forum-org:tr-143-1-0">
    <component name="DownloadDiagnostics_Device2"/>
    <component name="UploadDiagnostics_Device2"/>
    <component name="UDPEchoConfig"/>
  </import>

  <import file="tr-157-1-2.xml" spec="urn:broadband-forum-org:tr-157-1-2">
    <component name="DI_MemoryStatus"/>
    <component name="DI_ProcessStatus"/>
    <component name="DI_TemperatureStatus"/>
    <component name="DI_NetworkProperties"/>
    <component name="DI_SupportedDataModel"/>
    <component name="MS_AutonomousTransferCompletePolicy"/>
    <component name="UI_RemoteAccess"/>
    <component name="UI_LocalDisplay"/>
    <component name="User"/>
    <component name="UPnP"/>
    <component name="DLNACapabilities"/>
    <component name="SmartCardReader"/>
    <component name="SelfTestDiag"/>
    <component name="NSLookupDiag"/>
    <component name="SimpleFirewall"/>
    <component name="PeriodicStatistics"/>
    <component name="DownloadAvailability"/>
    <component name="USBHosts_Device2"/>
  </import>


  <!-- Secondary Common Objects (allowed in Device Root and Service Objects) -->

  <component name="DeviceInfo">
    <description>General information about the device, including its identity and version information (allowed in Device Root and Service Objects).</description>
    <object name="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>
    </object>

    <object name="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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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>
  </component>

  <component name="Time">
    <description>Parameters associated with an NTP or SNTP time client on the CPE (allowed in Device Root and Service Objects).</description>
    <object name="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>
  </component>

  <component name="UserInterface">
    <description>Parameters related to the user interface of the CPE (allowed in Device Root and Service Objects).</description>
    <object name="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">
          <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>
  </component>


  <!-- Device:2 Data Model -->

  <model name="Device:2.0">
    <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">
      <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.</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''.</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="ManageableDeviceNumberOfEntries" access="readOnly">
        <description>{{numentries}}</description>
        <syntax>
          <unsignedInt/>
        </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">
        <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.</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.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>
      <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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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.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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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="SSID"/>
      </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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}}.</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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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="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 DHCP 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 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: DHCPv4 Option values are limited to a length of 255, while DHCPv6 Option values can have a maximum length of 65535.</description>
        <syntax>
          <string>
            <size maxLength="65535"/>
          </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}}.  If {{param|SourceMACFromVendorClassIDFilter}} 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}}.  If  the {{param|SourceMACFromVendorClassIDFilter}} 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 DHCP 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: DHCPv4 Option values are limited to a length of 255, while DHCPv6 Option values can have a maximum length of 65535.</description>
        <syntax>
          <string>
            <size maxLength="65535"/>
          </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}}.  If {{param|DestMACFromVendorClassIDFilter}} 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}}.   If the {{param|DestMACFromVendorClassIDFilter}} 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 its DHCP Client Identifier (Option 61 as defined in {{bibref|RFC2132}}) in the most recent DHCP lease acquisition or renewal 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: DHCPv4 Option values are limited to a length of 255, while DHCPv6 Option values can have a maximum length of 65535.</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 its DHCP Client Identifier (Option 61 as defined in {{bibref|RFC2132}}) in the most recent DHCP lease acquisition or renewal was equal to the specified value.  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.</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 its DHCP User Class Identifier (Option 77 as defined in {{bibref|RFC3004}}) in the most recent DHCP lease acquisition or renewal was equal to the specified value.
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.</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 its DHCP User Class Identifier (Option 77 as defined in {{bibref|RFC3004}}) in the most recent DHCP lease acquisition or renewal was equal to the specified value.
Note: DHCPv4 Option values are limited to a length of 255, while DHCPv6 Option values can have a maximum length of 65535.</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>
    </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>
    </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
          <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>
    </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}.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.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="InterfaceNumberOfEntries" access="readOnly">
        <description>{{numentries}}</description>
        <syntax>
          <unsignedInt/>
        </syntax>
      </parameter>
      <parameter name="ActivePortNumberOfEntries" access="readOnly">
        <description>{{numentries}}</description>
        <syntax>
          <unsignedInt/>
        </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.</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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
          <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="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>
    </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="Alias" access="readWrite">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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.
</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.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.</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 is 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.</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.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.Routing.Router.{i}." access="readWrite" minEntries="1" 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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </syntax>
      </parameter>
      <parameter name="IPv4ForwardingNumberOfEntries" access="readOnly">
        <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, DHCP, 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 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. 
* For the remaining table entries, those for which the source address/mask matches are sorted by longest prefix, i.e. with the most  specific networks first (an unspecified source address is a wild-card and always matches, with a prefix length of zero). 
* For the remaining table entries, those for which the destination address/mask matches are sorted by longest prefix, i.e. with the  most specific networks first (an unspecified destination address is a wild-card and always matches, with a prefix length of zero). 
* The first of the remaining table entries is applied to the packet.
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.</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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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="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.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.</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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.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}}.</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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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"/>
          </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 DHCP 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: DHCPv4 Option values are limited to a length of 255, while DHCPv6 Option values can have a maximum length of 65535.</description>
        <syntax>
          <string>
            <size maxLength="65535"/>
          </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, if specified.
If {{true}}, the class includes all packets except those sourced from LAN devices that match the {{param|SourceVendorClassID}} entry,  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 DHCP 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: DHCPv4 Option values are limited to a length of 255, while DHCPv6 Option values can have a maximum length of 65535.</description>
        <syntax>
          <string>
            <size maxLength="65535"/>
          </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, if specified.
If {{true}}, the class includes all packets except those destined for LAN devices that match the {{param|DestVendorClassID}} entry,  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 (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 classification.
Note: DHCPv4 Option values are limited to a length of 255, while DHCPv6 Option values can have a maximum length of 65535.</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 (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 classification.
Note: DHCPv4 Option values are limited to a length of 255, while DHCPv6 Option values can have a maximum length of 65535.</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 (Option 77) as defined in {{bibref|RFC3004}}.
{{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.</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 (Option 77) as defined in {{bibref|RFC3004}}.
{{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.</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 (Option 125) as defined in {{bibref|RFC3925}}, matched according to the criteria in {{param|SourceVendorSpecificInfoEnterprise}}, {{param|SourceVendorSpecificInfoSubOption}}.  Case sensitive.
{{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.</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 (Option 125) as defined in {{bibref|RFC3925}}, matched according to the criteria in {{param|DestVendorSpecificInfoEnterprise}}, {{param|DestVendorSpecificInfoSubOption}}.
{{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.</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"/>
          </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>
    </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</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.</description>
        <syntax>
          <dataType ref="IPAddress"/>
        </syntax>
      </parameter>
      <parameter name="AddressSource" access="readOnly">
        <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.</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">
        <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}}.</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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="65535"/>
          </string>
        </syntax>
      </parameter>
      <parameter name="ClientID" access="readOnly">
        <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.</description>
        <syntax>
          <hexBinary>
            <size maxLength="65535"/>
          </hexBinary>
        </syntax>
      </parameter>
      <parameter name="UserClassID" access="readOnly">
        <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.</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>
    </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>
    </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 addresses to be used by the DHCP Client (it does ''not'' model a DNS Server). Entries are either automatically created as result of DHCP or IPCP 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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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 or IPCP 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 or IPCP 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 or IPCP received DNS server information will have {{param}} set to {{enum|DHCP}} or {{enum|IPCP}}, as the case may be. Manually created table entires will have their {{param}} set to {{enum|Static}}.</description>
        <syntax>
          <string>
            <enumeration value="DHCP"/>
            <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 DHCP Relay.  Entries are either automatically created as result of DHCP or IPCP 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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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 or IPCP 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 or IPCP 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 or IPCP received DNS server information will have {{param}} set to {{enum|DHCP}} or {{enum|IPCP}}, as the case may be. Manually created table entires will have their {{param}} set to {{enum|Static}}.</description>
        <syntax>
          <string>
            <enumeration value="DHCP"/>
            <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.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="Error_Misconfigured"/>
            <enumeration value="Error" optional="true"/>
          </string>
          <default type="object" value="Disabled"/>
        </syntax>
      </parameter>
      <parameter name="Alias" access="readWrite">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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.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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
          <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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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>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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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>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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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>
    </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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>HexBinary encoded option value.</description>
        <syntax>
          <hexBinary>
            <size minLength="0" maxLength="255"/>
          </hexBinary>
          <default type="object" value=""/>
        </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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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 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="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.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">
        <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.</description>
        <syntax>
          <string>
            <size maxLength="64"/>
          </string>
        </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">
          <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">
          <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.Users." access="readOnly" minEntries="1" maxEntries="1" dmr:previousObject="Device.DHCPv4.Relay.Forwarding.{i}.">
      <description>Users object that contains the {{object|User}} table.</description>
    </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>
    </object>


    <!-- Subset of Common Objects (i.e. those that are also secondary common objects) -->
    <component path="Device." ref="DeviceInfo" dmr:previousObject="Services."/>
    <component path="Device." ref="Time" dmr:previousObject="GatewayInfo."/>
    <component path="Device." ref="UserInterface" dmr:previousObject="Time."/>

    <!-- TR-143-1-0 -->
    <component path="Device.IP.Diagnostics." ref="DownloadDiagnostics_Device2" dmr:previousObject="TraceRoute."  dmr:previousProfile="TraceRoute:1"/>
    <component path="Device.IP.Diagnostics." ref="UploadDiagnostics_Device2" dmr:previousObject="DownloadDiagnostics."  dmr:previousProfile="DownloadTCP:1"/>
    <component path="Device.IP.Diagnostics." ref="UDPEchoConfig" dmr:previousObject="UploadDiagnostics."  dmr:previousProfile="UploadTCP:1"/>

    <!-- TR-157-1-2 -->
    <component path="Device." ref="DI_SupportedDataModel"/>
    <component path="Device." ref="DI_MemoryStatus"/>
    <component path="Device." ref="DI_ProcessStatus"/>
    <component path="Device." ref="DI_TemperatureStatus"/>
    <component path="Device." ref="DI_NetworkProperties"/>
    <component path="Device." ref="MS_AutonomousTransferCompletePolicy"/>
    <component path="Device." ref="UI_RemoteAccess"/>
    <component path="Device." ref="UI_LocalDisplay"/>
    <component path="Device.Users." ref="User"/>
    <component path="Device." ref="UPnP"/>
    <component path="Device." ref="DLNACapabilities"/>
    <component path="Device.SmartCardReaders." ref="SmartCardReader"/>
    <component path="Device." ref="SelfTestDiag"/>
    <component path="Device.DNS.Diagnostics." ref="NSLookupDiag"/>
    <component path="Device." ref="SimpleFirewall"/>
    <component path="Device.USB." ref="USBHosts_Device2"/>
    <component path="Device." ref="PeriodicStatistics"/>
    <component path="Device.ManagementServer." ref="DownloadAvailability"/>


    <!-- PROFILES -->

    <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="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="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="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="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="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="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="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="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>

  </model>
</dm:document>

